# Indice de Requerimientos - MGN-009 Reports

**Modulo:** MGN-009
**Nombre:** Reportes y Dashboards
**Fase:** 02 - Core Business
**Total RF:** 4
**Ultima actualizacion:** 2025-12-05

---

## Resumen

Este modulo proporciona capacidades completas de reporteria, incluyendo reportes predefinidos, dashboards interactivos, constructor de reportes personalizados, y programacion de reportes automaticos.

---

## Lista de Requerimientos

| ID | Titulo | Prioridad | Estado | SP |
|----|--------|-----------|--------|---:|
| [RF-REPORT-001](./RF-REPORT-001.md) | Reportes Predefinidos | P0 | Draft | 10 |
| [RF-REPORT-002](./RF-REPORT-002.md) | Dashboards | P0 | Draft | 13 |
| [RF-REPORT-003](./RF-REPORT-003.md) | Report Builder | P1 | Draft | 8 |
| [RF-REPORT-004](./RF-REPORT-004.md) | Reportes Programados | P1 | Draft | 5 |

**Total Story Points:** 35 SP (estimado en _MAP.md)

---

## Dependencias

### Depende de:
- **MGN-001 Auth:** Para autenticacion y permisos
- **MGN-004 Tenants:** Para aislamiento multi-tenant
- **MGN-008 Notifications:** Para envio de reportes programados

### Requerido por:
- **Verticales:** Extienden con reportes especificos

---

## Entidades Principales

| Entidad | Descripcion |
|---------|-------------|
| ReportDefinition | Definicion de reporte |
| Dashboard | Dashboard de usuario/tenant |
| Widget | Widget dentro de dashboard |
| CustomReport | Reporte creado en builder |
| ScheduledReport | Programacion de reporte |
| ReportExecution | Ejecucion de reporte |

---

## Endpoints Principales

| Metodo | Endpoint | RF |
|--------|----------|-------|
| GET | /api/v1/reports | RF-REPORT-001 |
| POST | /api/v1/reports/:code/execute | RF-REPORT-001 |
| POST | /api/v1/reports/:code/export | RF-REPORT-001 |
| GET | /api/v1/dashboards | RF-REPORT-002 |
| POST | /api/v1/dashboards/:id/widgets | RF-REPORT-002 |
| GET | /api/v1/reports/builder/model | RF-REPORT-003 |
| POST | /api/v1/reports/custom | RF-REPORT-003 |
| GET | /api/v1/reports/schedules | RF-REPORT-004 |
| POST | /api/v1/reports/schedules | RF-REPORT-004 |

---

## Formatos de Exportacion

| Formato | Extension | Libreria Sugerida |
|---------|-----------|-------------------|
| PDF | .pdf | puppeteer, pdfkit |
| Excel | .xlsx | exceljs |
| CSV | .csv | Native |
| JSON | .json | Native |

---

## Notas de Implementacion

1. **Cache:** Resultados frecuentes se cachean
2. **Async:** Reportes grandes son asincronos
3. **Queue:** Jobs de exportacion via Bull/BullMQ
4. **Charts:** Usar Chart.js o ECharts en frontend
5. **RLS:** Queries siempre filtran por tenant

---

**Generado por:** Requirements-Analyst
**Fecha:** 2025-12-05
