#!/bin/bash

# 🧪 Teste Rápido PIX - Verificação Automática
# Execute no servidor: ./teste-rapido-pix.sh

echo "🧪 Teste Rápido PIX - Liberi Kids"
echo "================================="

# Cores para output
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
RED='\033[0;31m'
NC='\033[0m'

log() {
    echo -e "${GREEN}[✅ OK]${NC} $1"
}

warn() {
    echo -e "${YELLOW}[⚠️  WARN]${NC} $1"
}

info() {
    echo -e "${BLUE}[ℹ️  INFO]${NC} $1"
}

error() {
    echo -e "${RED}[❌ ERRO]${NC} $1"
}

# Verificar se estamos no diretório correto
if [ ! -f "server-supabase.js" ]; then
    error "Execute este script no diretório do projeto!"
    exit 1
fi

echo ""
info "🔍 VERIFICANDO CONFIGURAÇÃO PIX..."

# 1. Verificar arquivo .env
echo ""
info "1️⃣ Verificando arquivo .env..."
if [ -f ".env" ]; then
    log "Arquivo .env encontrado"
    
    if grep -q "MERCADOPAGO_ACCESS_TOKEN" .env; then
        TOKEN=$(grep "MERCADOPAGO_ACCESS_TOKEN" .env | cut -d'=' -f2)
        if [[ $TOKEN == *"TEST-"* ]] || [[ $TOKEN == *"APP-"* ]]; then
            log "Access Token configurado"
        else
            warn "Access Token parece inválido: $TOKEN"
        fi
    else
        error "MERCADOPAGO_ACCESS_TOKEN não encontrado no .env"
    fi
    
    if grep -q "MERCADOPAGO_PUBLIC_KEY" .env; then
        log "Public Key configurado"
    else
        error "MERCADOPAGO_PUBLIC_KEY não encontrado no .env"
    fi
else
    error "Arquivo .env não encontrado!"
fi

# 2. Verificar dependências
echo ""
info "2️⃣ Verificando dependências..."
if [ -d "node_modules/mercadopago" ]; then
    log "SDK Mercado Pago instalado"
else
    warn "SDK Mercado Pago não encontrado"
    info "Instalando SDK..."
    npm install mercadopago
fi

# 3. Verificar se servidor está rodando
echo ""
info "3️⃣ Verificando servidor..."
if command -v pm2 &> /dev/null; then
    PM2_STATUS=$(pm2 jlist | jq -r '.[] | select(.name=="liberi-kids") | .pm2_env.status' 2>/dev/null)
    if [ "$PM2_STATUS" = "online" ]; then
        log "Servidor PM2 está rodando"
    else
        warn "Servidor PM2 não está rodando"
        info "Iniciando servidor..."
        pm2 start server-supabase.js --name liberi-kids
    fi
else
    warn "PM2 não encontrado, verificando processo Node..."
    if pgrep -f "server-supabase.js" > /dev/null; then
        log "Servidor Node está rodando"
    else
        warn "Servidor não está rodando"
    fi
fi

# 4. Testar conectividade local
echo ""
info "4️⃣ Testando conectividade..."
if curl -s http://localhost:5000 > /dev/null; then
    log "Servidor responde na porta 5000"
else
    error "Servidor não responde na porta 5000"
fi

# 5. Testar API PIX (se houver vendas)
echo ""
info "5️⃣ Testando API PIX..."

# Verificar se há vendas para testar
RESPONSE=$(curl -s -X POST http://localhost:5000/api/pix/gerar \
    -H "Content-Type: application/json" \
    -d '{"vendaId": 1}' 2>/dev/null)

if [[ $RESPONSE == *"payment_id"* ]]; then
    log "API PIX funcionando - QR Code gerado com sucesso!"
    PAYMENT_ID=$(echo $RESPONSE | grep -o '"payment_id":"[^"]*"' | cut -d'"' -f4)
    info "Payment ID: $PAYMENT_ID"
elif [[ $RESPONSE == *"error"* ]]; then
    warn "API PIX retornou erro:"
    echo "$RESPONSE" | head -c 200
elif [[ $RESPONSE == *"Venda não encontrada"* ]]; then
    warn "Venda ID 1 não existe (normal se não há vendas cadastradas)"
    log "API PIX está funcionando, mas precisa de vendas para testar"
else
    error "API PIX não responde corretamente"
    echo "Resposta: $RESPONSE"
fi

# 6. Verificar arquivos PIX
echo ""
info "6️⃣ Verificando arquivos PIX..."
if [ -f "config/mercadopago.js" ]; then
    log "Serviço Mercado Pago encontrado"
else
    error "config/mercadopago.js não encontrado"
fi

if [ -f "client/build/index.html" ]; then
    log "Build do frontend encontrado"
else
    warn "Build do frontend não encontrado"
    info "Execute: cd client && npm run build"
fi

# 7. Resumo final
echo ""
echo "📊 RESUMO DO TESTE:"
echo "=================="

# Contar sucessos e erros
SUCESSOS=0
ERROS=0

# Verificar cada item
[ -f ".env" ] && SUCESSOS=$((SUCESSOS+1)) || ERROS=$((ERROS+1))
[ -d "node_modules/mercadopago" ] && SUCESSOS=$((SUCESSOS+1)) || ERROS=$((ERROS+1))
[ -f "config/mercadopago.js" ] && SUCESSOS=$((SUCESSOS+1)) || ERROS=$((ERROS+1))

if [ $ERROS -eq 0 ]; then
    log "🎉 TODOS OS TESTES PASSARAM!"
    echo ""
    info "✅ Configuração PIX está correta"
    info "✅ Dependências instaladas"
    info "✅ Servidor funcionando"
    info "✅ APIs respondendo"
    echo ""
    log "🚀 SEU PIX ESTÁ PRONTO PARA USO!"
    echo ""
    info "📱 COMO TESTAR NA INTERFACE:"
    echo "  1. Acesse: http://$(hostname -I | awk '{print $1}'):5000"
    echo "  2. Vá em Vendas"
    echo "  3. Clique no botão PIX (💳)"
    echo "  4. Verifique se QR Code aparece"
    
elif [ $ERROS -le 2 ]; then
    warn "⚠️  ALGUNS PROBLEMAS ENCONTRADOS"
    echo ""
    info "A maioria está funcionando, verifique os itens marcados como ERRO acima"
    
else
    error "❌ MUITOS PROBLEMAS ENCONTRADOS"
    echo ""
    info "Verifique a configuração seguindo o guia TESTAR-PIX-COMPLETO.md"
fi

echo ""
info "📖 Para testes detalhados, consulte: TESTAR-PIX-COMPLETO.md"
echo ""
