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>
27 lines
581 B
JavaScript
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();
|