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
+15 -19

No files matched your search

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