From 670dfed4bc12aa5d55d4a95a4f8d850d1bad24e8 Mon Sep 17 00:00:00 2001 From: "Rodrigo B. de Sousa Martins" Date: Sat, 20 Sep 2025 10:17:51 -0300 Subject: [PATCH] help: fix Signed-off-by: Rodrigo B. de Sousa Martins --- src/bot/handler.js | 334 +++++++++++++++++++++++++++------------------ 1 file changed, 202 insertions(+), 132 deletions(-) diff --git a/src/bot/handler.js b/src/bot/handler.js index 60cf5bc..3e5643f 100644 --- a/src/bot/handler.js +++ b/src/bot/handler.js @@ -293,166 +293,233 @@ Digite /help para ver todos os comandos disponíveis! * Comando /help */ async handleHelp(chatId) { - const helpMessage = `📋 COMANDOS DISPONÍVEIS: + const helpMessage = `🤖 **BOT DE AJUDA TÉCNICA** -🔧 COMANDOS BÁSICOS: -/start - Inicia o bot -/help - Mostra esta ajuda -/equipamentos - Lista equipamentos +🔧 **COMANDOS PRINCIPAIS:** +• /start - Inicia o bot +• /help - Esta ajuda +• /equipamentos - Lista equipamentos -🔐 SSH E CONEXÕES: -/ssh - Conecta via SSH +🏢 **GESTÃO DE CLIENTES:** +• "buscar cliente João Silva" +• "dados cliente 123.456.789-10" +• "ver faturas cliente" +• "abrir suporte" + +📡 **OLT/ONU:** +• "ver sinal DACM91569513" +• "adicionar onu SERIAL" +• "remover onu SERIAL" + +� **JUNIPER:** +• "desconectar cliente USER" +• "listar usuários conectados" + +🔐 **SSH:** • "ssh juniper" • "acessar concentrador" -👥 JUNIPER - GERENCIAR USUÁRIOS: -• "desconectar cliente USUARIO" -• "kick usuário USUARIO" -• "remover cliente USUARIO" -• "listar usuários conectados" +📋 **Para ver comandos detalhados, use:**`; -📡 OLT - VERIFICAR SINAL DE ONU: + const keyboard = [ + [ + { text: '🏢 TopSapp', callback_data: 'help_topsapp' }, + { text: '� OLT/ONU', callback_data: 'help_olt' } + ], + [ + { text: '👥 Juniper', callback_data: 'help_juniper' }, + { text: '🔐 SSH', callback_data: 'help_ssh' } + ], + [ + { text: '🎫 Suporte', callback_data: 'help_suporte' }, + { text: '🛡️ Admin', callback_data: 'help_admin' } + ] + ]; + + await this.bot.sendMessage(chatId, helpMessage, { + parse_mode: 'Markdown', + reply_markup: { + inline_keyboard: keyboard + } + }); + } + + /** + * Handler para callbacks de help detalhado + */ + async handleHelpDetailCallback(callbackQuery, data) { + const chatId = callbackQuery.message.chat.id; + const helpType = data.replace('help_', ''); + + await this.bot.answerCallbackQuery(callbackQuery.id); + + let helpMessage = ''; + let backButton = { text: '⬅️ Voltar', callback_data: 'help_main' }; + + switch (helpType) { + case 'main': + await this.handleHelp(chatId); + return; + + case 'topsapp': + helpMessage = `🏢 **TOPSAPP - GESTÃO DE CLIENTES** + +**🔍 BUSCAR CLIENTES:** +• "buscar cliente João Silva" +• "buscar cliente 123.456.789-10" +• "buscar cliente Guarai João" + +**📋 DADOS CADASTRAIS:** +• "dados cliente João Silva" +• "dados cadastrais 123.456.789-10" + +**📄 FATURAS:** +• "ver faturas 123.456.789-10" +• "gerar boleto fatura123" + +**⚙️ SERVIÇOS:** +• "listar serviços 123.456.789-10" + +**🔒 BLOQUEIO/LIBERAÇÃO:** +• "bloquear 123.456.789-10" +• "liberar 123.456.789-10" + +**📊 STATUS:** +• "status topsapp"`; + break; + + case 'olt': + helpMessage = `📡 **OLT/ONU - COMANDOS** + +**📶 VERIFICAR SINAL:** • "ver sinal DACM91569513" • "verificar sinal ABCD12345678" • "sinal SERIAL_NUMBER" -• Suporte para OLT Fiberhome + OLTs Datacom -• Interface unificada para todas as OLTs -➕ OLT - ADICIONAR ONU: +**➕ ADICIONAR ONU:** • "adicionar onu DACM91569513" • "cadastrar ABCD12345678" • "add onu SERIAL_NUMBER" -🗑️ OLT - REMOVER ONU: +**🗑️ REMOVER ONU:** • "remover onu DACM91569513" • "deletar ABCD12345678" • "remover SERIAL_NUMBER" -🔄 OLT - REINICIAR ONU: -• Após verificar o sinal, use o botão "🔌 Reiniciar ONU" -• Comando confirma antes de reiniciar -• Processo automático com confirmação +**🔄 REINICIAR ONU:** +• Após verificar sinal, use botão "🔌 Reiniciar ONU" -⬆️ OLT - ATUALIZAR FIRMWARE ONU: -• Após verificar o sinal, use o botão "⬆️ Atualizar ONU" -• Detecta automaticamente o modelo (DM986-100/DM986-414) -• Oferece opções de firmware específicas para cada modelo -• Processo seguro com confirmação +**⬆️ ATUALIZAR FIRMWARE:** +• Após verificar sinal, use botão "⬆️ Atualizar ONU" -🏢 TOPSAPP - GESTÃO DE CLIENTES: -• "buscar cliente João da Silva" -• "buscar cliente 123.456.789-10" -• "buscar cliente Guarai João" -• "dados cliente João Silva" (dados cadastrais completos) -• "dados cadastrais 123.456.789-10" -• "ver faturas 123.456.789-10" -• "listar serviços 123.456.789-10" -• "gerar boleto fatura123" -• "bloquear 123.456.789-10" -• "liberar 123.456.789-10" -• "status topsapp" - -🎫 TOPSAPP - ABERTURA DE SUPORTE: -• "abrir suporte" -• "criar suporte para João Silva" -• "novo chamado" -• "suporte cliente 123.456.789-10" - -🔄 PROCESSO INTERATIVO DE SUPORTE: -1️⃣ Busca do cliente (nome ou CPF) -2️⃣ Seleção do serviço -3️⃣ Escolha da categoria do problema -4️⃣ Seleção do técnico responsável -5️⃣ Agendamento de data/hora para visita -6️⃣ Descrição detalhada do problema -7️⃣ Confirmação e criação do protocolo - -📅 EXEMPLOS DE DATA/HORA: -• "amanhã às 14h" -• "sexta-feira 09:00" -• "15/08 às 16h30" -• "hoje 18h" -• "em 3 dias às 10h" -• "segunda-feira 08:30" - -📋 DADOS CADASTRAIS COMPLETOS: -• Informações pessoais do cliente -• CPF, telefone, endereço completo -• Status atual do cliente (ativo/inativo) -• Dados de todos os serviços contratados -• Login, senha, IP fixo (quando aplicável) -• Plano contratado, valor mensalidade -• Dia de vencimento, status do serviço -• Dados FTTH: OLT, PON, VLAN, Serial ONU -• Modelo da ONU e níveis de sinal RX/TX - -🔍 BUSCA INTELIGENTE: -• Busca por nome (com ou sem acentos) -• Busca por CPF (formatado ou não) -• Busca por ID do cliente -• Múltiplos resultados com seleção -• Interface com botões para ações rápidas - -🔧 SERVIÇOS INDIVIDUAIS: -• Use "listar serviços CLIENTE" para ver todos os serviços -• Clique nos botões para bloquear/liberar serviços específicos -• Controle granular por serviço do cliente - -📊 STATUS E MONITORAMENTO: -/status - Verifica status -• "verificar concentrador" -• "status do juniper" - -🗣️ LINGUAGEM NATURAL: -• "Conectar no concentrador" -• "Desconectar cliente joao123" -• "Ver sinal DACM91569513" -• "Adicionar onu DACM91569513" -• "Remover onu DACM91569513" -• "Listar usuários conectados" -• "Reiniciar juniper" -• "Ping 131.0.192.254" -• "Buscar cliente João da Silva" -• "Ver faturas do CPF 123.456.789-10" - -✅ EXEMPLOS PRÁTICOS: -• "desconectar cliente user123" -• "ver sinal DACM91569513" -• "adicionar onu DACM91569513" -• "remover onu DACM91569513" -• "buscar cliente João Pedro Afonso" -• "ver faturas cliente 123.456.789-10" -• "gerar boleto fatura456" -• "bloquear cliente 789" -• "listar clientes conectados" -• "verificar status concentrador" - -🏢 OLTs DISPONÍVEIS: -• OLT FIBERHOME (131.0.192.9) - Via TL1 +**🏢 OLTs DISPONÍVEIS:** +• OLT FIBERHOME (131.0.192.9) • OLT DITO (192.168.190.7) • OLT COLMEIA (192.168.190.8) • OLT CANAA (192.168.190.9) • OLT CANAA 2 (192.168.190.10) • OLT PEDRO AFONSO 1 (192.168.100.2) -• OLT CANAVIEIRAS (192.168.100.4) +• OLT CANAVIEIRAS (192.168.100.4)`; + break; -🛡️ COMANDOS ADMINISTRATIVOS: -• "admin" - Painel administrativo -• "usuarios autorizados" - Ver usuários com acesso -• "meu id" - Ver seu ID do Telegram + case 'juniper': + helpMessage = `👥 **JUNIPER - GERENCIAR USUÁRIOS** -🔶 FIBERHOME - COMANDOS ESPECÍFICOS: -• "status onu FHTT12345678" - Status detalhado de ONU específica -• "verificar onu FHTT12345678" - Verificar ONU por serial -• "onu status DeviceName" - Status por nome do dispositivo -• "fiberhome status" - Status das conexões Fiberhome -• Use "ver sinal" para interface unificada +**🚫 DESCONECTAR:** +• "desconectar cliente USUARIO" +• "kick usuário USUARIO" +• "remover cliente USUARIO" -🔒 **SEGURANÇA:** -🛡️ Bot restrito a usuários autorizados -🆔 Para solicitar acesso, forneça seu ID`; - - await this.bot.sendMessage(chatId, helpMessage); +**📊 LISTAR:** +• "listar usuários conectados" + +**🔧 STATUS:** +• "verificar concentrador" +• "status do juniper" + +**🌐 PING:** +• "ping 131.0.192.254" + +**🔄 REINICIAR:** +• "reiniciar juniper"`; + break; + + case 'ssh': + helpMessage = `🔐 **SSH E CONEXÕES** + +**📡 CONECTAR:** +• /ssh +• "ssh juniper" +• "acessar concentrador" + +**📋 LISTAR:** +• /equipamentos + +**🔧 EXEMPLOS:** +• "conectar no concentrador" +• "acessar juniper" +• "ssh olt"`; + break; + + case 'suporte': + helpMessage = `🎫 **SISTEMA DE SUPORTE** + +**🆕 ABRIR SUPORTE:** +• "abrir suporte" +• "criar suporte para João Silva" +• "novo chamado" +• "suporte cliente 123.456.789-10" + +**🔄 PROCESSO INTERATIVO:** +1️⃣ Busca do cliente (nome ou CPF) +2️⃣ Seleção do serviço +3️⃣ Escolha da categoria do problema +4️⃣ Seleção do técnico responsável +5️⃣ Agendamento de data/hora +6️⃣ Descrição detalhada +7️⃣ Confirmação e protocolo + +**📅 EXEMPLOS DE DATA/HORA:** +• "amanhã às 14h" +• "sexta-feira 09:00" +• "15/08 às 16h30" +• "hoje 18h" +• "em 3 dias às 10h" +• "segunda-feira 08:30"`; + break; + + case 'admin': + helpMessage = `🛡️ **COMANDOS ADMINISTRATIVOS** + +**👥 USUÁRIOS:** +• "admin" +• "usuarios autorizados" +• "meu id" + +**📊 STATUS:** +• "fiberhome status" +• "status topsapp" + +**🔧 FIBERHOME ESPECÍFICOS:** +• "status onu FHTT12345678" +• "verificar onu FHTT12345678" +• "onu status DeviceName" + +**🔒 SEGURANÇA:** +• Bot restrito a usuários autorizados +• Para solicitar acesso, forneça seu ID`; + break; + + default: + helpMessage = '❌ Seção de ajuda não encontrada.'; + } + + await this.bot.sendMessage(chatId, helpMessage, { + parse_mode: 'Markdown', + reply_markup: { + inline_keyboard: [[backButton]] + } + }); } /** @@ -1047,6 +1114,9 @@ Digite /help para ver todos os comandos disponíveis! } else if (data.startsWith('servicos_cliente_')) { console.log(`🔍 Condição servicos_cliente_ atendida`); await this.handleServicosClienteCallback(callbackQuery, data); + } else if (data.startsWith('help_')) { + console.log(`🔍 Condição help_ atendida`); + await this.handleHelpDetailCallback(callbackQuery, data); } else if (data === 'separator') { // Ignorar clique no separador visual await this.bot.answerCallbackQuery(callbackQuery.id);