fix usuarios de suporte

Signed-off-by: Rodrigo Bertoldo de Sousa Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
rodrigo committed 2026-04-01 17:37:21 -03:00
1 parent 4a7ddf179e
commit e2449c9f3c
1 file changed
+38 -27
+38 -27
View File
@@ -6166,15 +6166,6 @@ Digite /help para ver todos os comandos disponíveis!
try { try {
const resultado = await this.topsapp.obterSuporteCategorias(); const resultado = await this.topsapp.obterSuporteCategorias();
console.log(`🔍 Handler - Resultado categorias:`, {
success: resultado.success,
dataType: typeof resultado.data,
dataLength: resultado.data?.dados?.length,
error: resultado.error
});
console.log(`🔍 [DEBUG] Itens de categorias:`);
(resultado.data?.dados || []).forEach((c, i) => console.log(` [${i}]`, JSON.stringify(c)));
if (!resultado.success) { if (!resultado.success) {
await this.bot.sendMessage(session.chatId, await this.bot.sendMessage(session.chatId,
`❌ **Erro ao buscar categorias**\n\n` + `❌ **Erro ao buscar categorias**\n\n` +
@@ -6255,34 +6246,54 @@ 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 equipes/técnicos via operadores
await this.bot.sendMessage(session.chatId, `🔍 Buscando técnicos disponíveis...`); await this.bot.sendMessage(session.chatId, `🔍 Buscando técnicos disponíveis...`);
// DEBUG: ver categorias já carregadas na sessão
console.log('🔍 [DEBUG] Categorias na sessão:', JSON.stringify(session.dados.categorias));
try { try {
const location = session.dados.location || ''; const location = session.dados.location || '';
// DEBUG: testar todos os candidatos em paralelo // ObterOperadores traz o campo id_tecnico/tecnico que mapeia as equipes cadastradas
const [resAtendimento, resCategorias, resOperadores] = await Promise.all([ const resultado = await this.topsapp.obterOperadores(location);
this.topsapp.obterSuporteTiposAtendimento(location),
this.topsapp.obterSuporteCategorias(location),
this.topsapp.obterOperadores(location)
]);
console.log('🔍 [DEBUG] ObterSuporteTiposAtendimento:', JSON.stringify(resAtendimento?.data?.dados || resAtendimento?.error)); if (!resultado.success) {
console.log('🔍 [DEBUG] ObterSuporteCategorias(location):', JSON.stringify(resCategorias?.data?.dados || resCategorias?.error)); await this.bot.sendMessage(session.chatId,
console.log('🔍 [DEBUG] ObterOperadores:', JSON.stringify(resOperadores?.data?.dados || resOperadores?.error)); `❌ **Erro ao buscar técnicos**\n\n` +
`⚠️ ${resultado.error}\n\n` +
`🔄 Reiniciando processo...`
);
this.suporteSessions.delete(sessionId);
return;
}
// Placeholder: retorna vazio para não quebrar o fluxo const operadores = resultado.data?.dados || [];
await this.bot.sendMessage(session.chatId, `⚠️ Veja o console para identificar o endpoint correto.`);
this.suporteSessions.delete(sessionId); // Extrair técnicos únicos pelo id_tecnico (cada operador aponta para uma equipe)
return; const tecnicosMap = new Map();
operadores.forEach(op => {
if (op.id_tecnico > 0 && op.tecnico && op.tecnico.trim() !== '') {
if (!tecnicosMap.has(op.id_tecnico)) {
tecnicosMap.set(op.id_tecnico, { id: op.id_tecnico, nome: op.tecnico });
}
}
});
const tecnicos = Array.from(tecnicosMap.values()).sort((a, b) => a.nome.localeCompare(b.nome));
if (tecnicos.length === 0) {
await this.bot.sendMessage(session.chatId,
`❌ **Nenhum técnico encontrado**\n\n` +
`🔄 Reiniciando processo...`
);
this.suporteSessions.delete(sessionId);
return;
}
session.dados.tecnicos = tecnicos;
await this.mostrarOpcoesTecnicos(session);
} catch (error) { } catch (error) {
await this.bot.sendMessage(session.chatId, await this.bot.sendMessage(session.chatId,
`❌ **Erro ao buscar tipos de atendimento**\n\n` + `❌ **Erro ao buscar técnicos**\n\n` +
`⚠️ ${error.message}\n\n` + `⚠️ ${error.message}\n\n` +
`🔄 Reiniciando processo...` `🔄 Reiniciando processo...`
); );