feat(F-158): completed feature

This commit is contained in:
chattie
2026-08-22 17:50:55 +02:00
parent 7159baf851
commit 3e1a447e43
16 changed files with 348 additions and 77 deletions

View File

@@ -1,17 +1,17 @@
# Feature activa: F-157Reporting sections live on Reporting page
# Feature activa: F-158POS use same-origin API proxy on LAN
## Problema
El menú principal muestra Dashboard, Ventas y Productos de Reporting como entradas indentadas. El operador requiere una única entrada principal **Reporting**. Al abrirla, sus apartados deben aparecer dentro del área de Reporting, igual que las pestañas internas de Ajustes.
El TPV abierto en `http://192.168.18.93:3006` ejecuta peticiones del navegador contra `http://localhost:3000`. En un cliente LAN, `localhost` apunta al propio cliente y produce `ERR_CONNECTION_REFUSED`.
## Alcance
- El sidebar principal muestra solo `Reporting`.
- `/reporting` abre por defecto el apartado Dashboard.
- Dashboard, Ventas y Productos se muestran como navegación local dentro de Reporting.
- La navegación local permanece visible en las páginas de los tres apartados.
- No se cambian APIs ni permisos de Reporting.
- El cliente POS usa rutas same-origin `/api/...`.
- El route handler de Next.js reenvía las peticiones al backend privado (`127.0.0.1:3000`).
- El proxy conserva cookies de sesión y `x-terminal-id`.
- El login propaga `Set-Cookie` al navegador.
- Next dev permite el origen LAN `192.168.18.93`.
## Aceptación
1. No aparecen `/reporting/dashboard`, `/reporting/sales` ni `/reporting/products` en el menú principal.
2. Al pulsar Reporting aparece una lista local con Dashboard, Ventas y Productos.
3. El apartado activo queda visualmente marcado.
4. El build del admin y `verify.sh` pasan.
1. El navegador no solicita directamente `localhost:3000`.
2. `GET /api/pos/config` llega al backend mediante el proxy.
3. Login conserva la cookie de sesión.
4. POS build, TypeScript y `verify.sh` pasan.