<?php
/**
 * Debug do problema com tecnico_id
 * Verificar como está sendo salvo e onde está o problema
 */

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

// Conectar ao banco
$host = 'localhost';
$dbname = 'pinheir3_controle_frotasV1.1';
$username = 'pinheir3_admin';
$password = '080880Gelboy';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password, [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    ]);
    
    echo "<h2>🔍 Debug do tecnico_id</h2>";
    
    // 1. Verificar estrutura da tabela viagens
    echo "<h3>📋 Estrutura da tabela viagens:</h3>";
    $stmt = $pdo->query("DESCRIBE viagens");
    $colunas = $stmt->fetchAll();
    
    echo "<table style='border-collapse: collapse; width: 100%; margin: 10px 0;'>";
    echo "<tr style='background: #f8f9fa;'>";
    echo "<th style='border: 1px solid #ddd; padding: 8px;'>Campo</th>";
    echo "<th style='border: 1px solid #ddd; padding: 8px;'>Tipo</th>";
    echo "<th style='border: 1px solid #ddd; padding: 8px;'>Null</th>";
    echo "<th style='border: 1px solid #ddd; padding: 8px;'>Key</th>";
    echo "<th style='border: 1px solid #ddd; padding: 8px;'>Default</th>";
    echo "</tr>";
    
    foreach ($colunas as $coluna) {
        echo "<tr>";
        echo "<td style='border: 1px solid #ddd; padding: 8px;'><strong>{$coluna['Field']}</strong></td>";
        echo "<td style='border: 1px solid #ddd; padding: 8px;'>{$coluna['Type']}</td>";
        echo "<td style='border: 1px solid #ddd; padding: 8px;'>{$coluna['Null']}</td>";
        echo "<td style='border: 1px solid #ddd; padding: 8px;'>{$coluna['Key']}</td>";
        echo "<td style='border: 1px solid #ddd; padding: 8px;'>{$coluna['Default']}</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    // 2. Verificar motoristas disponíveis
    echo "<h3>👥 Motoristas disponíveis:</h3>";
    $stmt = $pdo->query("SELECT id, nome, matricula, usuario, status FROM motoristas ORDER BY id");
    $motoristas = $stmt->fetchAll();
    
    if (empty($motoristas)) {
        echo "<p style='color: red;'>❌ Nenhum motorista encontrado!</p>";
    } else {
        echo "<table style='border-collapse: collapse; width: 100%; margin: 10px 0;'>";
        echo "<tr style='background: #f8f9fa;'>";
        echo "<th style='border: 1px solid #ddd; padding: 8px;'>ID</th>";
        echo "<th style='border: 1px solid #ddd; padding: 8px;'>Nome</th>";
        echo "<th style='border: 1px solid #ddd; padding: 8px;'>Matrícula</th>";
        echo "<th style='border: 1px solid #ddd; padding: 8px;'>Usuário</th>";
        echo "<th style='border: 1px solid #ddd; padding: 8px;'>Status</th>";
        echo "</tr>";
        
        foreach ($motoristas as $m) {
            echo "<tr>";
            echo "<td style='border: 1px solid #ddd; padding: 8px;'><strong>{$m['id']}</strong></td>";
            echo "<td style='border: 1px solid #ddd; padding: 8px;'>{$m['nome']}</td>";
            echo "<td style='border: 1px solid #ddd; padding: 8px;'>{$m['matricula']}</td>";
            echo "<td style='border: 1px solid #ddd; padding: 8px;'>{$m['usuario']}</td>";
            echo "<td style='border: 1px solid #ddd; padding: 8px;'>{$m['status']}</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    
    // 3. Verificar últimas viagens e seus tecnico_id
    echo "<h3>🚗 Últimas 10 viagens e seus tecnico_id:</h3>";
    $stmt = $pdo->query("
        SELECT 
            v.id,
            v.tecnico_id,
            v.cliente,
            v.data_inicio,
            v.data_fim,
            CAST(v.tecnico_id AS UNSIGNED) as tecnico_id_numerico,
            m.nome as motorista_nome,
            m.matricula as motorista_matricula
        FROM viagens v
        LEFT JOIN motoristas m ON CAST(v.tecnico_id AS UNSIGNED) = m.id
        ORDER BY v.id DESC 
        LIMIT 10
    ");
    $viagens = $stmt->fetchAll();
    
    if (empty($viagens)) {
        echo "<p style='color: orange;'>⚠️ Nenhuma viagem encontrada!</p>";
    } else {
        echo "<table style='border-collapse: collapse; width: 100%; margin: 10px 0;'>";
        echo "<tr style='background: #f8f9fa;'>";
        echo "<th style='border: 1px solid #ddd; padding: 8px;'>ID Viagem</th>";
        echo "<th style='border: 1px solid #ddd; padding: 8px;'>tecnico_id (string)</th>";
        echo "<th style='border: 1px solid #ddd; padding: 8px;'>tecnico_id (numérico)</th>";
        echo "<th style='border: 1px solid #ddd; padding: 8px;'>Nome do Motorista</th>";
        echo "<th style='border: 1px solid #ddd; padding: 8px;'>Cliente</th>";
        echo "<th style='border: 1px solid #ddd; padding: 8px;'>Status</th>";
        echo "</tr>";
        
        foreach ($viagens as $v) {
            $status = $v['data_fim'] ? 'Finalizada' : 'Em Andamento';
            $statusColor = $v['data_fim'] ? '#28a745' : '#ffc107';
            
            echo "<tr>";
            echo "<td style='border: 1px solid #ddd; padding: 8px;'><strong>{$v['id']}</strong></td>";
            echo "<td style='border: 1px solid #ddd; padding: 8px;'>";
            echo "<code style='background: #f1f1f1; padding: 2px 4px; border-radius: 3px;'>" . htmlspecialchars($v['tecnico_id']) . "</code>";
            echo "</td>";
            echo "<td style='border: 1px solid #ddd; padding: 8px;'>{$v['tecnico_id_numerico']}</td>";
            echo "<td style='border: 1px solid #ddd; padding: 8px;'>";
            if ($v['motorista_nome']) {
                echo "<strong style='color: green;'>{$v['motorista_nome']}</strong>";
                if ($v['motorista_matricula']) {
                    echo " <small>({$v['motorista_matricula']})</small>";
                }
            } else {
                echo "<span style='color: red;'>❌ Não encontrado</span>";
            }
            echo "</td>";
            echo "<td style='border: 1px solid #ddd; padding: 8px;'>{$v['cliente']}</td>";
            echo "<td style='border: 1px solid #ddd; padding: 8px;'>";
            echo "<span style='color: $statusColor; font-weight: bold;'>$status</span>";
            echo "</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    
    // 4. Teste de conversão
    echo "<h3>🧪 Teste de Conversão tecnico_id:</h3>";
    echo "<div style='background: #e9ecef; padding: 15px; border-radius: 5px; margin: 10px 0;'>";
    echo "<p><strong>Exemplos de conversão:</strong></p>";
    echo "<ul>";
    echo "<li><code>'1'</code> → <code>CAST('1' AS UNSIGNED)</code> = <strong>1</strong></li>";
    echo "<li><code>'admin'</code> → <code>CAST('admin' AS UNSIGNED)</code> = <strong>0</strong></li>";
    echo "<li><code>'0'</code> → <code>CAST('0' AS UNSIGNED)</code> = <strong>0</strong></li>";
    echo "<li><code>''</code> (vazio) → <code>CAST('' AS UNSIGNED)</code> = <strong>0</strong></li>";
    echo "</ul>";
    echo "</div>";
    
    // 5. Busca por tecnico_id problemáticos
    echo "<h3>🔎 Viagens com tecnico_id problemáticos:</h3>";
    $stmt = $pdo->query("
        SELECT 
            v.id,
            v.tecnico_id,
            v.cliente,
            CASE 
                WHEN v.tecnico_id = '' THEN 'Vazio'
                WHEN v.tecnico_id = '0' THEN 'Zero como string'
                WHEN v.tecnico_id = 'admin' THEN 'String admin'
                WHEN v.tecnico_id REGEXP '^[0-9]+$' THEN 'Numérico válido'
                ELSE 'Outro formato'
            END as tipo_tecnico_id
        FROM viagens v
        WHERE v.tecnico_id = '' 
           OR v.tecnico_id = '0' 
           OR v.tecnico_id = 'admin'
           OR v.tecnico_id NOT REGEXP '^[0-9]+$'
        ORDER BY v.id DESC
    ");
    $problemasViagens = $stmt->fetchAll();
    
    if (empty($problemasViagens)) {
        echo "<p style='color: green;'>✅ Nenhuma viagem com tecnico_id problemático encontrada!</p>";
    } else {
        echo "<p style='color: red;'>❌ Encontradas " . count($problemasViagens) . " viagens com tecnico_id problemático:</p>";
        echo "<table style='border-collapse: collapse; width: 100%; margin: 10px 0;'>";
        echo "<tr style='background: #f8f9fa;'>";
        echo "<th style='border: 1px solid #ddd; padding: 8px;'>ID Viagem</th>";
        echo "<th style='border: 1px solid #ddd; padding: 8px;'>tecnico_id</th>";
        echo "<th style='border: 1px solid #ddd; padding: 8px;'>Tipo</th>";
        echo "<th style='border: 1px solid #ddd; padding: 8px;'>Cliente</th>";
        echo "</tr>";
        
        foreach ($problemasViagens as $p) {
            echo "<tr>";
            echo "<td style='border: 1px solid #ddd; padding: 8px;'>{$p['id']}</td>";
            echo "<td style='border: 1px solid #ddd; padding: 8px;'>";
            echo "<code style='background: #f8d7da; padding: 2px 4px; border-radius: 3px;'>" . htmlspecialchars($p['tecnico_id']) . "</code>";
            echo "</td>";
            echo "<td style='border: 1px solid #ddd; padding: 8px;'>{$p['tipo_tecnico_id']}</td>";
            echo "<td style='border: 1px solid #ddd; padding: 8px;'>{$p['cliente']}</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    
    echo "<hr style='margin: 30px 0;'>";
    echo "<h3>💡 Recomendações:</h3>";
    echo "<div style='background: #d1ecf1; border: 1px solid #bee5eb; padding: 15px; border-radius: 5px;'>";
    echo "<ol>";
    echo "<li><strong>No Android:</strong> Verificar se o <code>motoristaLogado.id</code> está correto</li>";
    echo "<li><strong>No PHP:</strong> Garantir que o <code>tecnico_id</code> seja sempre um número válido</li>";
    echo "<li><strong>No banco:</strong> Corrigir viagens com <code>tecnico_id</code> inválido</li>";
    echo "<li><strong>Na navegação:</strong> Usar o ID real do motorista logado ao invés de hardcode '1'</li>";
    echo "</ol>";
    echo "</div>";
    
} catch (Exception $e) {
    echo "<div style='background: #f8d7da; border: 1px solid #f5c6cb; color: #721c24; padding: 15px; border-radius: 5px;'>";
    echo "❌ <strong>Erro:</strong> " . $e->getMessage();
    echo "</div>";
}
?>

<style>
body {
    font-family: Arial, sans-serif;
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
    background: #f5f5f5;
}

h2, h3 {
    color: #333;
}

table {
    background: white;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

code {
    font-family: 'Courier New', monospace;
    font-size: 0.9em;
}
</style> 
