feat(catalog) : taxonomie FOURNISSEUR (type + filtre ?typeCode= + seed) (ERP-84) #63

Merged
malio merged 1 commits from feature/ERP-84-taxonomie-fournisseur into develop 2026-06-08 06:57:33 +00:00
Owner

ERP-84 — Taxonomie FOURNISSEUR (Catalog)

Prérequis du multi-select « Catégorie » de l'écran Ajouter fournisseur (#94) et de #92.
Spec : docs/specs/M2-suppliers/spec-back.md § 2.4 + § 4.7.

Contexte

ERP-78 avait unifié la taxonomie sur un type unique CLIENT ; GET /api/categories?typeCode=FOURNISSEUR renvoyait alors les catégories CLIENT (filtre ignoré, un seul CategoryType). Le filtre ?typeCode= n'existait pas en prod.

Changements

  • Filtre ?typeCode= réel sur GET /api/categories : CategoryProvider lit le filtre (même pattern que includeDeleted) et le passe à DoctrineCategoryRepository::createListQueryBuilder, qui joint le CategoryType et filtre sur son code. N'altère pas l'échappatoire ?pagination=false ni la pagination Hydra.
  • CategoryType FOURNISSEUR recréé : migration racine Version20260605120000 (INSERT … ON CONFLICT pour le type + 5 catégories de démo en NOT EXISTS : Négociant, Coopérative, Producteur, Grossiste, Importateur). Aucune colonne créée → pas de COMMENT ON COLUMN.
  • Fixtures étendues : CategoryTypeFixtures + CategoryFixtures seedent FOURNISSEUR de façon idempotente (survit à make db-reset).
  • Test : CategoryTypeCodeFilterTest (filtre exclusif, compat pagination Hydra, code inexistant → liste vide).

Vérifications

  • make php-cs-fixer-allow-risky : clean.
  • make test : 483 tests OK (1844 assertions).
  • Après make db-reset :
    • /api/category_typesCLIENT + FOURNISSEUR.
    • ?typeCode=FOURNISSEUR → uniquement les 5 catégories FOURNISSEUR.
    • ?typeCode=CLIENT → 11 catégories, type unique CLIENT.

Critères d'acceptation

  • CategoryType FOURNISSEUR présent après make db-reset.
  • ?typeCode=FOURNISSEUR ne renvoie QUE les catégories FOURNISSEUR.
  • Catégories fournisseurs seedées sous ce type.
  • make test vert.
## ERP-84 — Taxonomie FOURNISSEUR (Catalog) Prérequis du multi-select « Catégorie » de l'écran Ajouter fournisseur (#94) et de #92. Spec : `docs/specs/M2-suppliers/spec-back.md` § 2.4 + § 4.7. ### Contexte ERP-78 avait unifié la taxonomie sur un **type unique CLIENT** ; `GET /api/categories?typeCode=FOURNISSEUR` renvoyait alors les catégories CLIENT (filtre **ignoré**, un seul `CategoryType`). Le filtre `?typeCode=` n'existait pas en prod. ### Changements - **Filtre `?typeCode=` réel** sur `GET /api/categories` : `CategoryProvider` lit le filtre (même pattern que `includeDeleted`) et le passe à `DoctrineCategoryRepository::createListQueryBuilder`, qui joint le `CategoryType` et filtre sur son `code`. N'altère pas l'échappatoire `?pagination=false` ni la pagination Hydra. - **CategoryType FOURNISSEUR recréé** : migration racine `Version20260605120000` (`INSERT … ON CONFLICT` pour le type + 5 catégories de démo en `NOT EXISTS` : Négociant, Coopérative, Producteur, Grossiste, Importateur). Aucune colonne créée → pas de `COMMENT ON COLUMN`. - **Fixtures étendues** : `CategoryTypeFixtures` + `CategoryFixtures` seedent FOURNISSEUR de façon idempotente (survit à `make db-reset`). - **Test** : `CategoryTypeCodeFilterTest` (filtre exclusif, compat pagination Hydra, code inexistant → liste vide). ### Vérifications - `make php-cs-fixer-allow-risky` : clean. - `make test` : **483 tests OK** (1844 assertions). - Après `make db-reset` : - `/api/category_types` → `CLIENT` + `FOURNISSEUR`. - `?typeCode=FOURNISSEUR` → uniquement les 5 catégories FOURNISSEUR. - `?typeCode=CLIENT` → 11 catégories, type unique CLIENT. ### Critères d'acceptation - [x] `CategoryType` FOURNISSEUR présent après `make db-reset`. - [x] `?typeCode=FOURNISSEUR` ne renvoie QUE les catégories FOURNISSEUR. - [x] Catégories fournisseurs seedées sous ce type. - [x] `make test` vert.
matthieu added the backdbM2-Fournisseurtype/feat labels 2026-06-05 08:00:30 +00:00
malio changed target branch from main to develop 2026-06-05 11:57:25 +00:00
malio added 1 commit 2026-06-05 11:57:25 +00:00
Recree le CategoryType FOURNISSEUR (unifie sur CLIENT par ERP-78) et implemente
un vrai filtre ?typeCode= sur GET /api/categories (inexistant en prod).

- CategoryProvider lit ?typeCode= depuis les filtres (meme pattern que
  includeDeleted) et le passe au repository ; naltere pas ?pagination=false.
- DoctrineCategoryRepository::createListQueryBuilder joint le CategoryType et
  filtre sur son code (compatible Paginator ORM fetchJoinCollection).
- Migration racine Version20260605120000 : seed du type FOURNISSEUR en
  ON CONFLICT + 5 categories de demo (Negociant, Cooperative, Producteur,
  Grossiste, Importateur) en NOT EXISTS. Aucune colonne creee.
- CategoryTypeFixtures / CategoryFixtures etendus a FOURNISSEUR (idempotent,
  survit a make db-reset).
- Test CategoryTypeCodeFilterTest : filtre exclusif, compat pagination Hydra,
  code inexistant -> liste vide.
malio merged commit 0b33bcb0f2 into develop 2026-06-08 06:57:33 +00:00
malio deleted branch feature/ERP-84-taxonomie-fournisseur 2026-06-08 06:57:33 +00:00
Sign in to join this conversation.