fix suporte nomes
Signed-off-by: Rodrigo Bertoldo de Sousa Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
1 parent
913df8c907
commit
4a7ddf179e
1 file changed
+17
-59
+17
-59
@@ -6172,6 +6172,8 @@ Digite /help para ver todos os comandos disponíveis!
|
|||||||
dataLength: resultado.data?.dados?.length,
|
dataLength: resultado.data?.dados?.length,
|
||||||
error: resultado.error
|
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,
|
||||||
@@ -6253,67 +6255,30 @@ Digite /help para ver todos os comandos disponíveis!
|
|||||||
if (!session) return;
|
if (!session) return;
|
||||||
|
|
||||||
if (!input) {
|
if (!input) {
|
||||||
// Primeira vez nesta etapa - buscar funcionários ativos
|
// Primeira vez nesta etapa - buscar tipos de atendimento
|
||||||
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 || '';
|
||||||
|
|
||||||
// Buscar técnicos e funcionários em paralelo para comparar
|
// DEBUG: testar todos os candidatos em paralelo
|
||||||
const [resultadoTecnicos, resultadoFuncionarios] = await Promise.all([
|
const [resAtendimento, resCategorias, resOperadores] = await Promise.all([
|
||||||
this.topsapp.obterTecnicos(location),
|
this.topsapp.obterSuporteTiposAtendimento(location),
|
||||||
this.topsapp.obterFuncionarios(location)
|
this.topsapp.obterSuporteCategorias(location),
|
||||||
|
this.topsapp.obterOperadores(location)
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// DEBUG: log comparativo para identificar qual endpoint bate com o sistema
|
console.log('🔍 [DEBUG] ObterSuporteTiposAtendimento:', JSON.stringify(resAtendimento?.data?.dados || resAtendimento?.error));
|
||||||
const rawTecnicos = resultadoTecnicos?.data?.dados || [];
|
console.log('🔍 [DEBUG] ObterSuporteCategorias(location):', JSON.stringify(resCategorias?.data?.dados || resCategorias?.error));
|
||||||
const rawFuncionarios = resultadoFuncionarios?.data?.dados || [];
|
console.log('🔍 [DEBUG] ObterOperadores:', JSON.stringify(resOperadores?.data?.dados || resOperadores?.error));
|
||||||
|
|
||||||
console.log('🔍 [DEBUG] ===== ObterTecnicos =====');
|
// Placeholder: retorna vazio para não quebrar o fluxo
|
||||||
console.log('Total:', rawTecnicos.length);
|
await this.bot.sendMessage(session.chatId, `⚠️ Veja o console para identificar o endpoint correto.`);
|
||||||
rawTecnicos.forEach((t, i) => console.log(` [${i}]`, JSON.stringify(t)));
|
|
||||||
|
|
||||||
console.log('🔍 [DEBUG] ===== ObterFuncionarios =====');
|
|
||||||
console.log('Total:', rawFuncionarios.length);
|
|
||||||
rawFuncionarios.forEach((t, i) => console.log(` [${i}]`, JSON.stringify(t)));
|
|
||||||
|
|
||||||
// Usar a lista que contiver os nomes esperados pelo sistema
|
|
||||||
// A lista de ObterTecnicos tem times/equipes (ex: INSTALAÇÃO-GUARAI),
|
|
||||||
// enquanto ObterFuncionarios tem pessoas (ex: MARCELA SOUSA SOARES).
|
|
||||||
// Se ObterTecnicos retornar nomes individuais, provavelmente é ObterFuncionarios que temos que usar.
|
|
||||||
const resultado = resultadoTecnicos;
|
|
||||||
|
|
||||||
if (!resultado.success) {
|
|
||||||
await this.bot.sendMessage(session.chatId,
|
|
||||||
`❌ **Erro ao buscar técnicos**\n\n` +
|
|
||||||
`⚠️ ${resultado.error}\n\n` +
|
|
||||||
`🔄 Reiniciando processo...`
|
|
||||||
);
|
|
||||||
this.suporteSessions.delete(sessionId);
|
this.suporteSessions.delete(sessionId);
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
const tecnicosRaw = resultado.data?.dados || resultado.dados || [];
|
|
||||||
|
|
||||||
if (tecnicosRaw.length === 0) {
|
|
||||||
await this.bot.sendMessage(session.chatId,
|
|
||||||
`❌ **Nenhum técnico ativo encontrado**\n\n` +
|
|
||||||
`🔄 Reiniciando processo...`
|
|
||||||
);
|
|
||||||
this.suporteSessions.delete(sessionId);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Normalizar campos: a API retorna id_tecnico e tecnico (nome)
|
|
||||||
const tecnicos = tecnicosRaw.map(t => ({
|
|
||||||
id: t.id ?? t.id_tecnico ?? t.codigo ?? null,
|
|
||||||
nome: t.nome || t.tecnico || t.descricao || t.name || `Técnico #${t.id ?? t.id_tecnico}`,
|
|
||||||
email: t.email || null,
|
|
||||||
_raw: t
|
|
||||||
})).filter(t => t.id !== null);
|
|
||||||
|
|
||||||
session.dados.tecnicos = tecnicos;
|
|
||||||
await this.mostrarOpcoesTecnicos(session);
|
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
await this.bot.sendMessage(session.chatId,
|
await this.bot.sendMessage(session.chatId,
|
||||||
@@ -6327,9 +6292,6 @@ Digite /help para ver todos os comandos disponíveis!
|
|||||||
// Usuário selecionou um técnico
|
// Usuário selecionou um técnico
|
||||||
const numero = parseInt(input.trim());
|
const numero = parseInt(input.trim());
|
||||||
|
|
||||||
console.log(`🔍 Técnico - Input do usuário: "${input}", Número convertido: ${numero}`);
|
|
||||||
console.log(`🔍 Técnico - Lista completa de técnicos:`, session.dados.tecnicos);
|
|
||||||
|
|
||||||
if (isNaN(numero) || numero < 1 || numero > session.dados.tecnicos.length) {
|
if (isNaN(numero) || numero < 1 || numero > session.dados.tecnicos.length) {
|
||||||
await this.bot.sendMessage(session.chatId,
|
await this.bot.sendMessage(session.chatId,
|
||||||
`❌ **Número inválido**\n\n` +
|
`❌ **Número inválido**\n\n` +
|
||||||
@@ -6339,8 +6301,6 @@ Digite /help para ver todos os comandos disponíveis!
|
|||||||
}
|
}
|
||||||
|
|
||||||
const tecnicoSelecionado = session.dados.tecnicos[numero - 1];
|
const tecnicoSelecionado = session.dados.tecnicos[numero - 1];
|
||||||
console.log(`🎯 Técnico selecionado - Índice: ${numero - 1}, Dados:`, tecnicoSelecionado);
|
|
||||||
|
|
||||||
session.dados.tecnicoSelecionado = tecnicoSelecionado;
|
session.dados.tecnicoSelecionado = tecnicoSelecionado;
|
||||||
session.etapa = 'definir_data_hora';
|
session.etapa = 'definir_data_hora';
|
||||||
await this.processarEtapaDefinirDataHora(sessionId);
|
await this.processarEtapaDefinirDataHora(sessionId);
|
||||||
@@ -6364,9 +6324,7 @@ Digite /help para ver todos os comandos disponíveis!
|
|||||||
|
|
||||||
const buttons = [];
|
const buttons = [];
|
||||||
session.dados.tecnicos.forEach((tecnico, index) => {
|
session.dados.tecnicos.forEach((tecnico, index) => {
|
||||||
message += `**${index + 1}.** ${tecnico.nome}`;
|
message += `**${index + 1}.** ${tecnico.nome}\n`;
|
||||||
if (tecnico.email) message += ` — ${tecnico.email}`;
|
|
||||||
message += `\n`;
|
|
||||||
buttons.push([{ text: `${index + 1}. ${tecnico.nome}`, callback_data: `suporte_tecnico_${index}` }]);
|
buttons.push([{ text: `${index + 1}. ${tecnico.nome}`, callback_data: `suporte_tecnico_${index}` }]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user