iachat/app/javascript/dashboard/api/captain/reports.js
Rodrigo Borba 87bff8126c feat(captain): add AI reports page with insights generation
Implementa a página Relatórios IA com geração de análises semanais
por IA baseadas nas conversas de cada unidade/caixa de entrada.

Funcionalidades:
- Página /settings/captain/reports com dois tabs (Insights IA / Operacional)
- Botão "Gerar Análise" que enfileira job Sidekiq
- Filtro por unidade ou caixa de entrada
- Exibe insights com status (pendente/processando/concluído/falhou)
- Mostra top_topics, ai_failures e period_summary
- Estado vazio com CTA para gerar primeiro relatório

Backend:
- InsightsController com endpoints index/show/generate
- GenerateInsightsJob que processa conversas com LLM
- ConversationInsightService com chunking e merge inteligente
- Migração para adicionar inbox_id à tabela captain_conversation_insights
- Link sidebar "Relatórios IA" em /settings/captain/reports

Frontend:
- Vuex store captainReports com actions/mutations/getters
- API client CaptainReportsAPI (getInsights, generateInsight)
- i18n en e pt_BR para CAPTAIN_REPORTS.*

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 07:05:58 -03:00

27 lines
581 B
JavaScript

/* global axios */
import ApiClient from '../ApiClient';
class CaptainReportsAPI extends ApiClient {
constructor() {
super('captain/reports', { accountScoped: true });
}
getOperational(params = {}) {
return axios.get(`${this.url}/operational`, { params });
}
getInsights(params = {}) {
return axios.get(`${this.url}/insights`, { params });
}
getInsight(id) {
return axios.get(`${this.url}/insights/${id}`);
}
generateInsight(data) {
return axios.post(`${this.url}/insights/generate`, data);
}
}
export default new CaptainReportsAPI();