#!/bin/bash
# Script de Diagnóstico do Erro 503 - Service Unavailable

echo "=========================================="
echo "  DIAGNÓSTICO ERRO 503 - GESTORSTREAM"
echo "=========================================="
echo ""
echo "Data/Hora: $(date)"
echo ""

APP_DIR="/var/www/gestorstream"
LOG_FILE="/tmp/diagnostico-503-$(date +%Y%m%d-%H%M%S).log"

{
    echo "=========================================="
    echo "PASSO 1: Status do Nginx"
    echo "=========================================="
    systemctl status nginx --no-pager -l | head -20
    echo ""
    
    echo "=========================================="
    echo "PASSO 2: Verificar se Nginx está rodando"
    echo "=========================================="
    systemctl is-active nginx
    echo ""
    
    echo "=========================================="
    echo "PASSO 3: Verificar processos Nginx"
    echo "=========================================="
    ps aux | grep nginx | grep -v grep
    echo ""
    
    echo "=========================================="
    echo "PASSO 4: Verificar portas em uso"
    echo "=========================================="
    netstat -tlnp | grep -E ':(80|443|8080)' || ss -tlnp | grep -E ':(80|443|8080)'
    echo ""
    
    echo "=========================================="
    echo "PASSO 5: Verificar PHP-FPM"
    echo "=========================================="
    systemctl list-units --type=service | grep -i php
    echo ""
    
    echo "=========================================="
    echo "PASSO 6: Verificar processos PHP-FPM"
    echo "=========================================="
    ps aux | grep php-fpm | grep -v grep | head -5
    echo ""
    
    echo "=========================================="
    echo "PASSO 7: Testar conexão local do backend"
    echo "=========================================="
    curl -I http://localhost:8080/api/v1/health 2>&1 | head -10
    echo ""
    
    echo "=========================================="
    echo "PASSO 8: Testar endpoint de login localmente"
    echo "=========================================="
    curl -X POST http://localhost:8080/api/v1/auth/login \
        -H "Content-Type: application/json" \
        -d '{"email":"test@test.com","password":"test"}' \
        2>&1 | head -20
    echo ""
    
    echo "=========================================="
    echo "PASSO 9: Verificar logs do Nginx (últimas 20 linhas)"
    echo "=========================================="
    tail -20 /var/log/nginx/error.log 2>/dev/null || echo "Log não encontrado"
    echo ""
    
    echo "=========================================="
    echo "PASSO 10: Verificar logs do Nginx access (últimas 10 linhas)"
    echo "=========================================="
    tail -10 /var/log/nginx/access.log 2>/dev/null || echo "Log não encontrado"
    echo ""
    
    echo "=========================================="
    echo "PASSO 11: Verificar logs do Laravel (últimas 30 linhas)"
    echo "=========================================="
    tail -30 $APP_DIR/backend/storage/logs/laravel.log 2>/dev/null || echo "Log não encontrado"
    echo ""
    
    echo "=========================================="
    echo "PASSO 12: Verificar configuração do Nginx"
    echo "=========================================="
    nginx -t 2>&1
    echo ""
    
    echo "=========================================="
    echo "PASSO 13: Verificar se backend está acessível"
    echo "=========================================="
    ls -la $APP_DIR/backend/public/index.php
    echo ""
    
    echo "=========================================="
    echo "PASSO 14: Verificar permissões do backend"
    echo "=========================================="
    ls -la $APP_DIR/backend/storage/logs/ | head -5
    ls -la $APP_DIR/backend/bootstrap/cache/ | head -5
    echo ""
    
    echo "=========================================="
    echo "PASSO 15: Verificar conexão com banco de dados"
    echo "=========================================="
    cd $APP_DIR/backend
    php artisan tinker --execute="DB::connection()->getPdo(); echo 'Database OK';" 2>&1 | head -10
    echo ""
    
    echo "=========================================="
    echo "PASSO 16: Verificar se há modo de manutenção ativo"
    echo "=========================================="
    ls -la $APP_DIR/backend/storage/framework/down 2>&1
    echo ""
    
    echo "=========================================="
    echo "PASSO 17: Verificar memória disponível"
    echo "=========================================="
    free -h
    echo ""
    
    echo "=========================================="
    echo "PASSO 18: Verificar espaço em disco"
    echo "=========================================="
    df -h | grep -E '/$|/var'
    echo ""
    
    echo "=========================================="
    echo "PASSO 19: Verificar configuração do site no Nginx"
    echo "=========================================="
    find /etc/nginx -name "*gestor*" -o -name "*jf.eng.br*" 2>/dev/null | head -5
    echo ""
    
    echo "=========================================="
    echo "PASSO 20: Testar curl externo (se possível)"
    echo "=========================================="
    curl -I https://gestor.jf.eng.br 2>&1 | head -10
    echo ""
    
} | tee "$LOG_FILE"

echo ""
echo "=========================================="
echo "✅ Diagnóstico completo!"
echo "=========================================="
echo ""
echo "📄 Log salvo em: $LOG_FILE"
echo ""
echo "📋 Copie o conteúdo acima e envie para análise."

