feat(F-163): completed feature
This commit is contained in:
10
work/artifacts/F-163/architect.md
Normal file
10
work/artifacts/F-163/architect.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# F-163 — Diseño
|
||||
|
||||
## Admin
|
||||
Página `/pos` consume APIs administrativas existentes con el cliente `api` compartido. Lista terminales y permite crear uno para una tienda activa; el binding code se muestra/copiará. RBAC sigue backend admin-only.
|
||||
|
||||
## POS
|
||||
Cuando config devuelve `session: null`, renderiza apertura de caja local. `POST /pos/sessions` recibe fondo inicial en céntimos; el proxy aporta `x-terminal-id` desde cookie. Tras 201 se recarga config.
|
||||
|
||||
## Backend
|
||||
La tienda por defecto usa UUID nil válido; sustituir Zod `.uuid()` estricto del body de terminal por regex canónica que acepta UUID nil y generados.
|
||||
7
work/artifacts/F-163/documenter.md
Normal file
7
work/artifacts/F-163/documenter.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# TPV: terminal y sesión
|
||||
|
||||
- **Terminal**: caja/dispositivo físico. Admin → TPV crea el terminal y muestra su código de 8 caracteres.
|
||||
- **Vincular**: introducir ese código una vez en el navegador del TPV.
|
||||
- **Sesión de caja**: turno diario. En el TPV se indica efectivo inicial y se pulsa «Abrir caja y comenzar».
|
||||
|
||||
La caja principal ya está vinculada y tiene una sesión OPEN.
|
||||
10
work/artifacts/F-163/implementer.md
Normal file
10
work/artifacts/F-163/implementer.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# F-163 — Implementer
|
||||
|
||||
- Nueva entrada Admin → TPV y página para explicar, listar y crear terminales/códigos.
|
||||
- Creación acepta UUID nil de tienda por defecto.
|
||||
- POS login usa backoffice auth (cash session FK apunta a backoffice users).
|
||||
- Pantalla «Sesión cerrada» sustituida por formulario para abrir caja con efectivo inicial.
|
||||
- Config backend devuelve la sesión abierta completa, necesaria para ventas.
|
||||
- Caja `TPV Principal` abierta con sesión `6d281efe-0682-4763-88bf-5d8cb4403c05`.
|
||||
|
||||
Evidencia: creación terminal con tienda default PASS; login/bind/open/config = 200/200/201/200; session OPEN; admin+POS builds PASS; 6/6 cash session tests; tsc/verify PASS.
|
||||
1
work/artifacts/F-163/leader-close.json
Normal file
1
work/artifacts/F-163/leader-close.json
Normal file
@@ -0,0 +1 @@
|
||||
{"feature_id":"F-163","agent":"leader","stage":"close","verdict":"APPROVED","checks":[{"item":"all gates","ok":true},{"item":"e2e create-bind-open-config","ok":true},{"item":"build/tests/verify","ok":true}],"issues":[]}
|
||||
1
work/artifacts/F-163/qa.json
Normal file
1
work/artifacts/F-163/qa.json
Normal file
@@ -0,0 +1 @@
|
||||
{"feature_id":"F-163","agent":"qa","stage":"qa_gate","verdict":"APPROVED","checks":[{"item":"create terminal","ok":true},{"item":"bind","ok":true},{"item":"open session","ok":true},{"item":"config session OPEN","ok":true},{"item":"build/tests","ok":true}],"issues":[]}
|
||||
1
work/artifacts/F-163/reviewer.json
Normal file
1
work/artifacts/F-163/reviewer.json
Normal file
@@ -0,0 +1 @@
|
||||
{"feature_id":"F-163","agent":"reviewer","stage":"review_gate","verdict":"APPROVED","checks":[{"item":"admin terminal UI","ok":true},{"item":"cash opening UI","ok":true},{"item":"auth/FK alignment","ok":true},{"item":"runtime e2e","ok":true}],"issues":[]}
|
||||
1
work/artifacts/F-163/security.json
Normal file
1
work/artifacts/F-163/security.json
Normal file
@@ -0,0 +1 @@
|
||||
{"feature_id":"F-163","agent":"security","stage":"security_gate","verdict":"APPROVED","checks":[{"item":"admin endpoints RBAC","ok":true},{"item":"HttpOnly terminal cookie","ok":true},{"item":"backoffice staff session","ok":true}],"issues":[]}
|
||||
Reference in New Issue
Block a user