#!/bin/bash
# Script de correção rápida - Restart completo com configurações corretas
# Data: 2025-11-28

set -e

echo "🔧 =========================================="
echo "   CORREÇÃO RÁPIDA - RESTART COMPLETO"
echo "=========================================="
echo ""

cd /var/www/gestorstream

# 1. PARAR CONTAINERS
echo "🛑 [1/4] Parando containers..."
if docker compose version &> /dev/null; then
    DOCKER_CMD="docker compose"
else
    DOCKER_CMD="docker-compose"
fi

$DOCKER_CMD down
echo "✅ Containers parados"
echo ""

# 2. LIMPAR CACHES
echo "🧹 [2/4] Limpando caches..."
rm -rf backend/bootstrap/cache/*.php 2>/dev/null || true
rm -rf backend/storage/framework/cache/* 2>/dev/null || true
rm -rf backend/storage/framework/views/* 2>/dev/null || true
echo "✅ Caches limpos"
echo ""

# 3. SUBIR CONTAINERS
echo "🐳 [3/4] Iniciando containers..."
$DOCKER_CMD up -d
echo "⏳ Aguardando containers inicializarem (15s)..."
sleep 15
echo "✅ Containers iniciados"
echo ""

# 4. LIMPAR CACHES LARAVEL
echo "🧹 [4/4] Limpando caches do Laravel..."
$DOCKER_CMD exec -T backend php artisan config:clear || true
$DOCKER_CMD exec -T backend php artisan cache:clear || true
$DOCKER_CMD exec -T backend php artisan route:clear || true
$DOCKER_CMD exec -T backend php artisan view:clear || true
echo "✅ Caches Laravel limpos"
echo ""

# 5. VERIFICAR STATUS
echo "📊 Status dos containers:"
$DOCKER_CMD ps
echo ""

# 6. TESTAR CONECTIVIDADE
echo "🔍 Testando backend..."
curl -s http://localhost:8080/api/v1/health || echo "⚠️ Backend não respondeu"
echo ""

echo "✅ NGINX"
nginx -t && systemctl reload nginx
echo ""

echo "🎉 =========================================="
echo "   RESTART CONCLUÍDO!"
echo "=========================================="
echo ""
echo "🌐 Acesse:"
echo "   - Via Domínio: http://gestor.jf.eng.br"
echo "   - Via IP:      http://46.62.246.240:5173"
echo ""
echo "📝 Se houver problemas, veja os logs:"
echo "   docker compose logs -f backend"
echo "   docker compose logs -f frontend"
echo "   tail -f /var/log/nginx/gestorstream-error.log"
