chore(checkpoint): save club core backend and pending pos fixes

This commit is contained in:
Deploy
2026-08-26 17:58:45 +02:00
parent cf3c906ed2
commit 49dfd00406
44 changed files with 2241 additions and 219 deletions

View File

@@ -7902,6 +7902,198 @@
"qa": false
},
"phase": "backend"
},
{
"id": "CHECKOUT-RETURNTO",
"type": "fix",
"title": "Checkout login: return user to checkout after sign in",
"description": "If checkout requires login and customer signs in, redirect back to the same checkout screen instead of home. Preserve intended route when auth starts from checkout.",
"priority": "high",
"risk": "low",
"status": "pending",
"created_at": "2026-08-26",
"gates": {
"reviewer": false,
"security": false,
"qa": false
},
"phase": "frontend"
},
{
"id": "CHECKOUT-STOCK-RECHECK",
"type": "bug",
"title": "Checkout insufficient stock error still appears after cart sync fix",
"description": "Investigate why frontend still shows raw INSUFFICIENT_STOCK JSON / requested 17 vs available 16 after the recent fix. Verify deployment/version and fix any remaining stale cart sync or proxy behavior.",
"priority": "high",
"risk": "med",
"status": "pending",
"created_at": "2026-08-26",
"gates": {
"reviewer": false,
"security": false,
"qa": false
},
"phase": "frontend"
},
{
"id": "PDP-IMAGE-WHITE-BG",
"type": "fix",
"title": "Product detail image card background must be white",
"description": "On product detail pages such as /products/proteina-guisante-ecologica, the image card background is light gray and should be white.",
"priority": "med",
"risk": "low",
"status": "pending",
"created_at": "2026-08-26",
"gates": {
"reviewer": false,
"security": false,
"qa": false
},
"phase": "frontend"
},
{
"id": "ORDER-STATUS-LABELS",
"type": "fix",
"title": "Admin order status labels should be lowercase and unified",
"description": "Dashboard 'Pedidos por estado' shows COMPLETED in uppercase. Display lowercase/humanized labels and use the same final-order label in the admin orders screens.",
"priority": "med",
"risk": "low",
"status": "pending",
"created_at": "2026-08-26",
"gates": {
"reviewer": false,
"security": false,
"qa": false
},
"phase": "admin"
},
{
"id": "POS-PWA",
"type": "feature",
"title": "POS: make TPV installable PWA and launch fullscreen",
"description": "Convert the POS app into an installable PWA with manifest/icons and fullscreen display mode so TPV terminals open like a kiosk app.",
"priority": "med",
"risk": "med",
"status": "pending",
"created_at": "2026-08-26",
"gates": {
"reviewer": false,
"security": false,
"qa": false
},
"phase": "pos"
},
{
"id": "POS-SELFPAY-FLOW",
"type": "feature",
"title": "POS selfpay: simplified pay flow with optional email receipt",
"description": "In selfpay mode show only 'Pagar' and 'Limpiar ticket'. On pay, ask optional email, then show payment methods. Cash prints the ticket and sends customer to cashier; if email was provided, also send the receipt by email. Keep card/other methods ready for future posnet integration.",
"priority": "high",
"risk": "high",
"status": "pending",
"created_at": "2026-08-26",
"gates": {
"reviewer": false,
"security": false,
"qa": false
},
"phase": "pos"
},
{
"id": "CLUB-001",
"type": "feature",
"title": "Club core backend: anonymous members, devices, ledger, cashback config",
"description": "Phase 1. Add club members, device tokens, recovery-ready identity model, transaction ledger as source of truth, cashback config, basic backend endpoints, migrations and tests.",
"priority": "high",
"risk": "high",
"status": "in_progress",
"created_at": "2026-08-26",
"gates": {
"reviewer": false,
"security": false,
"qa": false
},
"phase": "backend"
},
{
"id": "CLUB-002",
"type": "feature",
"title": "Club PWA: join flow, digital card and installable shell",
"description": "Phase 2. Add /club/join, /club/card, QR card UI, manifest, standalone installability and mobile-first Club PWA shell.",
"priority": "high",
"risk": "med",
"status": "pending",
"created_at": "2026-08-26",
"gates": {
"reviewer": false,
"security": false,
"qa": false
},
"phase": "frontend"
},
{
"id": "CLUB-003",
"type": "feature",
"title": "Club POS integration: identify member and register cashback from sales",
"description": "Phase 3. Let TPV scan Club QR, identify members, preview balance/use, record sale-linked cashback and refund-safe idempotent club transactions.",
"priority": "high",
"risk": "high",
"status": "pending",
"created_at": "2026-08-26",
"gates": {
"reviewer": false,
"security": false,
"qa": false
},
"phase": "pos"
},
{
"id": "CLUB-004",
"type": "feature",
"title": "Club recovery: recovery codes and device reassignment",
"description": "Phase 4. Add secure recovery codes, /club/recover and new-device relinking for anonymous members without accounts.",
"priority": "med",
"risk": "high",
"status": "pending",
"created_at": "2026-08-26",
"gates": {
"reviewer": false,
"security": false,
"qa": false
},
"phase": "backend"
},
{
"id": "CLUB-005",
"type": "feature",
"title": "Club registered users: account linking and automatic recovery",
"description": "Phase 5. Link club members to Mercado de Vida users, restore card automatically after login and handle safe merge between anonymous and registered memberships.",
"priority": "med",
"risk": "high",
"status": "pending",
"created_at": "2026-08-26",
"gates": {
"reviewer": false,
"security": false,
"qa": false
},
"phase": "backend"
},
{
"id": "CLUB-006",
"type": "feature",
"title": "Club admin: dashboard, members, movements and settings",
"description": "Phase 6. Add admin Club de Clientes section with dashboard, member list, movements and configuration screens.",
"priority": "med",
"risk": "med",
"status": "pending",
"created_at": "2026-08-26",
"gates": {
"reviewer": false,
"security": false,
"qa": false
},
"phase": "admin"
}
]
}