<?php
require_once 'conexao.php';

// Configurar headers para evitar cache
header('Content-Type: text/html; charset=utf-8');
header('Cache-Control: no-cache, no-store, must-revalidate');

echo "<!DOCTYPE html>";
echo "<html>";
echo "<head>";
echo "<meta charset='utf-8'>";
echo "<title>Debug Detalhado Rota #50</title>";
echo "<style>";
echo "body { font-family: Arial, sans-serif; margin: 20px; background-color: #f5f5f5; }";
echo ".container { max-width: 1200px; margin: 0 auto; background: white; padding: 20px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); }";
echo ".success { color: #28a745; font-weight: bold; }";
echo ".error { color: #dc3545; font-weight: bold; }";
echo ".warning { color: #ffc107; font-weight: bold; }";
echo ".info { color: #17a2b8; font-weight: bold; }";
echo "h1 { color: #333; border-bottom: 2px solid #007bff; padding-bottom: 10px; }";
echo "h2 { color: #555; margin-top: 30px; }";
echo "ul { background: #f8f9fa; padding: 15px; border-radius: 5px; }";
echo "li { margin: 5px 0; }";
echo ".btn { background: #007bff; color: white; padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer; text-decoration: none; display: inline-block; margin: 10px 5px; }";
echo ".btn:hover { background: #0056b3; }";
echo "table { width: 100%; border-collapse: collapse; margin: 20px 0; }";
echo "th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }";
echo "th { background-color: #f2f2f2; }";
echo ".debug { background: #f8f9fa; border: 1px solid #dee2e6; padding: 10px; margin: 10px 0; border-radius: 5px; font-family: monospace; font-size: 12px; }";
echo "</style>";
echo "</head>";
echo "<body>";

echo "<div class='container'>";
echo "<h1>🔍 DEBUG DETALHADO ROTA #50</h1>";

try {
    $pdo = conectarBanco();
    
    // 1. Verificar dados da rota 50
    echo "<h2>1. Dados da Rota #50</h2>";
    $sql = "SELECT * FROM solicitacoes_rotas WHERE id = 50";
    $stmt = $pdo->query($sql);
    $rota = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($rota) {
        echo "<p class='success'>✅ Rota encontrada</p>";
        echo "<ul>";
        echo "<li><strong>ID:</strong> {$rota['id']}</li>";
        echo "<li><strong>Título:</strong> {$rota['titulo']}</li>";
        echo "<li><strong>Status:</strong> {$rota['status']}</li>";
        echo "<li><strong>KM Estimado:</strong> {$rota['km_estimado']} km</li>";
        echo "<li><strong>KM Real:</strong> " . ($rota['km_real'] ?? 'NULL') . " km</li>";
        echo "</ul>";
    } else {
        echo "<p class='error'>❌ Rota 50 não encontrada!</p>";
        exit;
    }
    
    // 2. Verificar TODAS as viagens da rota (incluindo não finalizadas)
    echo "<h2>2. TODAS as Viagens da Rota #50</h2>";
    $sql = "SELECT rv.*, v.* FROM rota_viagens rv 
            INNER JOIN viagens v ON rv.viagem_id = v.id 
            WHERE rv.solicitacao_rota_id = 50 
            ORDER BY rv.ordem_execucao";
    $stmt = $pdo->query($sql);
    $todasViagens = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if ($todasViagens) {
        echo "<p class='success'>✅ Encontradas " . count($todasViagens) . " viagens (todas)</p>";
        
        echo "<table>";
        echo "<tr><th>Viagem ID</th><th>Cliente</th><th>Status</th><th>KM Inicial</th><th>KM Final</th><th>KM GPS Final</th><th>Data Início</th><th>Data Fim</th><th>Trajeto</th></tr>";
        
        foreach ($todasViagens as $viagem) {
            $trajeto = $viagem['trajeto'] ? json_decode($viagem['trajeto'], true) : null;
            $pontosGps = $trajeto ? count($trajeto) : 0;
            $status = $viagem['data_fim'] ? 'Finalizada' : 'Em andamento';
            
            echo "<tr>";
            echo "<td>{$viagem['viagem_id']}</td>";
            echo "<td>{$viagem['cliente']}</td>";
            echo "<td>$status</td>";
            echo "<td>{$viagem['km_inicial']}</td>";
            echo "<td>" . ($viagem['km_final'] ?? 'NULL') . "</td>";
            echo "<td>" . ($viagem['km_gps_final'] ?? 'NULL') . "</td>";
            echo "<td>{$viagem['data_inicio']}</td>";
            echo "<td>" . ($viagem['data_fim'] ?? 'NULL') . "</td>";
            echo "<td>$pontosGps pontos</td>";
            echo "</tr>";
        }
        echo "</table>";
    } else {
        echo "<p class='error'>❌ Nenhuma viagem encontrada!</p>";
        exit;
    }
    
    // 3. Testar a query corrigida diretamente
    echo "<h2>3. Testando Query Corrigida</h2>";
    
    $sqlTeste = "SELECT SUM(v.km_gps_final) as total_km_gps, 
                        SUM(v.km_final) as total_km_final,
                        COUNT(*) as total_viagens
                 FROM rota_viagens rv 
                 JOIN viagens v ON rv.viagem_id = v.id 
                 WHERE rv.solicitacao_rota_id = 50 
                 AND v.data_fim IS NOT NULL 
                 AND v.km_gps_final IS NOT NULL 
                 AND v.km_gps_final > 0";
    
    echo "<p><strong>Query:</strong></p>";
    echo "<div class='debug'>$sqlTeste</div>";
    
    $stmtTeste = $pdo->query($sqlTeste);
    $resultadoTeste = $stmtTeste->fetch(PDO::FETCH_ASSOC);
    
    echo "<h3>Resultado da Query:</h3>";
    echo "<ul>";
    echo "<li><strong>Total KM GPS:</strong> " . ($resultadoTeste['total_km_gps'] ?? 'NULL') . " metros</li>";
    echo "<li><strong>Total KM Final:</strong> " . ($resultadoTeste['total_km_final'] ?? 'NULL') . " km</li>";
    echo "<li><strong>Total Viagens:</strong> " . ($resultadoTeste['total_viagens'] ?? 'NULL') . "</li>";
    echo "</ul>";
    
    // 4. Testar endpoint diretamente
    echo "<h2>4. Testando Endpoint Diretamente</h2>";
    
    $url = "https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/api-simples-v2.php?acao=detalhes-rota-completa&id=50";
    
    echo "<p><strong>URL:</strong> <code>$url</code></p>";
    
    $context = stream_context_create([
        'http' => [
            'timeout' => 30,
            'user_agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
        ]
    ]);
    
    $response = file_get_contents($url, false, $context);
    
    if ($response === false) {
        echo "<p class='error'>❌ Erro ao acessar endpoint</p>";
    } else {
        echo "<p class='success'>✅ Endpoint acessado</p>";
        
        $data = json_decode($response, true);
        
        if ($data && $data['sucesso']) {
            $estatisticas = $data['dados']['estatisticas'];
            
            echo "<h3>Resposta do Endpoint:</h3>";
            echo "<ul>";
            echo "<li><strong>KM Planejado:</strong> {$estatisticas['km_planejado']} km</li>";
            echo "<li><strong>KM Real:</strong> {$estatisticas['km_real']} km</li>";
            echo "<li><strong>KM GPS:</strong> " . number_format($estatisticas['km_gps']) . " metros</li>";
            echo "<li><strong>KM GPS (KM):</strong> " . number_format($estatisticas['km_gps'] / 1000, 3) . " km</li>";
            echo "<li><strong>Diferença:</strong> {$estatisticas['diferenca_km']} km</li>";
            echo "<li><strong>Variação:</strong> {$estatisticas['percentual_diferenca']}%</li>";
            echo "</ul>";
            
            // Comparar com a query direta
            $kmGpsQuery = $resultadoTeste['total_km_gps'] ?? 0;
            $kmGpsEndpoint = $estatisticas['km_gps'] ?? 0;
            
            echo "<h3>Comparação:</h3>";
            echo "<ul>";
            echo "<li><strong>Query direta:</strong> " . number_format($kmGpsQuery) . " metros</li>";
            echo "<li><strong>Endpoint:</strong> " . number_format($kmGpsEndpoint) . " metros</li>";
            echo "<li><strong>Diferença:</strong> " . number_format(abs($kmGpsQuery - $kmGpsEndpoint)) . " metros</li>";
            echo "</ul>";
            
            if (abs($kmGpsQuery - $kmGpsEndpoint) < 1) {
                echo "<p class='success'>✅ Valores idênticos!</p>";
            } else {
                echo "<p class='error'>❌ Valores diferentes!</p>";
            }
            
        } else {
            echo "<p class='error'>❌ Erro no endpoint: " . ($data['mensagem'] ?? 'Erro desconhecido') . "</p>";
            echo "<div class='debug'>Resposta completa: " . htmlspecialchars($response) . "</div>";
        }
    }
    
    // 5. Verificar se há cache ou problema de sincronização
    echo "<h2>5. Verificar Cache e Sincronização</h2>";
    
    // Testar com parâmetro de cache
    $urlSemCache = $url . "&_t=" . time();
    echo "<p><strong>URL sem cache:</strong> <code>$urlSemCache</code></p>";
    
    $responseSemCache = file_get_contents($urlSemCache, false, $context);
    
    if ($responseSemCache !== false) {
        $dataSemCache = json_decode($responseSemCache, true);
        
        if ($dataSemCache && $dataSemCache['sucesso']) {
            $estatisticasSemCache = $dataSemCache['dados']['estatisticas'];
            
            echo "<h3>Resposta sem cache:</h3>";
            echo "<ul>";
            echo "<li><strong>KM GPS:</strong> " . number_format($estatisticasSemCache['km_gps']) . " metros</li>";
            echo "<li><strong>KM GPS (KM):</strong> " . number_format($estatisticasSemCache['km_gps'] / 1000, 3) . " km</li>";
            echo "</ul>";
            
            // Comparar com resposta anterior
            $kmGpsAnterior = $estatisticas['km_gps'] ?? 0;
            $kmGpsSemCache = $estatisticasSemCache['km_gps'] ?? 0;
            
            if (abs($kmGpsAnterior - $kmGpsSemCache) < 1) {
                echo "<p class='success'>✅ Respostas idênticas (sem problema de cache)</p>";
            } else {
                echo "<p class='warning'>⚠️ Respostas diferentes (possível problema de cache)</p>";
            }
        }
    }
    
    // 6. Verificar se o problema está no dashboard
    echo "<h2>6. Verificar Dashboard</h2>";
    
    echo "<p>O problema pode estar no dashboard que não está recarregando os dados.</p>";
    echo "<p><strong>Soluções:</strong></p>";
    echo "<ol>";
    echo "<li><strong>Limpar cache do navegador</strong> (Ctrl+F5)</li>";
    echo "<li><strong>Verificar se o dashboard está usando a versão correta da API</strong></li>";
    echo "<li><strong>Testar em modo incógnito</strong></li>";
    echo "</ol>";
    
    echo "<p><a href='https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/admin/dashboard.html' target='_blank' class='btn'>🔗 Abrir Dashboard</a></p>";
    
    echo "<p><a href='javascript:history.back()' class='btn'>Voltar</a></p>";
    
} catch (Exception $e) {
    echo "<p class='error'>❌ Erro: " . htmlspecialchars($e->getMessage()) . "</p>";
    echo "<p><a href='javascript:history.back()' class='btn'>Voltar</a></p>";
}

echo "</div>";
echo "</body>";
echo "</html>";
?>
