<?php
/**
 * Script para debugar o login dos operadores GPS
 * Controle de Frotas - Pinheiro Empresas
 */

require_once 'config/database.php';

echo "<h1>🔍 Debug do Login dos Operadores GPS</h1>";

try {
    $pdo = Database::getConnection();
    
    // 1. Verificar se a tabela existe
    echo "<h3>1. Verificando tabela operadores_gps...</h3>";
    $stmt = $pdo->query("SHOW TABLES LIKE 'operadores_gps'");
    if ($stmt->rowCount() > 0) {
        echo "✅ Tabela 'operadores_gps' existe<br>";
    } else {
        echo "❌ Tabela 'operadores_gps' NÃO existe<br>";
        exit;
    }
    
    // 2. Verificar operadores cadastrados
    echo "<h3>2. Operadores cadastrados:</h3>";
    $stmt = $pdo->query("SELECT id, nome, usuario, email, nivel_acesso, status FROM operadores_gps ORDER BY id");
    $operadores = $stmt->fetchAll();
    
    if (count($operadores) > 0) {
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr><th>ID</th><th>Nome</th><th>Usuário</th><th>Email</th><th>Nível</th><th>Status</th></tr>";
        foreach ($operadores as $op) {
            echo "<tr>";
            echo "<td>{$op['id']}</td>";
            echo "<td>{$op['nome']}</td>";
            echo "<td>{$op['usuario']}</td>";
            echo "<td>{$op['email']}</td>";
            echo "<td>{$op['nivel_acesso']}</td>";
            echo "<td>{$op['status']}</td>";
            echo "</tr>";
        }
        echo "</table>";
    } else {
        echo "❌ Nenhum operador cadastrado<br>";
    }
    
    // 3. Testar login com joao.gps
    echo "<h3>3. Testando login com 'joao.gps':</h3>";
    $usuario = 'joao.gps';
    $senha = 'password';
    
    $stmt = $pdo->prepare("SELECT id, nome, usuario, senha, email, nivel_acesso, status FROM operadores_gps WHERE usuario = ?");
    $stmt->execute([$usuario]);
    $operador = $stmt->fetch();
    
    if ($operador) {
        echo "✅ Usuário '{$usuario}' encontrado<br>";
        echo "Status: {$operador['status']}<br>";
        echo "Nível: {$operador['nivel_acesso']}<br>";
        
        if ($operador['status'] === 'ativo') {
            if (password_verify($senha, $operador['senha'])) {
                echo "✅ Senha correta! Login funcionaria<br>";
            } else {
                echo "❌ Senha incorreta<br>";
                echo "Hash da senha no banco: " . substr($operador['senha'], 0, 20) . "...<br>";
                echo "Hash da senha 'password': " . password_hash('password', PASSWORD_DEFAULT) . "<br>";
            }
        } else {
            echo "❌ Usuário inativo<br>";
        }
    } else {
        echo "❌ Usuário '{$usuario}' NÃO encontrado<br>";
    }
    
    // 4. Recriar operador joao.gps se necessário
    echo "<h3>4. Recriando operador joao.gps...</h3>";
    try {
        // Remover se existir
        $pdo->exec("DELETE FROM operadores_gps WHERE usuario = 'joao.gps'");
        
        // Inserir novamente
        $stmt = $pdo->prepare("INSERT INTO operadores_gps (nome, usuario, senha, email, telefone, nivel_acesso, status) VALUES (?, ?, ?, ?, ?, ?, ?)");
        $stmt->execute([
            'João Silva',
            'joao.gps',
            password_hash('password', PASSWORD_DEFAULT),
            'joao.gps@pinheiroempresas.com.br',
            '(11) 99999-1111',
            'operador',
            'ativo'
        ]);
        echo "✅ Operador 'joao.gps' recriado com sucesso<br>";
        
        // Verificar se foi criado
        $stmt = $pdo->prepare("SELECT id, nome, usuario, senha FROM operadores_gps WHERE usuario = 'joao.gps'");
        $stmt->execute();
        $novo = $stmt->fetch();
        if ($novo) {
            echo "✅ Verificação: ID {$novo['id']}, Nome: {$novo['nome']}<br>";
            if (password_verify('password', $novo['senha'])) {
                echo "✅ Senha verificada com sucesso!<br>";
            } else {
                echo "❌ Problema com a senha<br>";
            }
        }
        
    } catch (Exception $e) {
        echo "❌ Erro ao recriar operador: " . $e->getMessage() . "<br>";
    }
    
    // 5. Verificar se a tabela system_logs existe
    echo "<h3>5. Verificando tabela system_logs...</h3>";
    $stmt = $pdo->query("SHOW TABLES LIKE 'system_logs'");
    if ($stmt->rowCount() > 0) {
        echo "✅ Tabela 'system_logs' existe<br>";
    } else {
        echo "⚠️ Tabela 'system_logs' NÃO existe (logs não serão salvos)<br>";
    }
    
    echo "<h3>6. Instruções:</h3>";
    echo "<div style='background: #e8f5e8; padding: 15px; border-radius: 5px; margin: 10px 0;'>";
    echo "<strong>Agora tente fazer login novamente com:</strong><br>";
    echo "• Usuário: <code>joao.gps</code><br>";
    echo "• Senha: <code>password</code><br><br>";
    echo "<a href='operador-gps/login.php' target='_blank'>Ir para o Login</a>";
    echo "</div>";
    
} catch (Exception $e) {
    echo "<div style='background: #ffebee; color: #c62828; padding: 15px; border-radius: 5px; margin: 10px 0;'>";
    echo "<strong>❌ Erro no debug:</strong><br>";
    echo $e->getMessage();
    echo "</div>";
}
?>
