#!/bin/bash

echo "======================================"
echo "  Corrigir Backup Automático"
echo "======================================"
echo ""

cd /var/www/gestorstream/backend

# 1. Verificar se a correção já está aplicada
echo "1. Verificando se a correção já está no código..."
if grep -q "CORREÇÃO: Usar apenas hora e minuto" app/Console/Kernel.php; then
    echo "✅ Correção JÁ está no Kernel.php"
else
    echo "❌ Correção NÃO está no Kernel.php"
    echo "   Vou aplicar manualmente..."
    
    # Fazer backup
    cp app/Console/Kernel.php app/Console/Kernel.php.backup
    
    # Aplicar correção (isso será complexo, melhor mostrar como fazer manualmente)
    echo ""
    echo "⚠️  APLICAR MANUALMENTE:"
    echo "   1. Editar: nano app/Console/Kernel.php"
    echo "   2. Procurar por: \$currentTime = \$now->format('H:i');"
    echo "   3. Substituir o bloco de verificação de horário"
    echo ""
fi

# 2. Reiniciar PHP-FPM
echo ""
echo "2. Reiniciando PHP-FPM para limpar OPcache..."
if systemctl is-active --quiet php8.2-fpm; then
    sudo systemctl restart php8.2-fpm
    echo "✅ PHP 8.2-FPM reiniciado"
elif systemctl is-active --quiet php8.1-fpm; then
    sudo systemctl restart php8.1-fpm
    echo "✅ PHP 8.1-FPM reiniciado"
elif systemctl is-active --quiet php-fpm; then
    sudo systemctl restart php-fpm
    echo "✅ PHP-FPM reiniciado"
else
    echo "⚠️  Não foi possível encontrar o serviço PHP-FPM"
fi

# 3. Limpar todos os caches
echo ""
echo "3. Limpando todos os caches..."
php artisan config:clear
php artisan cache:clear
php artisan optimize:clear
php artisan route:clear
php artisan view:clear
echo "✅ Caches limpos"

# 4. Verificar se o comando aparece
echo ""
echo "4. Verificando comandos agendados..."
php artisan schedule:list | grep -E "backup|Closure"

if php artisan schedule:list | grep -q "Closure"; then
    echo ""
    echo "✅ Backup automático aparece na lista (Closure)"
else
    echo ""
    echo "❌ Backup automático NÃO aparece na lista"
    echo ""
    echo "Possíveis causas:"
    echo "  1. Código não foi aplicado (verificar passo 1)"
    echo "  2. Erro de sintaxe no Kernel.php"
    echo "  3. Cache ainda não foi limpo"
fi

# 5. Diagnóstico final
echo ""
echo "5. Diagnóstico final..."
echo ""
echo "=== Configurações de Backup ==="
php artisan tinker --execute="
echo 'Habilitado: ' . (\App\Models\SystemSetting::get('auto_backup_enabled') ? 'SIM' : 'NÃO') . PHP_EOL;
echo 'Horário: ' . \App\Models\SystemSetting::get('auto_backup_time') . PHP_EOL;
echo 'Frequência: ' . \App\Models\SystemSetting::get('auto_backup_frequency') . PHP_EOL;
"

echo ""
echo "=== Horário Atual ==="
date

echo ""
echo "======================================"
echo "  Comandos Úteis"
echo "======================================"
echo ""
echo "# Executar backup manual:"
echo "php artisan database:auto-backup"
echo ""
echo "# Monitorar logs:"
echo "tail -f storage/logs/laravel.log | grep AutoDatabaseBackup"
echo ""
echo "# Ver comandos agendados:"
echo "php artisan schedule:list"
echo ""
echo "# Executar scheduler manualmente:"
echo "php artisan schedule:run -vvv"
echo ""
