feat(catalog) : ERP-199 — entités Product + StorageType + repositories + contrat de sérialisation #150
Closed
matthieu
wants to merge 1 commits from
feat/erp-199-entites-product-storagetype into feat/erp-198-migration-schema-m6-produit
pull from: feat/erp-199-entites-product-storagetype
merge into: MALIO-DEV:feat/erp-198-migration-schema-m6-produit
MALIO-DEV:develop
MALIO-DEV:feat/erp-207-i18n-audit-label
MALIO-DEV:feat/erp-206-product-edit-placeholder-tabs
MALIO-DEV:feat/erp-205-product-create-form
MALIO-DEV:feat/erp-204-products-list-front
MALIO-DEV:feat/erp-202-product-export-xlsx
MALIO-DEV:feat/erp-201-storage-type-expose-seed
MALIO-DEV:feat/erp-200-product-provider-processor
MALIO-DEV:feat/erp-198-migration-schema-m6-produit
MALIO-DEV:feat/erp-197-permissions-catalog-products
MALIO-DEV:feat/erp-190-ecran-modification-ticket-pesee
MALIO-DEV:feat/erp-189-ecran-ajouter-ticket-pesee
MALIO-DEV:feat/erp-188-liste-tickets-pesee
MALIO-DEV:chore/erp-174-migration-mixgraine
MALIO-DEV:feature/ERP-138-rbac-technique-providers
MALIO-DEV:feature/ERP-137-export-xlsx-prestataires
MALIO-DEV:feature/ERP-136-validations-rg-server-side
MALIO-DEV:feature/ERP-135-sous-ressources-provider
MALIO-DEV:feature/ERP-134-provider-processor-cloisonnement-site
MALIO-DEV:feature/M6-field-sales
MALIO-DEV:feature/ERP-88-sous-ressources-m2
MALIO-DEV:feature/ERP-89-validators-m2
MALIO-DEV:refactor/refonte-contact-suppression-inline-back
MALIO-DEV:feat/admin-tables-filter-pagination
MALIO-DEV:main
1 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
bc14e3893b |
feat(catalog) : ERP-199 — entités Product + StorageType + repositories + contrat de sérialisation
Entité Product (#[Auditable], TimestampableBlamable, soft-delete préparé non exposé) et référentiel StorageType (lecture seule, provisoire) dans le module Catalog, avec le contrat de sérialisation posé une fois (read-groups par propriété affichée — RETEX M1→M5, 3 maillons spec § 4.0). - Product : code (unique global RG-6.01), name, states (json multi-select PURCHASE/SALE/OTHER ≥1, RG-6.02), manufactured/containsMolasses (RG-6.03), category ManyToOne (PRODUIT, RG-6.05), sites + storageTypes ManyToMany (≥1). Messages FR sur toutes les contraintes, Length calée colonnes. Opérations Get/GetCollection (.view) + Post/Patch (.manage), pas de Delete. Provider/ Processor référencés (implémentés en ERP-200). - StorageType : code/label + sites ManyToMany (filtrage par site, ERP-201). Référentiel statique → whitelist EntitiesAreTimestampableBlamableTest. - Repositories Product/StorageType (interfaces Domain + impl Doctrine). - Validation états via Assert\Choice(multiple) plutôt qu'Assert\All (seul Choice est géré par EntityConstraintsHaveFrenchMessageTest). - Garde-fous schema:update : 5 tables M6 ajoutées à ColumnCommentsCatalog, index partiel uq_product_code_active rejoué dans makefile test-db-setup. - i18n audit.entity.catalog_product. |