# Integración de Analytics y Exportación ## Resumen Esta fase (5.3) implementa el sistema de métricas de usuarios y exportación de datos para la App Padel. ## Archivos Creados ### Servicios - `src/services/analytics/userAnalytics.service.ts` - Métricas y análisis de usuarios - `src/services/analytics/export.service.ts` - Exportación de datos - `src/services/analytics/index.ts` - Exportaciones ### Controladores - `src/controllers/analytics/userAnalytics.controller.ts` - Controladores de métricas - `src/controllers/analytics/export.controller.ts` - Controladores de exportación - `src/controllers/analytics/index.ts` - Exportaciones ### Rutas - `src/routes/analytics.routes.ts` - Definición de rutas ### Utilidades - `src/utils/export.ts` - Funciones utilitarias para exportación ### Tipos - `src/types/analytics.types.ts` - Definiciones de TypeScript ### Constantes - `src/constants/export.constants.ts` - Enumeraciones y constantes ## Instalación de Dependencias ```bash npm install xlsx ``` ## Integración en App Principal ```typescript import express from 'express'; import analyticsRoutes from './routes/analytics.routes'; const app = express(); // ... otras rutas ... // Rutas de analytics (proteger con middleware de admin) app.use('/analytics', authenticate, requireAdmin, analyticsRoutes); ``` ## Endpoints Disponibles ### Usuarios - `GET /analytics/users/overview` - Estadísticas generales - `GET /analytics/users/activity?startDate=2024-01-01&endDate=2024-01-31` - Actividad - `GET /analytics/users/top-players?limit=10&by=matches` - Top jugadores - `GET /analytics/users/churn-risk` - Usuarios en riesgo - `GET /analytics/users/retention?startDate=2024-01-01&endDate=2024-06-30` - Retención - `GET /analytics/users/growth?months=6` - Crecimiento ### Exportación - `GET /analytics/exports/bookings?startDate=2024-01-01&endDate=2024-01-31&format=csv` - Reservas - `GET /analytics/exports/users?format=csv&level=3.5` - Usuarios - `GET /analytics/exports/payments?startDate=2024-01-01&endDate=2024-01-31` - Pagos - `GET /analytics/exports/tournaments/:id?format=csv` - Resultados de torneo - `GET /analytics/exports/excel-report?startDate=2024-01-01&endDate=2024-01-31` - Reporte Excel ## Formatos de Exportación - `csv` - Archivo CSV separado por punto y coma (optimizado para Excel español) - `json` - Archivo JSON formateado - `excel` - Archivo Excel (.xlsx) con múltiples hojas ## Notas - Todos los endpoints requieren autenticación de administrador - Las fechas deben estar en formato ISO 8601 - Las exportaciones CSV usan punto y coma (;) como separador - Para grandes volúmenes de datos, considerar implementar paginación o streaming