<?php
// Script para verificar dados da tabela viagens
require_once 'config/database.php';

header('Content-Type: application/json');

try {
    $pdo = conectarBanco();
    
    echo "=== VERIFICAÇÃO DADOS VIAGENS ===\n\n";
    
    // 1. Verificar estrutura da tabela viagens
    echo "1. ESTRUTURA TABELA VIAGENS:\n";
    $stmt = $pdo->query("DESCRIBE viagens");
    $colunas = $stmt->fetchAll();
    
    foreach ($colunas as $coluna) {
        if (in_array($coluna['Field'], ['tecnico_id', 'veiculo_id', 'cliente'])) {
            echo "- {$coluna['Field']}: {$coluna['Type']} {$coluna['Null']} {$coluna['Key']} {$coluna['Default']}\n";
        }
    }
    
    // 2. Verificar dados das viagens recentes
    echo "\n2. DADOS DAS VIAGENS RECENTES:\n";
    $stmt = $pdo->query("
        SELECT 
            v.id,
            v.tecnico_id,
            v.veiculo_id,
            v.cliente,
            v.data_inicio,
            v.data_fim
        FROM viagens v
        ORDER BY v.id DESC
        LIMIT 5
    ");
    $viagens = $stmt->fetchAll();
    
    foreach ($viagens as $viagem) {
        echo "- ID: {$viagem['id']}, tecnico_id: '{$viagem['tecnico_id']}', veiculo_id: '{$viagem['veiculo_id']}', cliente: '{$viagem['cliente']}'\n";
    }
    
    // 3. Verificar se tecnico_id é numérico ou string
    echo "\n3. ANÁLISE DO TIPO DE DADOS:\n";
    $stmt = $pdo->query("
        SELECT 
            v.tecnico_id,
            CASE 
                WHEN v.tecnico_id REGEXP '^[0-9]+$' THEN 'NUMÉRICO'
                ELSE 'STRING'
            END as tipo_dado,
            COUNT(*) as total
        FROM viagens v
        GROUP BY v.tecnico_id, tipo_dado
        ORDER BY total DESC
        LIMIT 10
    ");
    $analise = $stmt->fetchAll();
    
    foreach ($analise as $item) {
        echo "- tecnico_id: '{$item['tecnico_id']}' - Tipo: {$item['tipo_dado']} - Total: {$item['total']}\n";
    }
    
    // 4. Verificar motoristas disponíveis
    echo "\n4. MOTORISTAS DISPONÍVEIS:\n";
    $stmt = $pdo->query("SELECT id, nome, matricula FROM motoristas WHERE status = 'ativo' LIMIT 5");
    $motoristas = $stmt->fetchAll();
    
    foreach ($motoristas as $motorista) {
        echo "- ID: {$motorista['id']}, Nome: '{$motorista['nome']}', Matrícula: '{$motorista['matricula']}'\n";
    }
    
    // 5. Testar JOIN com diferentes abordagens
    echo "\n5. TESTE DE JOIN:\n";
    
    // Teste 1: JOIN por ID numérico
    echo "Teste 1 - JOIN por ID:\n";
    $stmt = $pdo->query("
        SELECT 
            v.id,
            v.tecnico_id,
            COALESCE(m.nome, 'NÃO ENCONTRADO') as nome_motorista
        FROM viagens v
        LEFT JOIN motoristas m ON CAST(v.tecnico_id AS UNSIGNED) = m.id
        ORDER BY v.id DESC
        LIMIT 3
    ");
    $teste1 = $stmt->fetchAll();
    
    foreach ($teste1 as $item) {
        echo "- ID: {$item['id']}, tecnico_id: '{$item['tecnico_id']}', nome: '{$item['nome_motorista']}'\n";
    }
    
    // Teste 2: JOIN por nome
    echo "\nTeste 2 - JOIN por nome:\n";
    $stmt = $pdo->query("
        SELECT 
            v.id,
            v.tecnico_id,
            COALESCE(m.nome, 'NÃO ENCONTRADO') as nome_motorista
        FROM viagens v
        LEFT JOIN motoristas m ON v.tecnico_id = m.nome
        ORDER BY v.id DESC
        LIMIT 3
    ");
    $teste2 = $stmt->fetchAll();
    
    foreach ($teste2 as $item) {
        echo "- ID: {$item['id']}, tecnico_id: '{$item['tecnico_id']}', nome: '{$item['nome_motorista']}'\n";
    }
    
    echo "\n=== FIM DA VERIFICAÇÃO ===\n";
    
} catch (Exception $e) {
    echo "❌ Erro: " . $e->getMessage() . "\n";
}
?>
