#!/bin/bash

# Script rápido para testar WhatsApp
# Uso: ./teste-rapido-whatsapp.sh [tipo]

NUMERO_TESTE="553199329118"

echo "🧪 TESTE RÁPIDO WHATSAPP - Geocontrole"
echo "====================================="
echo "📱 Número: $NUMERO_TESTE"
echo ""

# Função para mostrar ajuda
mostrar_ajuda() {
    echo "Uso: $0 [tipo]"
    echo ""
    echo "Tipos disponíveis:"
    echo "  conectividade  - Teste simples de conectividade"
    echo "  rnc-vencida   - Testa lógica de RNC vencida"
    echo "  rnc-vencer    - Testa lógica de RNC a vencer"
    echo "  analise       - Testa lógica de análise vencida"
    echo "  todos         - Executa todos os testes"
    echo "  node          - Executa teste completo em Node.js"
    echo ""
    echo "Exemplos:"
    echo "  $0 conectividade"
    echo "  $0 todos"
    echo "  $0 node rnc-vencida"
}

# Função para verificar se o servidor está rodando
verificar_servidor() {
    echo "🔍 Verificando se o servidor está rodando..."
    for i in {1..10}; do
        if curl -s http://localhost:3005/whatsapp/status > /dev/null 2>&1; then
            echo "✅ Servidor está rodando"
            return 0
        fi
        echo "⏳ Aguardando servidor... (tentativa $i/10)"
        sleep 2
    done
    echo "❌ Servidor não está respondendo na porta 3005"
    echo "💡 Execute: npm start"
    return 1
}

# Função para verificar se o WhatsApp está conectado
verificar_whatsapp() {
    echo "🔍 Verificando conexão WhatsApp..."
    local status=$(curl -s http://localhost:3005/whatsapp/status)
    
    if echo "$status" | grep -q '"connected":true'; then
        echo "✅ WhatsApp está conectado"
        return 0
    else
        echo "❌ WhatsApp não está conectado"
        echo "💡 Aguarde a conexão ou escaneie o QR code"
        return 1
    fi
}

# Função para enviar via API
enviar_api() {
    local mensagem="$1"
    
    # Verificar conexões primeiro
    if ! verificar_servidor; then
        return 1
    fi
    
    if ! verificar_whatsapp; then
        echo "⚠️  Enviando mesmo assim para testar..."
    fi
    
    echo "📤 Enviando mensagem..."
    
    # Criar arquivo temporário com JSON para evitar problemas de escape
    local temp_json=$(mktemp)
    cat > "$temp_json" << EOF
{
    "numero": "$NUMERO_TESTE",
    "mensagem": "$mensagem"
}
EOF
    
    local resultado=$(curl -s -X POST http://localhost:3005/whatsapp/teste \
        -H "Content-Type: application/json" \
        -d @"$temp_json")
    
    # Limpar arquivo temporário
    rm -f "$temp_json"
    
    if echo "$resultado" | grep -q '"success":true'; then
        echo "✅ Mensagem enviada com sucesso"
        echo "📱 Resposta: $(echo "$resultado" | grep -o '"message":"[^"]*"' | cut -d'"' -f4)"
    else
        echo "❌ Erro ao enviar mensagem"
        echo "📱 Resposta completa: $resultado"
        
        # Debug adicional
        echo "🔍 Debug do JSON enviado:"
        echo "📞 Número: $NUMERO_TESTE"
        echo "💬 Mensagem: $mensagem"
    fi
}

# Teste de conectividade simples
teste_conectividade() {
    echo "🔍 Executando teste de conectividade..."
    
    local mensagem="🧪 TESTE DE CONECTIVIDADE

Olá! Este é um teste rápido do sistema WhatsApp.

✅ Se você recebeu esta mensagem:
• WhatsApp está funcionando
• API está respondendo
• Sistema operacional

🕐 Enviado em: $(date '+%d/%m/%Y %H:%M:%S')

🤖 Teste automático - Geocontrole"

    enviar_api "$mensagem"
}

# Teste RNC Vencida (simulado)
teste_rnc_vencida() {
    echo "🔍 Executando teste RNC Vencida (simulado)..."
    
    local mensagem="🚨 RNC VENCIDA - TESTE

Olá! Este é um TESTE da lógica de RNC vencida.

📋 Exemplo de RNC vencida:
• RNC 2024-001
• Prazo: 15/09/2024 (vencida há 22 dias)
• Responsável: João Silva
• Setor: SGI

⚠️ Em produção, esta mensagem seria enviada automaticamente às 8h da manhã para responsáveis com RNCs vencidas.

🤖 TESTE - Sistema Geocontrole"

    enviar_api "$mensagem"
}

# Teste RNC a Vencer (simulado)
teste_rnc_vencer() {
    echo "🔍 Executando teste RNC a Vencer (simulado)..."
    
    local mensagem="⚠️ RNC A VENCER - TESTE

Olá! Este é um TESTE da lógica de RNC a vencer.

📅 Exemplo de RNC que vence em breve:
• RNC 2024-002
• Prazo: 12/10/2024 (vence em 5 dias)
• Responsável: Maria Santos
• Setor: Laboratório

📝 Lembrete: Organize-se para cumprir o prazo.

🤖 TESTE - Sistema Geocontrole"

    enviar_api "$mensagem"
}

# Teste Análise SGI Vencida (simulado)
teste_analise_vencida() {
    echo "🔍 Executando teste Análise SGI Vencida (simulado)..."
    
    local mensagem="🔴 ANÁLISE SGI VENCIDA - TESTE

Olá! Este é um TESTE da lógica de análise vencida.

📊 Exemplo de análise vencida:
• Análise de Causa Raiz
• ID: 2024-050
• Prazo: 20/09/2024 (12 dias vencida)
• Responsável: Carlos Lima

🚨 Urgente: Esta análise precisa ser finalizada.

🤖 TESTE - Sistema Geocontrole"

    enviar_api "$mensagem"
}

# Verificar se servidor está rodando
verificar_servidor() {
    local status=$(curl -s http://localhost:3005/whatsapp/status 2>/dev/null)
    if [ $? -eq 0 ]; then
        echo "✅ Servidor está rodando"
        if echo "$status" | grep -q '"connected":true'; then
            echo "✅ WhatsApp está conectado"
            return 0
        else
            echo "⚠️  WhatsApp não está conectado"
            echo "💡 Acesse: http://localhost:3005/whatsapp/qr para conectar"
            return 1
        fi
    else
        echo "❌ Servidor não está rodando"
        echo "💡 Execute: npm start ou pm2 start ecosystem.config.json"
        return 1
    fi
}

# Função principal
case "${1:-conectividade}" in
    "conectividade")
        verificar_servidor && teste_conectividade
        ;;
    "rnc-vencida")
        verificar_servidor && teste_rnc_vencida
        ;;
    "rnc-vencer")
        verificar_servidor && teste_rnc_vencer
        ;;
    "analise")
        verificar_servidor && teste_analise_vencida
        ;;
    "todos")
        if verificar_servidor; then
            echo ""
            teste_conectividade
            echo ""
            sleep 3
            teste_rnc_vencida
            echo ""
            sleep 3
            teste_rnc_vencer
            echo ""
            sleep 3
            teste_analise_vencida
        fi
        ;;
    "node")
        echo "🚀 Executando teste completo em Node.js..."
        node teste-whatsapp.js "${2:-todos}"
        ;;
    "help"|"--help"|"-h")
        mostrar_ajuda
        ;;
    *)
        echo "❌ Tipo de teste inválido: $1"
        echo ""
        mostrar_ajuda
        exit 1
        ;;
esac

echo ""
echo "🎉 Teste finalizado!"
echo "📱 Verifique as mensagens no número: $NUMERO_TESTE"