const fetch = require('node-fetch');

const TOKEN = '@@EQTL2025';
const BASE_URL = 'http://localhost:3000';

async function verificarStatus() {
  try {
    const response = await fetch(`${BASE_URL}/status`);
    const data = await response.json();
    return data;
  } catch (error) {
    return { error: error.message };
  }
}

async function listarGrupos() {
  try {
    const response = await fetch(`${BASE_URL}/groups`, {
      headers: {
        'Authorization': `Bearer ${TOKEN}`
      }
    });
    const data = await response.json();
    return data;
  } catch (error) {
    return { error: error.message };
  }
}

async function monitorarConexao() {
  console.log('🔍 Monitorando conexão WhatsApp...');
  console.log('📲 Escaneie o QR code no terminal ou acesse: http://localhost:3000/qr');
  console.log('⏳ Aguardando conexão...\n');
  
  let tentativas = 0;
  const maxTentativas = 60; // 5 minutos
  
  const intervalo = setInterval(async () => {
    tentativas++;
    
    const status = await verificarStatus();
    
    if (status.error) {
      console.log(`❌ Erro na tentativa ${tentativas}: ${status.error}`);
      return;
    }
    
    const tempo = new Date().toLocaleTimeString();
    
    if (status.whatsappConectado) {
      console.log(`✅ ${tempo} - WhatsApp CONECTADO!`);
      
      if (status.totalGrupos > 0) {
        console.log(`📋 ${status.totalGrupos} grupos encontrados!`);
        
        // Lista os grupos
        const grupos = await listarGrupos();
        if (grupos.success) {
          console.log('\n📱 Grupos disponíveis:');
          grupos.grupos.forEach((grupo, i) => {
            console.log(`${i + 1}. ${grupo.nome} (${grupo.participantes} participantes)`);
          });
        }
        
        console.log('\n🎉 Bot pronto para usar!');
        console.log('💡 Teste com: POST /send-message');
        clearInterval(intervalo);
        return;
      } else {
        console.log(`⏳ ${tempo} - Conectado, mas aguardando grupos... (${status.totalGrupos} grupos)`);
      }
    } else {
      console.log(`⏳ ${tempo} - Aguardando conexão... (tentativa ${tentativas}/${maxTentativas})`);
    }
    
    if (tentativas >= maxTentativas) {
      console.log('\n❌ Tempo limite excedido. Verifique se o QR code foi escaneado.');
      clearInterval(intervalo);
    }
  }, 5000); // Verifica a cada 5 segundos
}

monitorarConexao();
