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

echo "<h1>🔍 Teste de Conexão com Banco</h1>";
echo "<p>Testando diferentes credenciais para encontrar a configuração correta.</p>";

// Diferentes configurações para testar
$configuracoes = [
    [
        'nome' => 'Configuração 1 - pinheir3_admin com senha',
        'host' => 'localhost',
        'dbname' => 'pinheir3_controle_frotasV1.1',
        'user' => 'pinheir3_admin',
        'pass' => 'G3r@ld0P!nh3!r0'
    ],
    [
        'nome' => 'Configuração 2 - root sem senha',
        'host' => 'localhost',
        'dbname' => 'pinheir3_controle_frotasV1.1',
        'user' => 'root',
        'pass' => ''
    ],
    [
        'nome' => 'Configuração 3 - root com senha comum',
        'host' => 'localhost',
        'dbname' => 'pinheir3_controle_frotasV1.1',
        'user' => 'root',
        'pass' => 'root'
    ],
    [
        'nome' => 'Configuração 4 - usando banco controle_frotas',
        'host' => 'localhost',
        'dbname' => 'controle_frotas',
        'user' => 'root',
        'pass' => ''
    ],
    [
        'nome' => 'Configuração 5 - phpMyAdmin padrão',
        'host' => 'localhost',
        'dbname' => 'pinheir3_controle_frotasV1.1',
        'user' => 'pinheir3_admin',
        'pass' => ''
    ]
];

$conexaoFuncional = null;

foreach ($configuracoes as $config) {
    echo "<h3>🧪 Testando: {$config['nome']}</h3>";
    echo "<p><strong>Host:</strong> {$config['host']}</p>";
    echo "<p><strong>Banco:</strong> {$config['dbname']}</p>";
    echo "<p><strong>Usuário:</strong> {$config['user']}</p>";
    echo "<p><strong>Senha:</strong> " . (empty($config['pass']) ? '(vazia)' : '***') . "</p>";
    
    try {
        $pdo = new PDO(
            "mysql:host={$config['host']};dbname={$config['dbname']};charset=utf8",
            $config['user'],
            $config['pass']
        );
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        
        echo "<p style='color: green;'>✅ <strong>CONEXÃO FUNCIONOU!</strong></p>";
        
        // Testar consultas básicas
        $stmt = $pdo->query("SHOW TABLES");
        $tabelas = $stmt->fetchAll(PDO::FETCH_COLUMN);
        echo "<p><strong>Tabelas encontradas:</strong> " . implode(', ', $tabelas) . "</p>";
        
        // Verificar dados das tabelas principais
        if (in_array('usuarios', $tabelas)) {
            $stmt = $pdo->query("SELECT COUNT(*) as total FROM usuarios");
            $totalUsuarios = $stmt->fetch()['total'];
            echo "<p>👥 Usuários: $totalUsuarios registros</p>";
        }
        
        if (in_array('motoristas', $tabelas)) {
            $stmt = $pdo->query("SELECT COUNT(*) as total FROM motoristas");
            $totalMotoristas = $stmt->fetch()['total'];
            echo "<p>🚗 Motoristas: $totalMotoristas registros</p>";
        }
        
        if (in_array('viagens', $tabelas)) {
            $stmt = $pdo->query("SELECT COUNT(*) as total FROM viagens");
            $totalViagens = $stmt->fetch()['total'];
            echo "<p>📍 Viagens: $totalViagens registros</p>";
        }
        
        $conexaoFuncional = $config;
        echo "<div style='background: #d4edda; padding: 10px; border-radius: 5px; margin: 10px 0;'>";
        echo "<strong>🎉 Esta configuração será usada nos próximos scripts!</strong>";
        echo "</div>";
        break; // Parar no primeiro que funcionar
        
    } catch (Exception $e) {
        echo "<p style='color: red;'>❌ <strong>FALHOU:</strong> " . $e->getMessage() . "</p>";
    }
    
    echo "<hr>";
}

if ($conexaoFuncional) {
    echo "<h2>📝 Configuração Funcional Encontrada</h2>";
    echo "<div style='background: #f8f9fa; padding: 15px; border-radius: 5px; font-family: monospace;'>";
    echo "\$host = '{$conexaoFuncional['host']}';<br>";
    echo "\$dbname = '{$conexaoFuncional['dbname']}';<br>";
    echo "\$user = '{$conexaoFuncional['user']}';<br>";
    echo "\$pass = '" . ($conexaoFuncional['pass'] ? $conexaoFuncional['pass'] : '') . "';<br>";
    echo "</div>";
    
    echo "<h3>🔄 Gerando Scripts Corrigidos</h3>";
    
    // Atualizar verificar-tecnicos.php com as credenciais corretas
    $novoConteudo = "<?php
header('Content-Type: application/json; charset=utf-8');

// Configuração funcional do banco
\$host = '{$conexaoFuncional['host']}';
\$dbname = '{$conexaoFuncional['dbname']}';
\$username = '{$conexaoFuncional['user']}';
\$password = '{$conexaoFuncional['pass']}';

try {
    \$pdo = new PDO(\"mysql:host=\$host;dbname=\$dbname;charset=utf8\", \$username, \$password);
    \$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    \$resultado = [];
    
    // 1. Verificar técnicos únicos nas viagens
    \$stmt = \$pdo->query(\"SELECT DISTINCT tecnico_id, COUNT(*) as total_viagens FROM viagens GROUP BY tecnico_id ORDER BY total_viagens DESC\");
    \$tecnicosViagens = \$stmt->fetchAll(PDO::FETCH_ASSOC);
    \$resultado['tecnicos_em_viagens'] = \$tecnicosViagens;
    
    // 2. Verificar usuários cadastrados (tabela unificada)
    \$stmt = \$pdo->query(\"SELECT id, nome, COALESCE(matricula, 'N/A') as matricula, ativo as status FROM usuarios ORDER BY nome\");
    \$usuariosCadastrados = \$stmt->fetchAll(PDO::FETCH_ASSOC);
    \$resultado['usuarios_cadastrados'] = \$usuariosCadastrados;
    
    // 3. Verificar motoristas cadastrados (tabela antiga)
    try {
        \$stmt = \$pdo->query(\"SELECT id, nome, matricula, status FROM motoristas ORDER BY nome\");
        \$motoristasCadastrados = \$stmt->fetchAll(PDO::FETCH_ASSOC);
        \$resultado['motoristas_cadastrados'] = \$motoristasCadastrados;
    } catch (Exception \$e) {
        \$resultado['motoristas_cadastrados'] = [];
        \$resultado['erro_motoristas'] = 'Tabela motoristas não encontrada ou inacessível';
    }
    
    // 4. Verificar viagens com técnico não identificado
    \$stmt = \$pdo->query(\"
        SELECT v.id, v.cliente, v.tecnico_id, v.data_inicio, 
               COALESCE(u.nome, COALESCE(m.nome, 'NÃO ENCONTRADO')) as tecnico_nome
        FROM viagens v
        LEFT JOIN usuarios u ON v.tecnico_id = u.id
        LEFT JOIN motoristas m ON v.tecnico_id = m.nome
        WHERE u.nome IS NULL AND m.nome IS NULL
        ORDER BY v.data_inicio DESC
        LIMIT 10
    \");
    \$viagensSemTecnico = \$stmt->fetchAll(PDO::FETCH_ASSOC);
    \$resultado['viagens_sem_tecnico'] = \$viagensSemTecnico;
    
    // 5. Verificar viagens com técnico identificado
    \$stmt = \$pdo->query(\"
        SELECT v.id, v.cliente, v.tecnico_id, v.data_inicio, 
               COALESCE(u.nome, m.nome) as tecnico_nome
        FROM viagens v
        LEFT JOIN usuarios u ON v.tecnico_id = u.id
        LEFT JOIN motoristas m ON v.tecnico_id = m.nome
        WHERE (u.nome IS NOT NULL OR m.nome IS NOT NULL)
        ORDER BY v.data_inicio DESC
        LIMIT 5
    \");
    \$viagensComTecnico = \$stmt->fetchAll(PDO::FETCH_ASSOC);
    \$resultado['viagens_com_tecnico'] = \$viagensComTecnico;
    
    // 6. Estatísticas finais
    \$stmt = \$pdo->query(\"SELECT COUNT(*) as total FROM viagens\");
    \$resultado['total_viagens'] = \$stmt->fetch()['total'];
    
    \$stmt = \$pdo->query(\"SELECT COUNT(*) as total FROM usuarios\");
    \$resultado['total_usuarios'] = \$stmt->fetch()['total'];
    
    \$stmt = \$pdo->query(\"SELECT COUNT(*) as total FROM motoristas\");
    \$resultado['total_motoristas'] = \$stmt->fetch()['total'];
    
    // Contar viagens órfãs
    \$stmt = \$pdo->query(\"
        SELECT COUNT(*) as total 
        FROM viagens v 
        LEFT JOIN usuarios u ON v.tecnico_id = u.id 
        LEFT JOIN motoristas m ON v.tecnico_id = m.nome
        WHERE u.id IS NULL AND m.nome IS NULL
    \");
    \$resultado['viagens_orfas'] = \$stmt->fetch()['total'];
    
    echo json_encode([
        'sucesso' => true,
        'dados' => \$resultado
    ], JSON_PRETTY_PRINT);
    
} catch (Exception \$e) {
    echo json_encode([
        'sucesso' => false,
        'mensagem' => \$e->getMessage()
    ]);
}
?>";

    file_put_contents('verificar-tecnicos.php', $novoConteudo);
    echo "<p>✅ Arquivo verificar-tecnicos.php atualizado com credenciais funcionais</p>";
    
    echo "<h3>🧪 Teste Agora</h3>";
    echo "<p><a href='verificar-tecnicos.html' style='background: #007bff; color: white; padding: 10px 20px; text-decoration: none; border-radius: 5px;'>🔗 Testar Verificação de Técnicos</a></p>";
    
} else {
    echo "<div style='background: #f8d7da; padding: 15px; border-radius: 5px; margin: 20px 0;'>";
    echo "<h3>❌ Nenhuma Configuração Funcionou</h3>";
    echo "<p>Possíveis soluções:</p>";
    echo "<ul>";
    echo "<li>Verificar se o MySQL está rodando</li>";
    echo "<li>Confirmar nome do banco de dados no phpMyAdmin</li>";
    echo "<li>Verificar permissões do usuário</li>";
    echo "<li>Tentar criar um novo usuário com permissões completas</li>";
    echo "</ul>";
    echo "</div>";
}

echo "<hr>";
echo "<p><a href='dashboard.html'>🔗 Voltar ao Dashboard</a></p>";
?> 
