// Teste da funcionalidade de menções
const fetch = (...args) => import('node-fetch').then(({default: fetch}) => fetch(...args));

async function testarMencoes() {
    const url = 'http://localhost:3000/send-message';
    const token = '@@EQTL2025';
    
    // Mensagem com menções (substitua pelos números reais para testar)
    const mensagem = `🚨 *Desarme - OE 40118-7-2025 Uruaçu*
🗣️ Afetação: *365* clientes

Início: 16/07/2025 às 10:00:57
Ponto Operacional: 23 AN-GOIANESIA
Alimentador: SE GOIANESIA - Alimentador 1
👷 Equipes Atendendo: 2

> *882042* – Em deslocamento
> *URC001M* – Atribuída

@5562999999999 favor verificar a situação no local
@5511888888888 acompanhar o atendimento

*Status*: _Em andamento_`;

    try {
        console.log('🧪 Testando funcionalidade de menções...');
        console.log('📝 Mensagem com menções:', JSON.stringify(mensagem));
        
        const response = await fetch(url, {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': `Bearer ${token}`
            },
            body: JSON.stringify({
                grupo: 'SQL QUERY', // Substitua pelo nome do seu grupo
                mensagem: mensagem
            })
        });

        const result = await response.json();
        
        if (response.ok) {
            console.log('✅ Mensagem com menções enviada com sucesso!');
            console.log('📋 Resultado:', JSON.stringify(result, null, 2));
            
            if (result.mencoes && result.mencoes.length > 0) {
                console.log('\n👥 Menções processadas:');
                result.mencoes.forEach((mencao, index) => {
                    console.log(`${index + 1}. ${mencao}`);
                });
            }
            
            console.log('\n📱 No WhatsApp deve aparecer:');
            console.log('- Texto formatado corretamente');
            console.log('- Pessoas mencionadas recebem notificação');
            console.log('- @números aparecem como links clicáveis');
        } else {
            console.log('❌ Erro ao enviar mensagem:');
            console.log('📋 Resposta:', JSON.stringify(result, null, 2));
        }
        
    } catch (error) {
        console.error('❌ Erro de conexão:', error.message);
    }
}

async function testarFormatosMencao() {
    console.log('\n🔍 Testando diferentes formatos de menção...');
    
    const formatos = [
        '@5511999999999',    // Formato completo
        '@11999999999',      // Sem código do país
        '@+5511999999999',   // Com sinal +
        '@5562987654321',    // Outro estado
    ];
    
    for (const formato of formatos) {
        console.log(`📞 Formato: ${formato}`);
        
        try {
            const response = await fetch('http://localhost:3000/send-message', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'Authorization': 'Bearer @@EQTL2025'
                },
                body: JSON.stringify({
                    grupo: 'SQL QUERY',
                    mensagem: `Teste de menção: ${formato} - favor verificar`
                })
            });

            const result = await response.json();
            
            if (response.ok && result.mencoes) {
                console.log(`✅ Processado como: ${result.mencoes[0]}`);
            } else {
                console.log('⚠️ Não processou menção');
            }
        } catch (error) {
            console.log(`❌ Erro: ${error.message}`);
        }
        
        // Aguarda 1 segundo entre testes para não spammar
        await new Promise(resolve => setTimeout(resolve, 1000));
    }
}

// Executa os testes
async function executarTestes() {
    console.log('🧪 Iniciando testes de menção\n');
    
    // Verifica se o servidor está rodando
    try {
        const statusResponse = await fetch('http://localhost:3000/status');
        const status = await statusResponse.json();
        
        if (!status.whatsappConectado) {
            console.log('⚠️ WhatsApp não conectado. Conecte primeiro e tente novamente.');
            return;
        }
        
        console.log('✅ WhatsApp conectado. Executando testes...\n');
        
        // Executa teste principal
        await testarMencoes();
        
        // Executa testes de formato (comentado para não spammar)
        // await testarFormatosMencao();
        
    } catch (error) {
        console.error('❌ Erro ao verificar status:', error.message);
    }
}

// Se executado diretamente
if (require.main === module) {
    executarTestes();
}

module.exports = { testarMencoes, testarFormatosMencao };
