Commit graph

7 commits

Author SHA1 Message Date
Imugiii
7835ae08c6 feat(borne): soumission reelle de commande + ecran chevalet (P5 L4)
All checks were successful
CI / secret-scan (pull_request) Successful in 17s
CI / js-tests (pull_request) Successful in 25s
CI / secret-scan (push) Successful in 9s
CI / php-lint (push) Successful in 22s
CI / static-tests (push) Successful in 50s
CI / php-lint (pull_request) Successful in 23s
CI / static-tests (pull_request) Successful in 48s
CI / js-tests (push) Successful in 27s
La borne POSTe desormais une vraie commande a l'API (avant : payment.html simulait
une redirection). Au paiement : le panier est traduit vers le contrat /api/orders,
la commande est creee puis encaissee (pay -> decrement stock RG-T20).

- checkout.js : traduction PURE panier -> contrat (produit/menu, format normal/maxi,
  selections [{menu_slot_id, product_id}] reconstruites depuis la composition + les
  slots re-fetches ; service_mode dine_in/takeaway ; service_tag chevalet). submitOrder
  fait create puis pay. Cle d'idempotence STABLE en sessionStorage : un retry reutilise
  la meme cle -> pas de commande doublon (RG-T19) ; effacee au succes.
- page-payment.js : recap + flux ; modale chevalet (sur-place, saisie du numero de
  table, maquette ecran 9) avec focus-trap/ESC ; verrou anti double-clic ; messages
  d'erreur. Cle d'idempotence fraiche a chaque visite paiement.
- page-confirmation.js : numero de commande REEL (via sessionStorage) au lieu d'un
  numero genere ; repli si visite directe.
- tests : checkout.test.js (traduction + submitOrder mocke). 64/64 verts.

Verifie e2e contre l'API reelle : commande creee + payee, stock decremente exactement
(Menu Le 280 + Big Mac x2 -> -5 Steak hache). Revue adversariale (9 findings) :
CRITIQUE (migration service_tag dupliquee) ecarte -- la colonne est livree par
0003_order_service_tag.sql (#55), juste non appliquee sur la stack dev (reconcilie
dans schema_migrations) ; MEDIUM idempotency + double-clic corriges ; aria-live
imbrique + commentaires obsoletes nettoyes. Differes (LOW notes) : format deduit du
supplement (theorique, le seed met toujours +150), selection sans slot silencieuse.
2026-06-19 17:59:49 +00:00
22a4bacc22 feat(borne): modale options produit + grille en modales (P5 L3) (#66)
All checks were successful
CI / secret-scan (push) Successful in 9s
CI / php-lint (push) Successful in 22s
CI / static-tests (push) Successful in 54s
CI / js-tests (push) Successful in 29s
2026-06-19 18:41:57 +02:00
6e5a5f9334 feat(borne): composeur menu pilote par les slots /api/menus (P5 L2) (#65)
All checks were successful
CI / secret-scan (push) Successful in 11s
CI / php-lint (push) Successful in 31s
CI / static-tests (push) Successful in 58s
CI / js-tests (push) Successful in 33s
2026-06-19 18:30:38 +02:00
c73afdf471 feat(borne): panneau commande persistant + bandeau categories (P5 L1) (#64)
All checks were successful
CI / secret-scan (push) Successful in 10s
CI / php-lint (push) Successful in 21s
CI / static-tests (push) Successful in 53s
CI / js-tests (push) Successful in 26s
2026-06-19 16:54:47 +02:00
7a0702ff6e feat(borne): cablage de la borne sur l'API (CORS + data.js) (#61)
All checks were successful
CI / secret-scan (push) Successful in 8s
CI / php-lint (push) Successful in 23s
CI / static-tests (push) Successful in 52s
CI / js-tests (push) Successful in 26s
2026-06-18 16:46:17 +02:00
60535bbe00 feat(admin): modal de re-autorisation PIN (#52)
All checks were successful
CI / secret-scan (push) Successful in 15s
CI / php-lint (push) Successful in 19s
CI / static-tests (push) Successful in 1m5s
CI / js-tests (push) Successful in 32s
CI / auto-merge (push) Has been skipped
2026-06-18 13:17:59 +02:00
1ecd78324c feat(borne): modale allergenes generale (14 INCO) sur carte et fiche + harnais tests JS (P3) (#36)
All checks were successful
CI / secret-scan (push) Successful in 7s
CI / php-lint (push) Successful in 18s
CI / static-tests (push) Successful in 42s
CI / js-tests (push) Successful in 18s
CI / auto-merge (push) Has been skipped
2026-06-17 12:10:46 +02:00