Implementar servico de analytics agregado para metricas de performance do bot, incluindo conversas, mensagens, clientes, handoffs, NPS, lead scoring, tempo de resposta e produtos mais mencionados. Expor via endpoints REST protegidos.
ACCEPTANCE CRITERIA (18/18)
☑ AnalyticsService criado com interface BotAnalytics completa
☑ getAnalytics(from, to) agrega todas as metricas em paralelo (Promise.all)
☑ getDailySummary (ultimas 24h) e getWeeklySummary (ultimos 7 dias)
☑ Metricas de conversas: total, active, completed, waitingHuman
☑ Metricas de mensagens: inbound, outbound, media por conversa
☑ Metricas de clientes: novos, retornantes, ativos
☑ Metricas de handoff: total e taxa (percentual)
☑ Metricas de NPS: media, score NPS, total respostas
☑ Metricas de lead scoring: hot, warm, cold
☑ Tempo medio de primeira resposta (ms)
☑ Top 10 produtos mais mencionados nas mensagens inbound
☑ GET /api/analytics/daily (protegido por X-Cron-Token)
☑ GET /api/analytics/weekly (protegido por X-Cron-Token)
☑ GET /api/analytics/custom?from=YYYY-MM-DD&to=YYYY-MM-DD (protegido)
☑ Validacao de parametros from/to no endpoint custom
☑ Migration 017 cria views: v_conversation_stats, v_message_volume, v_handoff_daily, v_nps_daily
☑ Todos os endpoints registrados em index.ts
☑ Compilacao TypeScript limpa (npx tsc --noEmit)
ARQUIVOS (4)
src/services/analytics.service.ts Created
src/handlers/analytics.handler.ts Created
src/migrations/017_create_handoff_locks_and_analytics_views.sql Created (shared with Story 3.4)
src/index.ts Modified (new endpoint registration)