feat(api): P4 chunk 2 - read API catalogue borne (categories/produits/menus) #60

Merged
Corentin merged 1 commit from feat/p4-read-api-catalogue into dev 2026-06-18 16:10:36 +02:00
Owner
No description provided.
Corentin added 1 commit 2026-06-18 16:08:16 +02:00
feat(api): P4 chunk 2 - read API catalogue borne (categories/produits/menus)
All checks were successful
CI / secret-scan (push) Successful in 8s
CI / php-lint (push) Successful in 20s
CI / static-tests (push) Successful in 42s
CI / js-tests (push) Successful in 24s
CI / secret-scan (pull_request) Successful in 8s
CI / php-lint (pull_request) Successful in 18s
CI / static-tests (pull_request) Successful in 46s
CI / js-tests (pull_request) Successful in 23s
0fc96c8e67
5 endpoints publics anonymes en lecture seule (docs/api/conventions.md 5.2) :
GET /api/categories, /api/products, /api/products/{id}, /api/menus, /api/menus/{id}.

- CatalogueController : projection explicite (types entiers garantis cote JSON),
  enveloppe {data,total} / {data:null,error:{code,message}}, 404 NOT_FOUND.
- Repos lecture : CategoryRepository::activeForCatalogue ; Product/Menu
  ::availableForCatalogue + findForCatalogue. Filtres is_available=1 ET categorie
  active : la borne ne voit que le commandable (liste ET detail). Menu detail
  porte ses slots (slotsWithOptions, option_product_ids).
- Payload canonique snake_case ; vat_rate exclu (fiscal serveur), is_available
  retire (toujours dispo), is_required du slot en booleen, sans timestamp.
- Dispo calculee RG-T21 differee au seed des recettes (filtre actuel = flag).
- Tests : 11 unit (FakeCatalogueDatabase, read-only) + 2 integration (filtres +
  slots vs vraie MariaDB).
Corentin scheduled this pull request to auto merge when all checks succeed 2026-06-18 16:08:16 +02:00
Corentin merged commit a35db88d2f into dev 2026-06-18 16:10:36 +02:00
Sign in to join this conversation.
No reviewers
No labels
auto-merge
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: AcadeNice/corentin_wakdo#60
No description provided.