Files
mercadodevida/work/artifacts/F-148/architect.md
2026-08-22 12:58:17 +02:00

1.6 KiB

F-148 — Architect

Feature

Admin: sales dashboard and channel views.

Background

F-146 implementó ReportingService (summary + sales endpoints). F-147 creó la shell admin (filters, KPI grid, dataAvailability). F-148 presenta los datos reales en un dashboard con tendencias, desglose por canal y ranking de tiendas/terminales.

Objetivo

  • Dashboard /reporting/dashboard con:
    • Tendencias de ventas (bar chart por día/semana)
    • Desglose por canal (ecommerce vs POS vs admin)
    • Top tiendas por ventas
    • Top terminales POS
  • Reusar: DateRangePicker de F-147, reporting-client.ts

Diseño

Tendencias (bar chart SVG)

  • Fetch /api/reporting/sales?groupBy=day&pageSize=90 (últimos 90 días)
  • Render barras SVG con altura proporcional al grossSalesCents
  • Tooltip on hover (día + importe)
  • Período configurable (7d / 30d / 90d)

Desglose por canal

  • Fetch con groupBy=channel
  • Mostrar 3 cards: ecommerce / POS / admin
  • Cada una con: importe total, % del total, número de pedidos

Top tiendas

  • Fetch con groupBy=store&pageSize=10
  • Tabla: tienda, pedidos, importe, % del total
  • Solo se muestra si el usuario tiene acceso a múltiples tiendas

Top terminales

  • Fetch con groupBy=terminal&pageSize=10
  • Tabla: terminal, tienda, pedidos, importe

Acceptance Criteria

AC1: Dashboard muestra tendencias con barra SVG. AC2: Desglose por canal muestra ecommerce/POS/admin con %. AC3: Top tiendas con tabla ordenada por importe. AC4: Filtros de rango de fechas y canal (reutiliza DateRangePicker de F-147). AC5: Estados loading/empty/error explícitos. AC6: tsc 0, verify.sh verde.