# F-142 — Implementer evidence ## Entrega Se completó la fase obligatoria de discovery antes de crear componentes o endpoints: - `docs/reporting/REPORTING_ARCHITECTURE.md` - `docs/reporting/REPORTING_TASKS.md` También se abrieron los tickets P0 iniciales en el backlog mediante `scripts/new_ticket.py`: - F-143 — contracts, filters and RBAC - F-144 — historical store and financial snapshots - F-145 — payment lines and POS cash-safe capture - F-146 — ReportingService, summary and sales API - F-147 — Admin reporting shell and global filters - F-148 — sales dashboard and channel views - F-149 — product/category/brand reports - F-150 — CSV export ## Hallazgos principales - La fuente única actual es `orders_orders` + `orders_items`, pero las ventas todavía no tienen `store_id` directo. - TPV ya distingue `source`, `terminal_id` y `cash_session_id`, aunque el flujo POS completo todavía está en tickets POS posteriores. - Pagos actuales son eventos de proveedor y no contienen método de pago ni líneas para pagos mixtos. - No existe un modelo de devoluciones detallado ni movimientos de caja inmutables. - `orders_items` conserva precio/descuento/impuesto, pero no `vat_rate` ni `cost_at_sale`; por tanto IVA por tipo y margen se marcan como no disponibles. - El total de pedido no separa portes, por lo que la API futura debe distinguir total cobrado de ventas de mercancía. - Categoría/marca actuales no son snapshots históricos. ## Scope deliberadamente excluido No se implementaron endpoints, tablas reporting paralelas, dashboards, datos mock, cálculos financieros frontend ni caché prematura. La implementación comienza en F-143/F-144/F-145 y respeta el orden de dependencias documentado. ## Verificación ```text ./scripts/verify.sh ✅ backlog válido (264) ✅ una sola feature activa (F-142) ✅ ```