86 lines
3.2 KiB
Markdown
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. |