<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

require_once 'config/bootstrap.php';

echo "🧪 TESTE DA NOVA CORREÇÃO DE IDS\n";
echo "=================================\n\n";

try {
    $pdo = $db->getConnection();
    
    // Buscar viagens de hoje
    echo "📅 Buscando viagens de hoje...\n";
    $stmt = $pdo->prepare("
        SELECT v.id, v.veiculo_id, v.motorista_id, v.data_inicio, v.data_fim, 
               m.nome as motorista_nome,
               vei.placa as veiculo_placa
        FROM viagens v
        LEFT JOIN motoristas m ON v.motorista_id = m.id  
        LEFT JOIN veiculos vei ON v.veiculo_id = vei.id
        WHERE DATE(v.data_inicio) = CURDATE()
        ORDER BY v.data_inicio DESC
        LIMIT 5
    ");
    $stmt->execute();
    $viagens = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if (empty($viagens)) {
        echo "❌ Nenhuma viagem encontrada para hoje\n";
        exit;
    }
    
    echo "✅ Encontradas " . count($viagens) . " viagens:\n";
    foreach ($viagens as $viagem) {
        echo "   - ID: {$viagem['id']}, Veículo: {$viagem['veiculo_placa']}, Motorista: {$viagem['motorista_nome']}\n";
    }
    
    echo "\n📋 Buscando checklists relacionados...\n";
    
    // Buscar checklists de hoje
    $stmt = $pdo->prepare("
        SELECT cv.id, cv.viagem_id, cv.veiculo_id, cv.data_hora, cv.tipo_veiculo,
               v.id as viagem_real_id, v.data_inicio,
               CASE 
                   WHEN v.id IS NULL THEN 'VIAGEM NÃO EXISTE'
                   WHEN cv.viagem_id = v.id THEN 'ID CORRETO'
                   ELSE 'ID INCORRETO'
               END as status_id
        FROM checklist_veiculo cv
        LEFT JOIN viagens v ON cv.viagem_id = v.id
        WHERE DATE(cv.data_hora) = CURDATE()
        ORDER BY cv.data_hora DESC
        LIMIT 10
    ");
    $stmt->execute();
    $checklists = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if (empty($checklists)) {
        echo "❌ Nenhum checklist encontrado para hoje\n";
    } else {
        echo "✅ Encontrados " . count($checklists) . " checklists:\n";
        foreach ($checklists as $checklist) {
            $status = $checklist['status_id'];
            $emoji = ($status == 'ID CORRETO') ? '✅' : '❌';
            
            echo "   {$emoji} Checklist ID: {$checklist['id']}\n";
            echo "      - Viagem ID: {$checklist['viagem_id']}\n";
            echo "      - Veículo ID: {$checklist['veiculo_id']}\n";
            echo "      - Status: {$status}\n";
            echo "      - Data: {$checklist['data_hora']}\n";
            
            if ($checklist['viagem_real_id']) {
                echo "      - Viagem Real: {$checklist['viagem_real_id']}\n";
            }
            echo "\n";
        }
    }
    
    echo "\n🔍 VERIFICAÇÃO DETALHADA\n";
    echo "========================\n";
    
    // Verificar se há IDs incorretos
    $stmt = $pdo->prepare("
        SELECT cv.id, cv.viagem_id, cv.veiculo_id, cv.data_hora,
               v.id as viagem_existe,
               (SELECT v2.id FROM viagens v2 WHERE v2.veiculo_id = cv.veiculo_id AND DATE(v2.data_inicio) = DATE(cv.data_hora) LIMIT 1) as viagem_correta
        FROM checklist_veiculo cv
        LEFT JOIN viagens v ON cv.viagem_id = v.id
        WHERE DATE(cv.data_hora) = CURDATE()
        AND v.id IS NULL
    ");
    $stmt->execute();
    $problemasIds = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if (!empty($problemasIds)) {
        echo "❌ PROBLEMAS DE IDS ENCONTRADOS:\n";
        foreach ($problemasIds as $problema) {
            echo "   - Checklist ID: {$problema['id']}\n";
            echo "     Viagem ID inválida: {$problema['viagem_id']}\n";
            echo "     Viagem correta seria: {$problema['viagem_correta']}\n";
            echo "     Veículo: {$problema['veiculo_id']}\n";
            echo "     Data: {$problema['data_hora']}\n\n";
        }
    } else {
        echo "✅ Nenhum problema de ID encontrado!\n";
    }
    
    echo "\n📊 RESUMO\n";
    echo "=========\n";
    echo "✅ Viagens hoje: " . count($viagens) . "\n";
    echo "✅ Checklists hoje: " . count($checklists) . "\n";
    echo "❌ IDs incorretos: " . count($problemasIds) . "\n";
    
    if (count($problemasIds) == 0) {
        echo "\n🎉 PARABÉNS! A correção está funcionando!\n";
    } else {
        echo "\n⚠️  Ainda há problemas que precisam ser corrigidos.\n";
    }
    
} catch (Exception $e) {
    echo "❌ Erro: " . $e->getMessage() . "\n";
}
?> 
