#!/bin/bash

# 🚀 Script de Deploy - WhatsApp Bot API
# Versão: 2.0.0
# Data: 17/07/2025

echo "🚀 Iniciando deploy do WhatsApp Bot API..."

# Verificar se o Node.js está instalado
if ! command -v node &> /dev/null; then
    echo "❌ Node.js não encontrado. Por favor, instale o Node.js primeiro."
    exit 1
fi

# Verificar se o npm está instalado
if ! command -v npm &> /dev/null; then
    echo "❌ npm não encontrado. Por favor, instale o npm primeiro."
    exit 1
fi

echo "✅ Node.js e npm encontrados"

# Instalar dependências
echo "📦 Instalando dependências..."
npm install --production

if [ $? -ne 0 ]; then
    echo "❌ Erro ao instalar dependências"
    exit 1
fi

echo "✅ Dependências instaladas com sucesso"

# Verificar se o arquivo principal existe
if [ ! -f "dist/index.js" ]; then
    echo "❌ Arquivo dist/index.js não encontrado"
    echo "💡 Execute: npm run build"
    exit 1
fi

echo "✅ Arquivo principal encontrado"

# Criar pasta para uploads se não existir
if [ ! -d "uploads" ]; then
    mkdir -p uploads
    echo "✅ Pasta uploads criada"
fi

# Verificar se o arquivo .env existe
if [ ! -f ".env" ]; then
    echo "⚠️  Arquivo .env não encontrado"
    echo "📝 Criando arquivo .env padrão..."
    
    cat > .env << EOF
TOKEN_SENHA=@@EQTL2025
PORT=3000
NODE_ENV=production
EOF
    
    echo "✅ Arquivo .env criado"
    echo "⚠️  IMPORTANTE: Altere o TOKEN_SENHA no arquivo .env"
fi

# Verificar se o PM2 está instalado
if command -v pm2 &> /dev/null; then
    echo "✅ PM2 encontrado"
    
    # Parar processo anterior se existir
    pm2 stop whatsapp-bot 2>/dev/null || true
    pm2 delete whatsapp-bot 2>/dev/null || true
    
    # Iniciar com PM2
    echo "🚀 Iniciando com PM2..."
    pm2 start dist/index.js --name whatsapp-bot
    pm2 save
    
    echo "✅ Aplicação iniciada com PM2"
    echo "📊 Status: pm2 status"
    echo "📋 Logs: pm2 logs whatsapp-bot"
    
else
    echo "⚠️  PM2 não encontrado"
    echo "💡 Instalando PM2..."
    npm install -g pm2
    
    if [ $? -eq 0 ]; then
        echo "✅ PM2 instalado"
        pm2 start dist/index.js --name whatsapp-bot
        pm2 save
        pm2 startup
        echo "✅ Aplicação iniciada com PM2"
    else
        echo "⚠️  Erro ao instalar PM2, iniciando com node..."
        echo "🚀 Iniciando aplicação..."
        node dist/index.js &
        echo "✅ Aplicação iniciada em background"
    fi
fi

echo ""
echo "🎉 Deploy concluído com sucesso!"
echo ""
echo "📋 Informações importantes:"
echo "🌐 URL da aplicação: http://localhost:3000"
echo "📱 QR Code: http://localhost:3000/qr"
echo "🧪 Interface de teste: http://localhost:3000/dist/public/teste.html"
echo "📚 Documentação: http://localhost:3000"
echo ""
echo "⚠️  Próximos passos:"
echo "1. Acesse o QR Code e conecte o WhatsApp"
echo "2. Teste a API com a interface web"
echo "3. Configure SSL/HTTPS em produção"
echo "4. Altere o TOKEN_SENHA no arquivo .env"
echo ""
echo "🆘 Suporte:"
echo "📖 Consulte o arquivo GUIA_DEPLOY.md"
echo "🔧 Logs: pm2 logs whatsapp-bot"
echo "🔄 Reiniciar: pm2 restart whatsapp-bot"
