e5fd75c44ac7b82cc176e4ccdc400070bc39fa28
Ports the legacy products table's core shape (eden.md §2 §1.1, Master Prompt §6.3) faithfully but MVP-scoped: product_code sequence, the 5 fixed price tiers (price_0/12/24/36/48), impl_unit_price, and stock/serial/ asset-tag/MAC tracking flags. Leaves out legacy telecom-billing specifics (service_type, metered, tariff_rates, ixc_product_code) for a later phase. Mirrors the Companies module's structure and conventions exactly: COALESCE partial updates, JwtAuthGuard/PermissionGuard with open read / gated write (products:edit) per ADR-0004, product.created/product.updated audit events. Money fields are validated as non-negative NUMERIC in the DTO only — no pricing/calculation logic here, that belongs to the future Quotes phase. Does not touch apps/api/src/app.module.ts or packages/database/src/index.ts (wiring is left to integration) to avoid conflicting with sibling agents' concurrent edits to those files; the ProductsService deep-imports the repository module directly instead of via the shared barrel, noted in a code comment. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Description
No description provided
Languages
TypeScript
89.8%
JavaScript
9.7%
Python
0.3%
Shell
0.1%