<?php
/**
 * Debug específico da Viagem 69
 * Verificar de onde vêm os 57 pontos GPS
 */

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

echo "<h1>🔍 Debug Viagem 69 - Origem dos 57 pontos</h1>";

try {
    $pdo = new PDO(
        "mysql:host=localhost;dbname=pinheir3_controle_frotasV1.1;charset=utf8mb4",
        "pinheir3",
        "080880Gelboy",
        [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
    );
    
    echo "<h3>📋 1. CONTAGEM POR TABELA</h3>";
    
    // Verificar quantos registros existem na tabela rastreamento_tempo_real
    $sql = "SELECT COUNT(*) as total FROM rastreamento_tempo_real WHERE viagem_id = 69";
    $stmt = $pdo->query($sql);
    $count = $stmt->fetch()['total'];
    echo "<p><strong>rastreamento_tempo_real:</strong> $count registros</p>";
    
    // Verificar se existe tabela trajeto_pontos
    $stmt = $pdo->query("SHOW TABLES LIKE 'trajeto_pontos'");
    if ($stmt->fetch()) {
        $sql = "SELECT COUNT(*) as total FROM trajeto_pontos WHERE viagem_id = 69";
        $stmt = $pdo->query($sql);
        $count2 = $stmt->fetch()['total'];
        echo "<p><strong>trajeto_pontos:</strong> $count2 registros</p>";
    } else {
        echo "<p><strong>trajeto_pontos:</strong> Tabela não existe</p>";
    }
    
    // Verificar se há dados no campo trajeto da tabela viagens
    $sql = "SELECT trajeto FROM viagens WHERE id = 69";
    $stmt = $pdo->query($sql);
    $trajeto = $stmt->fetch()['trajeto'];
    if ($trajeto) {
        $trajetoDecoded = json_decode($trajeto, true);
        $pontosTrajeto = is_array($trajetoDecoded) ? count($trajetoDecoded) : 0;
        echo "<p><strong>viagens.trajeto (JSON):</strong> $pontosTrajeto pontos</p>";
    } else {
        echo "<p><strong>viagens.trajeto (JSON):</strong> Vazio</p>";
    }
    
    echo "<h3>📊 2. DADOS REAIS DA TABELA rastreamento_tempo_real</h3>";
    
    $sql = "
        SELECT 
            id, viagem_id, latitude, longitude, velocidade, 
            timestamp, precisao, altitude, battery_level 
        FROM rastreamento_tempo_real 
        WHERE viagem_id = 69 
        ORDER BY timestamp ASC
    ";
    
    $stmt = $pdo->query($sql);
    $pontos = $stmt->fetchAll();
    
    echo "<p><strong>Total encontrado:</strong> " . count($pontos) . " pontos</p>";
    
    if (count($pontos) > 0) {
        echo "<h4>🟢 Primeiro ponto:</h4>";
        $p = $pontos[0];
        echo "<ul>";
        echo "<li>ID: {$p['id']}</li>";
        echo "<li>Coords: ({$p['latitude']}, {$p['longitude']})</li>";
        echo "<li>Timestamp: {$p['timestamp']}</li>";
        echo "<li>Velocidade: {$p['velocidade']} km/h</li>";
        echo "</ul>";
        
        echo "<h4>🔴 Último ponto:</h4>";
        $p = $pontos[count($pontos) - 1];
        echo "<ul>";
        echo "<li>ID: {$p['id']}</li>";
        echo "<li>Coords: ({$p['latitude']}, {$p['longitude']})</li>";
        echo "<li>Timestamp: {$p['timestamp']}</li>";
        echo "<li>Velocidade: {$p['velocidade']} km/h</li>";
        echo "</ul>";
        
        echo "<h4>📋 Todos os pontos:</h4>";
        echo "<table border='1' style='border-collapse: collapse; width: 100%; font-size: 12px;'>";
        echo "<tr style='background: #f0f0f0;'>";
        echo "<th>ID</th><th>Latitude</th><th>Longitude</th><th>Timestamp</th><th>Velocidade</th><th>Precisão</th>";
        echo "</tr>";
        
        foreach ($pontos as $p) {
            echo "<tr>";
            echo "<td>{$p['id']}</td>";
            echo "<td>{$p['latitude']}</td>";
            echo "<td>{$p['longitude']}</td>";
            echo "<td>{$p['timestamp']}</td>";
            echo "<td>{$p['velocidade']}</td>";
            echo "<td>{$p['precisao']}</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    
    echo "<h3>🔍 3. SIMULAÇÃO DA CONSULTA DA API</h3>";
    
    // Executar exatamente a mesma consulta que a API usa
    $stmtTrajeto = $pdo->prepare("
        SELECT 
            latitude, 
            longitude, 
            velocidade, 
            timestamp,
            precisao
        FROM rastreamento_tempo_real 
        WHERE viagem_id = ? 
        ORDER BY timestamp ASC
    ");
    $stmtTrajeto->execute([69]);
    $trajetoAPI = $stmtTrajeto->fetchAll();
    
    echo "<p><strong>API retornaria:</strong> " . count($trajetoAPI) . " pontos</p>";
    
    if (count($trajetoAPI) !== count($pontos)) {
        echo "<p style='color: red;'>❌ INCONSISTÊNCIA! Consulta da API retorna quantidade diferente!</p>";
    } else {
        echo "<p style='color: green;'>✅ Consulta da API consistente com dados reais</p>";
    }
    
    echo "<h3>🌐 4. TESTE DA API REAL</h3>";
    
    $apiUrl = "https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/api-simples-v2.php?acao=viagem&id=69";
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $apiUrl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    
    if ($response && $httpCode === 200) {
        $dadosAPI = json_decode($response, true);
        
        if ($dadosAPI && $dadosAPI['sucesso']) {
            $viagem = $dadosAPI['dados'];
            $pontosAPI = $viagem['trajeto_gps'] ?? [];
            
            echo "<p><strong>API retorna:</strong> " . count($pontosAPI) . " pontos</p>";
            
            if (count($pontosAPI) > count($pontos)) {
                echo "<p style='color: red;'>🚨 API RETORNA MAIS PONTOS QUE O BANCO!</p>";
                echo "<p>Diferença: " . (count($pontosAPI) - count($pontos)) . " pontos extras</p>";
                
                echo "<h4>❓ Possíveis causas:</h4>";
                echo "<ul>";
                echo "<li>Cache desatualizado</li>";
                echo "<li>Dados duplicados na tabela</li>";
                echo "<li>API consultando múltiplas fontes</li>";
                echo "<li>Problema na conexão/consulta</li>";
                echo "</ul>";
                
                if (count($pontosAPI) > 0) {
                    echo "<h5>🔴 ÚLTIMO ponto da API (que deveria bater com banco):</h5>";
                    $ultimoAPI = $pontosAPI[count($pontosAPI) - 1];
                    echo "<ul>";
                    echo "<li>Coords: ({$ultimoAPI['latitude']}, {$ultimoAPI['longitude']})</li>";
                    echo "<li>Timestamp: {$ultimoAPI['timestamp']}</li>";
                    echo "<li>Velocidade: {$ultimoAPI['velocidade']} km/h</li>";
                    echo "</ul>";
                }
            } else {
                echo "<p style='color: green;'>✅ Quantidade de pontos da API bate com o banco</p>";
            }
        }
    }
    
    echo "<h3>🔧 5. VERIFICAÇÕES ADICIONAIS</h3>";
    
    // Verificar se há registros duplicados
    $sql = "
        SELECT 
            latitude, longitude, timestamp, COUNT(*) as duplicatas
        FROM rastreamento_tempo_real 
        WHERE viagem_id = 69 
        GROUP BY latitude, longitude, timestamp
        HAVING COUNT(*) > 1
    ";
    
    $stmt = $pdo->query($sql);
    $duplicados = $stmt->fetchAll();
    
    if (count($duplicados) > 0) {
        echo "<p style='color: orange;'>⚠️ Encontrados " . count($duplicados) . " registros duplicados!</p>";
        foreach ($duplicados as $dup) {
            echo "<p>Duplicado: ({$dup['latitude']}, {$dup['longitude']}) - {$dup['timestamp']} ({$dup['duplicatas']}x)</p>";
        }
    } else {
        echo "<p style='color: green;'>✅ Não há registros duplicados</p>";
    }
    
    // Verificar conexões ativas ou locks
    $stmt = $pdo->query("SHOW PROCESSLIST");
    $processos = $stmt->fetchAll();
    $conexoesAracaju = 0;
    
    foreach ($processos as $proc) {
        if (strpos($proc['Info'], 'rastreamento_tempo_real') !== false) {
            $conexoesAracaju++;
        }
    }
    
    echo "<p><strong>Conexões ativas na tabela:</strong> $conexoesAracaju</p>";
    
} catch (Exception $e) {
    echo "<p style='color: red;'>❌ Erro: " . $e->getMessage() . "</p>";
}

echo "<hr>";
echo "<p><a href='teste-viagem-69.html'>🔙 Voltar ao teste do mapa</a></p>";
echo "<p><a href='verificar-diferenca-gps.php'>🔍 Ver comparação detalhada</a></p>";
?> 
