Informes
Base path: /api/reporting
Todos los endpoints de informes requieren autenticación Admin.
GET /reporting/sales-summary
Ingresos totales de todos los pedidos POS.
Response: { "total_sales": 12450.00 }
GET /reporting/booking-count
Número total de citas creadas.
Response: { "booking_count": 384 }
GET /reporting/item-breakdown
Top 10 productos y top 10 servicios por ingresos en POS.
Query parameters: from (fecha), to (fecha)
GET /reporting/staff-performance
Ingresos, citas completadas y valoración media por empleado.
Query parameters: from, to
[
{
"id": 2,
"name": "Lisa",
"revenue": 3200.00,
"booking_count": 48,
"avg_rating": "4.7",
"review_count": 22
}
]
GET /reporting/retention
Análisis de retención de clientes: clientes recurrentes, lista de abandono, frecuencia media de visitas.
Query parameters: from, to, churn_days (por defecto 90)
GET /reporting/heatmap
Número de citas por día de la semana y hora para un mapa de calor de horas punta.
Response: Array de { day, hour, count }. day usa DAYOFWEEK() de MariaDB: 1=Domingo, 2=Lunes, ..., 7=Sábado.
GET /reporting/forecast
Previsión de ingresos basada en citas programadas.
Query parameters: days (por defecto 30)
GET /reporting/promotions
Estadísticas de uso de promociones.
Query parameters: from, to
GET /reporting/gift-cards
Resumen de tarjetas regalo: vendidas/valor y saldo pendiente.
Query parameters: from, to
Filtrado por fecha
Todos los endpoints aceptan from y to en formato AAAA-MM-DD. to se trata como fin del día (23:59:59).