diff --git a/src/bot/handler.js b/src/bot/handler.js index 676f67e..ba16498 100644 --- a/src/bot/handler.js +++ b/src/bot/handler.js @@ -6473,6 +6473,7 @@ Digite /help para ver todos os comandos disponíveis! try { const dados = session.dados; + const location = dados.location || ''; const dadosSuporte = { idCliente: dados.clienteSelecionado.id, idServico: dados.servicoSelecionado.id, @@ -6480,12 +6481,6 @@ Digite /help para ver todos os comandos disponíveis! descricao: `${dados.descricao}\n\nData/Hora agendada: ${this.dateProcessor.formatarData(dados.dataHora)}\nTécnico: ${dados.tecnicoSelecionado.nome}` }; - // Adicionar campos opcionais se existirem - const idTecnico = dados.tecnicoSelecionado?.id; - if (idTecnico) { - dadosSuporte.idAtendimento = parseInt(idTecnico, 10); - } - if (dados.clienteSelecionado?.nome) { dadosSuporte.contato = dados.clienteSelecionado.nome; } @@ -6496,16 +6491,28 @@ Digite /help para ver todos os comandos disponíveis! dadosSuporte.outrasInformacoes = `Criado via Bot Telegram\nData original: ${dados.dataHoraTexto}`; - console.log('🎫 Dados finais para criação do suporte:', dadosSuporte); - - const resultado = await this.topsapp.adicionarSuporte(dadosSuporte); + const resultado = await this.topsapp.adicionarSuporte(dadosSuporte, location); if (resultado.success) { - const protocolo = resultado.data?.protocolo || 'N/A'; + const protocolo = resultado.data?.dados?.protocolo || resultado.data?.protocolo; + + // Encaminhar para o técnico selecionado + const idTecnico = dados.tecnicoSelecionado?.id; + if (protocolo && idTecnico) { + const resEnc = await this.topsapp.encaminharSuporte( + protocolo, + idTecnico, + `Técnico atribuído via Bot Telegram: ${dados.tecnicoSelecionado.nome}`, + location + ); + if (!resEnc.success) { + logger.warn('Suporte criado mas falha ao encaminhar técnico:', resEnc.error); + } + } await this.bot.sendMessage(session.chatId, `✅ **Suporte criado com sucesso!**\n\n` + - `🎫 **Protocolo:** ${protocolo}\n` + + `🎫 **Protocolo:** ${protocolo || 'N/A'}\n` + `👤 **Cliente:** ${dados.clienteSelecionado.nome}\n` + `📋 **Serviço:** ${dados.servicoSelecionado.descricao || dados.servicoSelecionado.plano}\n` + `📁 **Categoria:** ${dados.categoriaSelecionada.descricao}\n` + diff --git a/src/topsapp/api.js b/src/topsapp/api.js index ea00372..2a9d9fb 100644 --- a/src/topsapp/api.js +++ b/src/topsapp/api.js @@ -822,7 +822,6 @@ class TopSappAPI { // Tentativa 1: com idAtendimento const result = await this.makeRequest('AdicionarSuporte', dados, instance, credentials); - console.log('🎫 API - Resultado tentativa 1 (com idAtendimento):', JSON.stringify(result?.data || result?.error)); if (result.success) { console.log('✅ API - Suporte criado com sucesso:', result); return result; @@ -841,6 +840,21 @@ class TopSappAPI { return result; } + /** + * Encaminhar suporte para um técnico + */ + async encaminharSuporte(idSuporte, idTecnico, descricao, location = '', credentials) { + const instance = this.getInstanceByLocation(location); + const session = await this.getValidSession(instance, credentials); + + return await this.makeRequest('EncaminharSuporte', { + idUsuario: session.idUsuario || 1, + idSuporte: parseInt(idSuporte, 10), + idTecnico: parseInt(idTecnico, 10), + descricao + }, instance, credentials); + } + /** * Obter suportes abertos de um cliente */ diff --git a/src/topsapp/manager.js b/src/topsapp/manager.js index c05a753..dcc5f46 100644 --- a/src/topsapp/manager.js +++ b/src/topsapp/manager.js @@ -1053,6 +1053,22 @@ class TopSappManager { } } + /** + * Encaminhar suporte para um técnico + */ + async encaminharSuporte(idSuporte, idTecnico, descricao, location = '') { + if (!this.isReady()) { + return { success: false, error: 'TopSapp não está configurado' }; + } + + try { + const credentials = this.config.getCredentialsByLocation(location); + return await this.api.encaminharSuporte(idSuporte, idTecnico, descricao, location, credentials); + } catch (error) { + return { success: false, error: error.message }; + } + } + /** * Obter instâncias disponíveis */