[PK-32] BE-5 Checkout: order + decrement skladu + variable_symbol #8
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/PK-32-checkout"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
POST /api/checkout— transakcne (re-check skladu, snapshot cien, decrement StockLevel, delete CartItem rows, InboxNotification).GET /api/orders/:id— owner alebo guest so signed HMAC tokenom (?token=...); 404 pri nesplneni (no leak).GET /api/orders— list pre prihlaseneho usera (BE-2 soft-dep — guest dostane{orders: []}).variable_symbolcez novuOrderCountersingle-row tabulku.CHECKOUT_SECRETenv (placeholder v.env.example).Cartrow zachovany.API kontrakt
POST /api/checkout
Request:
Response 201:
Chyby:
400 invalid_body,400 validation_failed {fields:{...}},400 empty_cart,409 stock_exceeded {items:[{product_slug,available,requested}]},500 internal_error(rollback).GET /api/orders/:id
order.user_id⇒ 200?token=<HMAC>match ⇒ 200GET /api/orders
session.userId⇒{orders: []}session.userId⇒ orderov usera (desc by created_at, limit 50)Test plan
npm run typecheck✓npm run build✓npm run lint— eslint nie je v repe nastaveny (Next.js prvy-spustenie wizard); ostalo po INFRA-1, neriesim v tomto MR.Coverage: empty cart, validation (email/address polozkovo), stock race, guest happy path (cart-clear + stock decrement + inbox notif), user happy path (stub
session.userId), snapshot stability po zmene ceny, variable_symbol unique pri 8 paralelnych checkoutoch, signed token success / wrong-email / wrong-token / no-token, cross-user 404, list filtering.Migracia:
20260516191500_add_order_counter— pridava jednoradkovuOrderCountertabulku, atomicky inkrementovanu v checkout transakcii.e17e513442to71f48f8910