From adda62c1e1ed8b390af7111045f04d7e39959d2a Mon Sep 17 00:00:00 2001 From: THOLOT DECHENE Matthieu Date: Thu, 28 May 2026 09:45:06 +0000 Subject: [PATCH] =?UTF-8?q?[ERP-46]=20Exposer=20le=20r=C3=A9f=C3=A9rentiel?= =?UTF-8?q?=20CategoryType=20en=20lecture=20seule=20(#18)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Contexte Ticket Lesstime #46 — position 0.4 (M0 Catalog, quick win). Expose `CategoryType` en lecture seule pour alimenter le `` du formulaire `Category` côté front. Pas d'écriture exposée au M0 (table vide à la livraison). ## Mode stacked PR ⚠ **Cible (base branch) : `feature/ERP-45-implementer-provider-processor-category`** (PAS develop). Quand MR ERP-45 sera mergée sur develop, repointer la cible de cette MR vers develop. ## Changement Le gros du travail (`#[ApiResource(operations: [GetCollection, Get])]`, security `is_granted('catalog.categories.view')`, groupes de sérialisation) a été livré dans le ticket ERP-44. Cette MR ajoute uniquement ce qui manquait à la spec § 4.6 : - `order: ['label' => 'ASC']` sur l'opération `GetCollection` → tri alphabétique stable pour le select front. ## Critères d'acceptation (spec § 4.6) - [x] `GET /api/category_types` retourne tous les `CategoryType` triés par `label ASC` - [x] `GET /api/category_types/{id}` retourne le détail - [x] POST / PATCH / DELETE → 404 (opérations non déclarées) - [x] Security `is_granted('catalog.categories.view')` sur les 2 opérations - [x] `make php-cs-fixer-allow-risky` passe (0 fix) ## Vérifications \`\`\` $ php bin/console debug:router | grep category_type _api_/category_types{._format}_get_collection GET /api/category_types.{_format} _api_/category_types/{id}{._format}_get GET /api/category_types/{id}.{_format} \`\`\` → Exactement 2 routes générées, aucune POST/PATCH/DELETE. - \`make php-cs-fixer-allow-risky\` ✓ (0 fix) - \`make test\` ✓ (248/248) --------- Co-authored-by: Matthieu Reviewed-on: https://gitea.malio.fr/MALIO-DEV/Starseed/pulls/18 Co-authored-by: THOLOT DECHENE Matthieu Co-committed-by: THOLOT DECHENE Matthieu --- src/Module/Catalog/Domain/Entity/CategoryType.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Module/Catalog/Domain/Entity/CategoryType.php b/src/Module/Catalog/Domain/Entity/CategoryType.php index 797fd65..83aa826 100644 --- a/src/Module/Catalog/Domain/Entity/CategoryType.php +++ b/src/Module/Catalog/Domain/Entity/CategoryType.php @@ -29,6 +29,9 @@ use Symfony\Component\Serializer\Attribute\Groups; new GetCollection( security: "is_granted('catalog.categories.view')", normalizationContext: ['groups' => ['category_type:read']], + // Tri par defaut requis par la spec M0 § 4.6 : ordre alphabetique + // stable pour alimenter le du formulaire Category. + order: ['label' => 'ASC'], ), new Get( security: "is_granted('catalog.categories.view')",