suporte: fix técnicos

Signed-off-by: Rodrigo Bertoldo de Sousa Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
rodrigo committed 2026-03-29 17:04:20 -03:00
1 parent 384d04f383
commit 5193b2df08
2 files changed
+24 -28

No files matched your search

+22 -27
View File
@@ -5685,39 +5685,34 @@ Digite /help para ver todos os comandos disponíveis!
if (!session) return; if (!session) return;
if (!input) { if (!input) {
// Primeira vez nesta etapa - buscar tipos de atendimento // Primeira vez nesta etapa - buscar funcionários ativos
await this.bot.sendMessage(session.chatId, `🔍 Buscando tipos de atendimento disponíveis...`); await this.bot.sendMessage(session.chatId, `🔍 Buscando técnicos disponíveis...`);
try { try {
// Usar tipos de atendimento ao invés de técnicos const resultado = await this.topsapp.obterFuncionarios();
let resultado = await this.topsapp.obterSuporteTiposAtendimento();
if (!resultado.success || !resultado.data?.dados || resultado.data.dados.length === 0) { if (!resultado.success) {
// Fallback para técnicos se tipos de atendimento não funcionarem
console.log('🔄 Fallback para técnicos...');
resultado = await this.topsapp.obterTecnicos();
if (!resultado.success) {
await this.bot.sendMessage(session.chatId,
`❌ **Erro ao buscar tipos de atendimento**\n\n` +
`⚠️ ${resultado.error}\n\n` +
`🔄 Reiniciando processo...`
);
this.suporteSessions.delete(sessionId);
return;
}
}
if (!resultado.data?.dados || resultado.data.dados.length === 0) {
await this.bot.sendMessage(session.chatId, await this.bot.sendMessage(session.chatId,
`❌ **Nenhum tipo de atendimento encontrado**\n\n` + `❌ **Erro ao buscar técnicos**\n\n` +
`⚠️ ${resultado.error}\n\n` +
`🔄 Reiniciando processo...` `🔄 Reiniciando processo...`
); );
this.suporteSessions.delete(sessionId); this.suporteSessions.delete(sessionId);
return; return;
} }
session.dados.tecnicos = resultado.data.dados; const tecnicos = resultado.data?.dados || resultado.dados || [];
if (tecnicos.length === 0) {
await this.bot.sendMessage(session.chatId,
`❌ **Nenhum técnico ativo encontrado**\n\n` +
`🔄 Reiniciando processo...`
);
this.suporteSessions.delete(sessionId);
return;
}
session.dados.tecnicos = tecnicos;
await this.mostrarOpcoesTecnicos(session); await this.mostrarOpcoesTecnicos(session);
} catch (error) { } catch (error) {
@@ -5756,7 +5751,7 @@ Digite /help para ver todos os comandos disponíveis!
* Mostrar opções de técnicos/tipos de atendimento * Mostrar opções de técnicos/tipos de atendimento
*/ */
async mostrarOpcoesTecnicos(session) { async mostrarOpcoesTecnicos(session) {
let message = `👨‍🔧 **Tipos de atendimento disponíveis:**\n\n`; let message = `👨‍🔧 **Técnicos disponíveis:**\n\n`;
// Validar se técnicos é um array // Validar se técnicos é um array
if (!Array.isArray(session.dados.tecnicos)) { if (!Array.isArray(session.dados.tecnicos)) {
@@ -5764,18 +5759,18 @@ Digite /help para ver todos os comandos disponíveis!
type: typeof session.dados.tecnicos, type: typeof session.dados.tecnicos,
value: session.dados.tecnicos value: session.dados.tecnicos
}); });
throw new Error(`Dados de tipos de atendimento inválidos: ${typeof session.dados.tecnicos}`); throw new Error(`Dados de técnicos inválidos: ${typeof session.dados.tecnicos}`);
} }
session.dados.tecnicos.forEach((tecnico, index) => { session.dados.tecnicos.forEach((tecnico, index) => {
// Mostrar nome ou descrição do tipo de atendimento // Mostrar nome do técnico
const nome = tecnico.nome || tecnico.descricao || tecnico.tipo || tecnico.tecnico; const nome = tecnico.nome || tecnico.descricao || tecnico.tipo || tecnico.tecnico;
message += `**${index + 1}.** ${nome}\n`; message += `**${index + 1}.** ${nome}\n`;
if (tecnico.email) message += ` 📧 ${tecnico.email}\n`; if (tecnico.email) message += ` 📧 ${tecnico.email}\n`;
message += `\n`; message += `\n`;
}); });
message += `Digite o **número** do tipo de atendimento (1-${session.dados.tecnicos.length}):`; message += `Digite o **número** do técnico (1-${session.dados.tecnicos.length}):`;
await this.bot.sendMessage(session.chatId, message, { parse_mode: 'Markdown' }); await this.bot.sendMessage(session.chatId, message, { parse_mode: 'Markdown' });
} }
+2 -1
View File
@@ -744,7 +744,8 @@ class TopSappAPI {
const session = await this.getValidSession(instance, credentials); const session = await this.getValidSession(instance, credentials);
return await this.makeRequest('ObterFuncionarios', { return await this.makeRequest('ObterFuncionarios', {
idUsuario: session.idUsuario || 1 idUsuario: session.idUsuario || 1,
desativado: false
}, instance, credentials); }, instance, credentials);
} }