feat(technique) : entités + repositories Provider* (ERP-133) #91
Reference in New Issue
Block a user
Delete Branch "feature/ERP-133-creer-entites-provider"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
PR empilée sur ERP-132 (#90) — base = `feature/ERP-132-migrer-schema-bdd-m3` (ERP-132 pas encore mergé dans develop). À rebaser sur develop une fois #90 mergée.
Périmètre (ticket Lesstime #133, M3 § 3.3/3.4/2.12/4.0)
Entités Doctrine + mapping ApiResource (squelette) + repository avec hydratation anti-N+1. Miroir des entités
Supplier*(M2), amputé de l'onglet Information et augmenté deprovider.sites(M2M direct, RG-3.03).Créé
Provider,ProviderContact,ProviderAddress(simplifiée : pas deaddressType/bennes/triageProvider),ProviderRib—#[Auditable]+ Timestampable/Blamable.ProviderRepositoryInterface+DoctrineProviderRepository:createListQueryBuilder(filtres + tri seuls) +hydrateListCollectionsanti-N+1 (catégories puis sites en relation directe, requêtesINbornées séparées — § 2.12).Contrat de sérialisation (RETEX M1 — 3 maillons)
Groupes posés sur l'entité (source unique) : liste =
provider:read+category:read+site:read; détail = +provider:item:read. Piège booléenisArchivedtraité (#[Groups]+#[SerializedName]sur le getter). Embedcategories[].code/name+sites[].name/postalCode(objet, pas IRI).Consommation cross-module (§ 2.1)
SiteInterface/CategoryInterface+resolve_target_entities) — comme Supplier, conforme règle ABSOLUE n°1.TvaMode/PaymentDelay/PaymentType/Bank) en relation ORM partagée directe (décision § 2.1, remontée Shared tracée HP-M4-2).Garde-fous / infra (requis pour le vert)
Techniquedansdoctrine.yaml(sinon les 9 tablesprovider*vues orphelines → DROP).provider*ajoutées àColumnCommentsCatalog+ lignedbal:run-sql uq_provider_company_name_activeau makefiletest-db-setup.audit.entity.technique_*(fr.json) ;ProviderAddress::postalCodewhitelisté dansEXCLUDED_LENGTH_MIRROR(Regex CP {4,5}).Hors périmètre (→ ERP-134)
ApiResource sans
ProviderProvider/ProviderProcessor; sous-entités sans#[ApiResource]. Hydratation effective, gating accounting, cloisonnement par site, normalisation, 409 doublon, RG-3.07/3.08 → ERP-134. Sous-ressources POST/PATCH/DELETE → ticket ultérieur.Tests
58474404b4tof8be14a299