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.
This commit is contained in:
@@ -5,6 +5,7 @@ declare(strict_types=1);
|
||||
namespace App\Tests\Architecture;
|
||||
|
||||
use App\Module\Catalog\Domain\Entity\CategoryType;
|
||||
use App\Module\Catalog\Domain\Entity\StorageType;
|
||||
use App\Module\Commercial\Domain\Entity\Bank;
|
||||
use App\Module\Commercial\Domain\Entity\Country;
|
||||
use App\Module\Commercial\Domain\Entity\PaymentDelay;
|
||||
@@ -55,6 +56,10 @@ final class EntitiesAreTimestampableBlamableTest extends TestCase
|
||||
* - CategoryType : referentiel statique (codes de typage des categories),
|
||||
* pas de besoin de tracabilite user-driven (cree par migration/seed,
|
||||
* pas pilote utilisateur au M0). Cf. spec-back § 2.8.bis + RG-1.17.
|
||||
* - StorageType (M6, ERP-199) : referentiel PROVISOIRE des types de stockage
|
||||
* (en attente liste Aurore — HP-M6-02), cree par migration + seede (ERP-201),
|
||||
* lecture seule au M6. Pas de tracabilite user-driven, meme justification que
|
||||
* CategoryType. Cf. spec-back M6 § 2.4 + § 2.6.
|
||||
* - TvaMode / PaymentDelay / PaymentType / Bank (M1 Commercial) : referentiels
|
||||
* comptables statiques (id/code/label/position), seedes par migration +
|
||||
* CommercialReferentialFixtures, lecture seule au M1 (HP-M2-2). Pas de
|
||||
@@ -75,6 +80,7 @@ final class EntitiesAreTimestampableBlamableTest extends TestCase
|
||||
Permission::class,
|
||||
Site::class,
|
||||
CategoryType::class,
|
||||
StorageType::class,
|
||||
TvaMode::class,
|
||||
PaymentDelay::class,
|
||||
PaymentType::class,
|
||||
|
||||
Reference in New Issue
Block a user