Files

86 lines
3.2 KiB
Markdown

# DASH-REMOVE-VARIANTS-CARD — Implementer evidence
> Implementer: build · Estado: ready for review
## Resumen ejecutivo
He eliminado las 2 KPI cards del dashboard que referenciaban el concepto
"variantes" de producto. El concepto variants ya no aplica desde F-108
(remove variants module), y la card "Alertas" era además redundante con
la campanita `OrderNotifications` (NOTIF-INVENTORY-ALERTS cerrado en la
sesión anterior, que ahora muestra todas las alertas de inventario).
## Cambios aplicados
| Archivo | Δ | Descripción |
|---|---|---|
| `project/apps/admin/src/app/(dashboard)/page.tsx` | -19/+2 | Eliminada la KPI card "Sin stock" (sub "Variantes agotadas") de la fila primaria. Eliminada la KPI card "Alertas" (sub "X sin stock") de la fila secundaria. Grids rebalanceados: primaria `lg:grid-cols-4``lg:grid-cols-3`; secundaria `lg:grid-cols-3``lg:grid-cols-2`. |
Total: 1 archivo, 2 líneas añadidas, 19 líneas eliminadas.
## Estado final del dashboard
| Fila | Antes | Después |
|---|---|---|
| KPI primaria | Pedidos hoy, Ingresos hoy, Productos activos, **Sin stock** | Pedidos hoy, Ingresos hoy, Productos activos |
| KPI secundaria | Clientes nuevos, Total pedidos, **Alertas** | Clientes nuevos, Total pedidos |
| Pedidos por estado | (intacto) | (intacto) |
| Acciones rápidas | (intacto) | (intacto) |
## Decisiones
1. **`outOfStockVariants` en el interface Stats se mantiene.** Aunque ya no
se renderiza, sigue siendo parte del contrato con el backend. El
endpoint `/api/admin/stats` sigue devolviéndolo (otros consumers pueden
usarlo). Eliminarlo del interface sería un cambio de contrato de API
innecesario para un chore visual.
2. **No reemplazo el card con algo nuevo.** El operador tiene la campanita
en el header que ahora muestra todas las alertas de inventario (low
stock, out of stock, caducados, por caducar, margen <30%). Duplicar
esa info en el dashboard sería ruido.
3. **Backend intacto.** No se toca `/api/admin/stats` ni
`admin-stats/api/stats.routes.ts`. Si en el futuro nadie consume
`outOfStockVariants`, se limpiará en otra iteración.
## Evidencia de verificación
### 1. Typecheck admin
```bash
$ cd project/apps/admin && npx tsc --noEmit
(exit 0, sin output)
```
### 2. verify.sh del orquestra
```bash
$ ./scripts/verify.sh
[OK] backlog válido (367 features)
[OK] runtime-status válido
[OK] Orquestra verificado. Puedes trabajar.
```
### 3. Diff resumido
```text
project/apps/admin/src/app/(dashboard)/page.tsx | 21 ++-------------------
1 file changed, 2 insertions(+), 19 deletions(-)
```
Cambios:
- `lg:grid-cols-4` `lg:grid-cols-3` (primaria).
- `lg:grid-cols-3` `lg:grid-cols-2` (secundaria).
- Bloque `<KPICard label="Sin stock" .../>` eliminado.
- Bloque `<KPICard label="Alertas" .../>` eliminado.
## Cosas que NO hice (scope deliberado)
- No toqué el backend `/api/admin/stats` (mantiene `outOfStockVariants`).
- No reemplacé los cards eliminados con otros (campanita cubre el caso).
- No eliminé `outOfStockVariants` del interface `Stats` (cambio de contrato innecesario).
## Próximo stage
**review_gate (reviewer)**: revisión técnica rápida.
**security_gate (security)**: trivially OK (solo UI removal, sin superficie de seguridad).
**qa_gate (qa)**: visual check.