Commit graph

2 commits

Author SHA1 Message Date
Imugiii
f669c32c25 feat(api): P4 chunk 1b - encaissement commande + decrement stock
All checks were successful
CI / secret-scan (push) Successful in 12s
CI / php-lint (push) Successful in 28s
CI / static-tests (push) Successful in 1m0s
CI / js-tests (push) Successful in 35s
CI / secret-scan (pull_request) Successful in 13s
CI / php-lint (pull_request) Successful in 33s
CI / static-tests (pull_request) Successful in 59s
CI / js-tests (pull_request) Successful in 27s
CI / auto-merge (push) Has been skipped
CI / auto-merge (pull_request) Successful in 7s
OrderController (POST /api/orders + /api/orders/{number}/pay) cable sur
OrderRepository::pay : transition gardee pending_payment -> paid et
decrement de stock atomique (RG-5 etapes 5-6, RG-T11/RG-T20) dans une
transaction. Idempotent (deja paid -> renvoi sans re-decrement ; course
concurrente perdue -> sortie idempotente) ; statut terminal -> 409.

Decrement agrege par ingredient (un UPDATE auto-verrouillant + une ligne
stock_movement(sale) par ingredient, ordre de verrou stable par id) ;
modificateurs appliques (remove => 0, add => portion supplementaire) ;
menu = recette du burger + recettes des selections, au format de la ligne.

Inerte tant que les recettes (product_ingredient) ne sont pas seedees.

Routes /api/orders anonymes (kiosk, pas de session). Double de test dedie
extrait en tests/Support/FakeOrderDatabase. PHPUnit 290 + PHPStan L6 verts.
2026-06-18 12:20:20 +00:00
29a191e506 feat(api): P4 chunk 1a - creation de commande + chevalet (#55)
All checks were successful
CI / secret-scan (push) Successful in 10s
CI / js-tests (push) Successful in 35s
CI / auto-merge (push) Has been skipped
CI / php-lint (push) Successful in 29s
CI / static-tests (push) Successful in 1m5s
2026-06-18 14:09:35 +02:00