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:
@@ -4,6 +4,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Tests\Architecture;
|
||||
|
||||
use App\Module\Catalog\Domain\Entity\CategoryType;
|
||||
use App\Module\Core\Domain\Entity\Permission;
|
||||
use App\Module\Core\Domain\Entity\Role;
|
||||
use App\Module\Core\Domain\Entity\User;
|
||||
@@ -45,15 +46,18 @@ final class EntitiesAreTimestampableBlamableTest extends TestCase
|
||||
* - Permission : idem Role (synchronise, pas pilote utilisateur).
|
||||
* - Site : referentiel admin-managed, a integrer dans un futur module Sites
|
||||
* v2 (cf. HP-10).
|
||||
* - 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.
|
||||
*
|
||||
* Les futurs referentiels statiques (ex: CategoryType au ticket 0.2)
|
||||
* s'ajoutent ici avec une justification.
|
||||
* Les futurs referentiels statiques s'ajoutent ici avec une justification.
|
||||
*/
|
||||
private const EXCLUDED = [
|
||||
User::class,
|
||||
Role::class,
|
||||
Permission::class,
|
||||
Site::class,
|
||||
CategoryType::class,
|
||||
];
|
||||
|
||||
public function testAllBusinessEntitiesImplementBothInterfaces(): void
|
||||
|
||||
Reference in New Issue
Block a user