<?php
require_once 'conexao.php';

echo "<h2>🔍 Verificando dados da Rota #48 na API do Dashboard</h2>";

try {
    // 1. Verificar dados diretos no banco
    echo "<h3>1. Dados diretos no banco (viagens da rota #48):</h3>";
    
    $sqlViagens = "SELECT v.id, v.cliente, v.km_inicial, v.km_final, v.km_gps_final 
                   FROM viagens v 
                   INNER JOIN rota_viagens rv ON v.id = rv.viagem_id 
                   WHERE rv.solicitacao_rota_id = 48
                   ORDER BY v.id";
    
    $stmt = $pdo->prepare($sqlViagens);
    $stmt->execute();
    $viagens = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
    echo "<tr style='background-color: #f0f0f0;'>";
    echo "<th>ID</th><th>Cliente</th><th>KM Inicial</th><th>KM Final</th><th>KM GPS Final (m)</th>";
    echo "</tr>";
    
    foreach ($viagens as $viagem) {
        echo "<tr>";
        echo "<td>{$viagem['id']}</td>";
        echo "<td>{$viagem['cliente']}</td>";
        echo "<td>{$viagem['km_inicial']}</td>";
        echo "<td>{$viagem['km_final']}</td>";
        echo "<td><strong>{$viagem['km_gps_final']}</strong></td>";
        echo "</tr>";
    }
    echo "</table>";
    
    // 2. Verificar dados da rota
    echo "<h3>2. Dados da rota #48:</h3>";
    
    $sqlRota = "SELECT sr.*, 
                       (SELECT MIN(v.km_inicial) FROM viagens v INNER JOIN rota_viagens rv ON v.id = rv.viagem_id WHERE rv.solicitacao_rota_id = sr.id) as km_inicial_calculado,
                       (SELECT MAX(v.km_final) FROM viagens v INNER JOIN rota_viagens rv ON v.id = rv.viagem_id WHERE rv.solicitacao_rota_id = sr.id) as km_final_calculado,
                       (SELECT AVG(v.km_gps_final) FROM viagens v INNER JOIN rota_viagens rv ON v.id = rv.viagem_id WHERE rv.solicitacao_rota_id = sr.id) as km_gps_medio
                FROM solicitacoes_rotas sr 
                WHERE sr.id = 48";
    
    $stmt = $pdo->prepare($sqlRota);
    $stmt->execute();
    $rota = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($rota) {
        echo "<div style='background: #f8f9fa; padding: 15px; border-radius: 5px;'>";
        echo "<p><strong>Rota ID:</strong> {$rota['id']}</p>";
        echo "<p><strong>Título:</strong> {$rota['titulo']}</p>";
        echo "<p><strong>Status:</strong> {$rota['status']}</p>";
        echo "<p><strong>Data Início Real:</strong> {$rota['data_inicio_real']}</p>";
        echo "<p><strong>Data Fim Real:</strong> {$rota['data_fim_real']}</p>";
        echo "<p><strong>KM Real:</strong> {$rota['km_real']}</p>";
        echo "<p><strong>KM Inicial Calculado:</strong> {$rota['km_inicial_calculado']}</p>";
        echo "<p><strong>KM Final Calculado:</strong> {$rota['km_final_calculado']}</p>";
        echo "<p><strong>KM GPS Médio:</strong> {$rota['km_gps_medio']}</p>";
        echo "</div>";
    }
    
    // 3. Simular a query da API do dashboard
    echo "<h3>3. Simulando query da API do dashboard:</h3>";
    
    $sqlDashboard = "
        SELECT 
            sr.id as id,
            sr.titulo as cliente,
            sr.descricao as motivo,
            sr.motorista_id as tecnico_id,
            sr.veiculo_id,
            (SELECT MIN(v.km_inicial) FROM viagens v INNER JOIN rota_viagens rv ON v.id = rv.viagem_id WHERE rv.solicitacao_rota_id = sr.id) as km_inicial,
            (SELECT MAX(v.km_final) FROM viagens v INNER JOIN rota_viagens rv ON v.id = rv.viagem_id WHERE rv.solicitacao_rota_id = sr.id) as km_final,
            CASE 
                WHEN sr.data_fim_real IS NOT NULL THEN COALESCE(sr.km_real, 0)
                ELSE NULL 
            END as km_gps_final,
            sr.data_inicio_real as data_inicio,
            sr.data_fim_real as data_fim,
            NULL as latitude_inicial,
            NULL as longitude_inicial,
            NULL as latitude_final,
            NULL as longitude_final,
            'Múltiplos endereços' as endereco_inicial,
            'Múltiplos endereços' as endereco_final,
            sr.observacoes_finais as observacoes,
            sr.justificativa_km as justificativa_divergencia,
            sr.km_estimado as km_planejado,
            sr.diferenca_km_calculada,
            COALESCE(m.nome, 'Motorista não identificado') as tecnico_nome,
            COALESCE(m.matricula, 'N/A') as tecnico_matricula,
            COALESCE(ve.modelo, 'Veículo não identificado') as veiculo_nome,
            COALESCE(ve.placa, 'N/A') as veiculo_placa,
            CONCAT(COALESCE(ve.modelo, 'Veículo não identificado'), ' - ', COALESCE(ve.placa, 'N/A')) as veiculo_completo,
            'rota' as tipo,
            sr.id as rota_id,
            CASE 
                WHEN sr.data_fim_real IS NOT NULL THEN COALESCE(sr.km_real, 0)
                ELSE NULL 
            END as distancia_total,
            CASE 
                WHEN sr.data_fim_real IS NOT NULL THEN COALESCE(sr.km_real, 0)
                ELSE NULL 
            END as km_gps_final,
            CASE 
                WHEN sr.data_fim_real IS NOT NULL THEN 'concluida'
                WHEN sr.data_inicio_real IS NOT NULL THEN 'em_andamento'
                ELSE sr.status
            END as rota_status
        FROM solicitacoes_rotas sr
        LEFT JOIN motoristas m ON sr.motorista_id = m.id
        LEFT JOIN veiculos ve ON sr.veiculo_id = ve.id
        WHERE sr.id = 48";
    
    $stmt = $pdo->prepare($sqlDashboard);
    $stmt->execute();
    $dadosDashboard = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($dadosDashboard) {
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr style='background-color: #f0f0f0;'>";
        echo "<th>Campo</th><th>Valor</th>";
        echo "</tr>";
        
        $camposImportantes = [
            'id', 'cliente', 'km_inicial', 'km_final', 'km_gps_final', 
            'distancia_total', 'data_inicio', 'data_fim', 'rota_status'
        ];
        
        foreach ($camposImportantes as $campo) {
            $valor = $dadosDashboard[$campo];
            $cor = ($campo == 'km_gps_final' && $valor == 2) ? 'red' : 'black';
            echo "<tr>";
            echo "<td><strong>$campo</strong></td>";
            echo "<td style='color: $cor;'>$valor</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    
    // 4. Problema identificado!
    echo "<h3>🔍 PROBLEMA IDENTIFICADO!</h3>";
    echo "<div style='background: #fff3cd; padding: 15px; border-radius: 5px; border-left: 4px solid #ffc107;'>";
    echo "<p><strong>❌ O problema está na API do dashboard!</strong></p>";
    echo "<p>A API está usando <code>sr.km_real</code> em vez de <code>v.km_gps_final</code> para rotas.</p>";
    echo "<p>• <strong>km_gps_final das viagens:</strong> 164 metros (correto)</p>";
    echo "<p>• <strong>km_real da rota:</strong> 2 metros (incorreto)</p>";
    echo "</div>";
    
    // 5. Solução
    echo "<h3>🔧 SOLUÇÃO:</h3>";
    echo "<p>Precisamos corrigir a API para usar o KM GPS das viagens em vez do km_real da rota.</p>";
    
} catch (Exception $e) {
    echo "<h3 style='color: red;'>❌ Erro: " . $e->getMessage() . "</h3>";
}
?>
