feat(catalog) : add Category and CategoryType entities with Timestampable+Blamable pattern
- Category : ApiResource (5 ops), #[Auditable], TimestampableBlamableTrait + interfaces, asserts (NotBlank/Length sur name, NotNull sur categoryType), soft delete via deletedAt, groupes category:read/category:write + default:read - CategoryType : referentiel statique en lecture seule (GetCollection + Get), embarque dans Category via le groupe category:read - Repositories : interfaces Domain + impl Doctrine pour les deux entites - doctrine.yaml : mapping ORM Catalog inconditionnel (miroir Sites) pour que l'ORM reconnaisse les entites ; declaration du module = ticket 0.5 - EntitiesAreTimestampableBlamableTest : CategoryType ajoute a EXCLUDED (RG-1.17) - Index nommes declares sur les entites (match migration) ; index unique partiel uq_category_name_type_active possede par la migration seule
This commit is contained in:
@@ -54,6 +54,18 @@ doctrine:
|
||||
dir: '%kernel.project_dir%/src/Module/Sites/Domain/Entity'
|
||||
prefix: 'App\Module\Sites\Domain\Entity'
|
||||
alias: Sites
|
||||
# Mapping inconditionnel du module Catalog (meme logique que Sites) :
|
||||
# la structure DB (category, category_type) existe meme si
|
||||
# CatalogModule::class n'est pas encore wire dans config/modules.php
|
||||
# (declaration du module = ticket 0.5 / ERP-47). L'ORM doit connaitre
|
||||
# les entites pour que le schema soit en phase ; l'activation
|
||||
# fonctionnelle passe exclusivement par config/modules.php.
|
||||
Catalog:
|
||||
type: attribute
|
||||
is_bundle: false
|
||||
dir: '%kernel.project_dir%/src/Module/Catalog/Domain/Entity'
|
||||
prefix: 'App\Module\Catalog\Domain\Entity'
|
||||
alias: Catalog
|
||||
controller_resolver:
|
||||
auto_mapping: false
|
||||
|
||||
|
||||
Reference in New Issue
Block a user