e5fa6cb3c8
- 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