<?php
/**
 * CORREÇÃO DE SENHA DO ADMIN
 * Script para corrigir a senha do gestor admin
 */

header('Content-Type: text/html; charset=utf-8');

echo "<!DOCTYPE html>\n";
echo "<html><head><title>Correção Senha Admin</title>";
echo "<style>body{font-family:Arial;margin:20px;} .success{color:green;} .error{color:red;} .info{color:blue;}</style>";
echo "</head><body>\n";

echo "<h1>🔧 Correção de Senha do Admin</h1>\n";

try {
    require_once __DIR__ . '/config/database.php';
    $pdo = conectarBanco();
    echo "<p class='success'>✅ Conectado ao banco</p>\n";
    
    // 1. Verificar senha atual do admin
    $stmt = $pdo->prepare("SELECT id, nome, usuario, senha FROM gestores WHERE usuario = 'admin'");
    $stmt->execute();
    $admin = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if (!$admin) {
        echo "<p class='error'>❌ Admin não encontrado!</p>\n";
        exit();
    }
    
    echo "<p class='info'>📋 Admin encontrado: {$admin['nome']} (ID: {$admin['id']})</p>\n";
    echo "<p class='info'>🔐 Senha atual (hash): " . substr($admin['senha'], 0, 20) . "...</p>\n";
    
    // 2. Testar senha atual
    $senhaCorreta = password_verify('admin123', $admin['senha']);
    echo "<p class='info'>🧪 Teste senha 'admin123': " . ($senhaCorreta ? 'OK' : 'FALHOU') . "</p>\n";
    
    if (!$senhaCorreta) {
        echo "<p class='info'>🔧 Corrigindo senha...</p>\n";
        
        // 3. Gerar novo hash da senha
        $novaSenha = password_hash('admin123', PASSWORD_DEFAULT);
        echo "<p class='info'>🆕 Novo hash gerado: " . substr($novaSenha, 0, 20) . "...</p>\n";
        
        // 4. Atualizar no banco
        $updateStmt = $pdo->prepare("UPDATE gestores SET senha = ? WHERE id = ?");
        $resultado = $updateStmt->execute([$novaSenha, $admin['id']]);
        
        if ($resultado) {
            echo "<p class='success'>✅ Senha atualizada com sucesso!</p>\n";
            
            // 5. Verificar se funcionou
            $stmt2 = $pdo->prepare("SELECT senha FROM gestores WHERE id = ?");
            $stmt2->execute([$admin['id']]);
            $novoAdmin = $stmt2->fetch(PDO::FETCH_ASSOC);
            
            $testeNovo = password_verify('admin123', $novoAdmin['senha']);
            echo "<p class='success'>🧪 Teste da nova senha: " . ($testeNovo ? 'OK ✅' : 'FALHOU ❌') . "</p>\n";
            
        } else {
            echo "<p class='error'>❌ Erro ao atualizar senha</p>\n";
        }
    } else {
        echo "<p class='success'>✅ Senha já está correta!</p>\n";
    }
    
    echo "<hr>\n";
    
    // 6. Fazer o mesmo para o gestor
    echo "<h2>🔧 Verificando Gestor Padrão</h2>\n";
    
    $stmt = $pdo->prepare("SELECT id, nome, usuario, senha FROM gestores WHERE usuario = 'gestor'");
    $stmt->execute();
    $gestor = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($gestor) {
        echo "<p class='info'>📋 Gestor encontrado: {$gestor['nome']} (ID: {$gestor['id']})</p>\n";
        
        $senhaGestorCorreta = password_verify('gestor123', $gestor['senha']);
        echo "<p class='info'>🧪 Teste senha 'gestor123': " . ($senhaGestorCorreta ? 'OK' : 'FALHOU') . "</p>\n";
        
        if (!$senhaGestorCorreta) {
            echo "<p class='info'>🔧 Corrigindo senha do gestor...</p>\n";
            
            $novaSenhaGestor = password_hash('gestor123', PASSWORD_DEFAULT);
            $updateStmt = $pdo->prepare("UPDATE gestores SET senha = ? WHERE id = ?");
            $resultado = $updateStmt->execute([$novaSenhaGestor, $gestor['id']]);
            
            if ($resultado) {
                echo "<p class='success'>✅ Senha do gestor atualizada!</p>\n";
            } else {
                echo "<p class='error'>❌ Erro ao atualizar senha do gestor</p>\n";
            }
        } else {
            echo "<p class='success'>✅ Senha do gestor já está correta!</p>\n";
        }
    }
    
    echo "<hr>\n";
    echo "<h2>📋 Credenciais Atualizadas</h2>\n";
    echo "<div style='background:#e8f5e8;padding:15px;border-radius:5px;'>\n";
    echo "<p><strong>👑 Admin:</strong><br>Usuário: <code>admin</code><br>Senha: <code>admin123</code></p>\n";
    echo "<p><strong>👤 Gestor:</strong><br>Usuário: <code>gestor</code><br>Senha: <code>gestor123</code></p>\n";
    echo "</div>\n";
    
    echo "<h2>🧪 Teste Imediato</h2>\n";
    echo "<button onclick='testarLogin()' style='padding:10px 20px;background:#007cba;color:white;border:none;border-radius:5px;'>🔐 Testar Login Admin</button>\n";
    echo "<div id='resultadoTeste' style='margin-top:15px;'></div>\n";
    
    echo "<script>\n";
    echo "async function testarLogin() {\n";
    echo "    const resultado = document.getElementById('resultadoTeste');\n";
    echo "    resultado.innerHTML = '<p style=\"color:blue;\">🔄 Testando login admin...</p>';\n";
    echo "    \n";
    echo "    try {\n";
    echo "        const response = await fetch('/controlefrota/backend-php/api/auth/login-gestor.php', {\n";
    echo "            method: 'POST',\n";
    echo "            headers: { 'Content-Type': 'application/json' },\n";
    echo "            body: JSON.stringify({ usuario: 'admin', senha: 'admin123' })\n";
    echo "        });\n";
    echo "        \n";
    echo "        const data = await response.json();\n";
    echo "        \n";
    echo "        if (data.sucesso) {\n";
    echo "            resultado.innerHTML = '<div style=\"color:green;background:#e8f5e8;padding:10px;border-radius:5px;\"><h4>✅ LOGIN FUNCIONANDO!</h4><p>Gestor: ' + data.gestor.nome + '</p><p>Token gerado: ' + (data.token ? 'SIM' : 'NÃO') + '</p></div>';\n";
    echo "        } else {\n";
    echo "            resultado.innerHTML = '<div style=\"color:red;background:#ffe8e8;padding:10px;border-radius:5px;\"><h4>❌ Ainda com erro</h4><p>' + data.erro + '</p></div>';\n";
    echo "        }\n";
    echo "    } catch (error) {\n";
    echo "        resultado.innerHTML = '<div style=\"color:red;background:#ffe8e8;padding:10px;border-radius:5px;\"><h4>❌ Erro de rede</h4><p>' + error.message + '</p></div>';\n";
    echo "    }\n";
    echo "}\n";
    echo "</script>\n";
    
} catch (Exception $e) {
    echo "<p class='error'>❌ Erro: " . htmlspecialchars($e->getMessage()) . "</p>\n";
}

echo "<hr>\n";
echo "<p style='text-align:center;color:#666;'>🏁 Correção concluída em " . date('Y-m-d H:i:s') . "</p>\n";
echo "</body></html>\n";
?> 
