3.2 KiB
3.2 KiB
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
outOfStockVariantsen el interface Stats se mantiene. Aunque ya no se renderiza, sigue siendo parte del contrato con el backend. El endpoint/api/admin/statssigue devolviéndolo (otros consumers pueden usarlo). Eliminarlo del interface sería un cambio de contrato de API innecesario para un chore visual.- 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.
- Backend intacto. No se toca
/api/admin/statsniadmin-stats/api/stats.routes.ts. Si en el futuro nadie consumeoutOfStockVariants, se limpiará en otra iteración.
Evidencia de verificación
1. Typecheck admin
$ cd project/apps/admin && npx tsc --noEmit
(exit 0, sin output)
2. verify.sh del orquestra
$ ./scripts/verify.sh
[OK] backlog válido (367 features)
[OK] runtime-status válido
[OK] Orquestra verificado. Puedes trabajar.
3. Diff resumido
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(mantieneoutOfStockVariants). - No reemplacé los cards eliminados con otros (campanita cubre el caso).
- No eliminé
outOfStockVariantsdel interfaceStats(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.