F-201 F-202 F-203: POS cash close report + email + PIN admin

F-201: GET /pos/reports/cash-close/:id with financial summary, sales
  by state, payments breakdown, items sold. Extended /pos/sessions/:id.

F-202: Cash close email sent on session close to smtpReportEmail
  (best-effort). smtpReportEmail field added to admin SMTP settings.

F-203: Admin POS terminal config: selfpayMode, closeSessionRequiresPin,
  closeSessionPin (4-6 digits) with dedicated settings section.
This commit is contained in:
chattie
2026-08-23 09:24:37 +02:00
parent 4b3a506166
commit 18a518e58b
100 changed files with 1704 additions and 284 deletions

View File

@@ -1,22 +1,17 @@
# F-193 — Show product expiry and shipping weight on storefront
# F-203 — Configurar PIN de cajero desde admin panel
Display expiry and weight in frontend product views and use authoritative product weight in shipping calculations.
## Agent & Stage
- Feature: F-203
- Agent: implementer
- Stage: build
- State: running
## Scope
- Add `expiry_date` field to `catalog_products` via migration (nullable, date).
- Add `weight_grams` field to `catalog_product_variants` via migration (nullable, integer, grams).
- Backend: expose these fields via the product API (GET /products/search, GET /productos/:slug).
- Admin product editor: show expiry_date and weight_grams fields in the appropriate sections.
- Storefront product detail page: display expiry date and weight.
- Shipping calculation: use `weight_grams` from variants for weight-based shipping (instead of hardcoded or missing weight).
## Descripción
Desde admin panel POS, permitir configurar:
- selfpayMode (toggle)
- closeSessionRequiresPin (toggle)
- closeSessionPin (campo PIN editable)
## Out of scope
- Batch editing of expiry dates.
- Per-order weight tracking.
## Acceptance
1. Product detail page shows expiry date and weight when available.
2. Admin can edit expiry date and weight_grams in the product editor.
3. Shipping cost calculation uses authoritative weight from variant.
4. Migration is reversible, all existing data stays valid.
5. `verify.sh` green, typecheck green, all tests pass.
## Tareas
1. Admin POS page: añadir campos de terminal settings
2. PATCH ya existe en backend (POS-FIX-5) — asegurar que acepta closeSessionPin