Commit graph

14 commits

Author SHA1 Message Date
Imugiii
0fc96c8e67 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
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).
2026-06-18 14:07:34 +00:00
d880f2512a feat(admin): RBAC - matrice roles/permissions + roles custom (PIN+audit diff) (P3) (#39)
All checks were successful
CI / php-lint (push) Successful in 21s
CI / js-tests (push) Successful in 21s
CI / secret-scan (push) Successful in 10s
CI / static-tests (push) Successful in 44s
CI / auto-merge (push) Has been skipped
2026-06-17 14:25:42 +02:00
e430f54d85 feat(admin): gestion des comptes back-office (CRUD users + RGPD, PIN+audit) (P3) (#38)
All checks were successful
CI / js-tests (push) Successful in 19s
CI / secret-scan (push) Successful in 7s
CI / php-lint (push) Successful in 19s
CI / static-tests (push) Successful in 45s
CI / auto-merge (push) Has been skipped
2026-06-17 13:49:02 +02:00
9c2844c116 feat(admin): tableau de bord statistiques (catalogue + sante stock RG-T21) (P3) (#37)
All checks were successful
CI / secret-scan (push) Successful in 8s
CI / php-lint (push) Successful in 19s
CI / static-tests (push) Successful in 44s
CI / js-tests (push) Successful in 18s
CI / auto-merge (push) Has been skipped
2026-06-17 12:37:58 +02:00
ed392d4c14 feat(admin): recettes produit - composition product_ingredient + dispo calculee RG-T21 (P3, ferme #27) (#35)
All checks were successful
CI / secret-scan (push) Successful in 7s
CI / php-lint (push) Successful in 17s
CI / static-tests (push) Successful in 39s
CI / auto-merge (push) Has been skipped
2026-06-17 11:29:07 +02:00
1f4b9478ca feat(admin): stock ingredients - CRUD, restock, inventaire PIN, mouvements (P3, mlt 8.8 + domaine 9) (#34)
All checks were successful
CI / secret-scan (push) Successful in 8s
CI / php-lint (push) Successful in 21s
CI / static-tests (push) Successful in 39s
CI / auto-merge (push) Has been skipped
2026-06-17 11:11:31 +02:00
c2a4854083 feat(admin): CRUD menus composes avec slots (P3, mlt 8.4-8.6) (#32)
All checks were successful
CI / secret-scan (push) Successful in 9s
CI / php-lint (push) Successful in 22s
CI / static-tests (push) Successful in 48s
CI / auto-merge (push) Has been skipped
2026-06-16 15:39:09 +02:00
ad5203d3fc feat(admin): throttle du PIN d action sensible par acteur (RG-T22) (#18)
All checks were successful
CI / secret-scan (push) Successful in 8s
CI / php-lint (push) Successful in 20s
CI / static-tests (push) Successful in 32s
CI / auto-merge (push) Has been skipped
2026-06-16 00:06:33 +02:00
2756fb4080 feat(admin): CRUD produits avec PIN conditionnel et audit (#17)
All checks were successful
CI / secret-scan (push) Successful in 12s
CI / php-lint (push) Successful in 22s
CI / static-tests (push) Successful in 36s
CI / auto-merge (push) Has been skipped
2026-06-15 22:35:50 +02:00
f63ac9873c feat: PIN self-service P3 (/admin/profile/pin) (#16)
All checks were successful
CI / secret-scan (push) Successful in 8s
CI / php-lint (push) Successful in 18s
CI / static-tests (push) Successful in 35s
CI / auto-merge (push) Has been skipped
2026-06-15 22:04:14 +02:00
8290ceabc4 feat: CRUD categories P3 (rendu serveur, garde + CSRF + validation) (#15)
All checks were successful
CI / secret-scan (push) Successful in 7s
CI / php-lint (push) Successful in 18s
CI / static-tests (push) Successful in 27s
CI / auto-merge (push) Has been skipped
2026-06-15 21:45:31 +02:00
7c35f8e2dc feat: PIN d action sensible P2 (PinVerifier RG-T13) (#13)
All checks were successful
CI / secret-scan (push) Successful in 8s
CI / php-lint (push) Successful in 16s
CI / static-tests (push) Successful in 30s
CI / auto-merge (push) Has been skipped
2026-06-15 21:00:11 +02:00
f979a2339e feat: RBAC P2 (autorisation par permission + garde de session + /api/me) (#12)
All checks were successful
CI / secret-scan (push) Successful in 8s
CI / php-lint (push) Successful in 19s
CI / static-tests (push) Successful in 33s
CI / auto-merge (push) Has been skipped
2026-06-15 20:45:19 +02:00
1b0b20c12d feat: authentification back-office P2 (login/logout/reset, throttle, audit) (#11)
All checks were successful
CI / secret-scan (push) Successful in 7s
CI / php-lint (push) Successful in 17s
CI / static-tests (push) Successful in 32s
CI / auto-merge (push) Has been skipped
2026-06-15 20:18:59 +02:00