386 B
386 B
F-179
Cause: payments_transactions status CHECK rejects COMPLETED. POS now writes succeeded, validates session-terminal ownership, stores source/terminal/session/store/customer on the order, and correctly maps idempotent replay payment/item rows. Typecheck and POS tests 8/8 pass. Runtime sale and replay both HTTP 201 with the same order 0ea1004d-1fd5-41c6-be7c-c4910c88f481.