<?php
/**
 * Verificação de Diferenças GPS - Banco vs API
 * Compara dados diretos do banco com dados retornados pela API
 */

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

echo "<h1>🔍 Verificação GPS - Banco vs API</h1>";

$viagemId = $_GET['id'] ?? 69;

echo "<h3>Viagem ID: $viagemId</h3>";

// Conectar ao banco
try {
    $pdo = new PDO(
        "mysql:host=localhost;dbname=pinheir3_controle_frotasV1.1;charset=utf8mb4",
        "pinheir3",
        "080880Gelboy",
        [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
    );
    
    echo "<h4>📊 1. DADOS DIRETO DO BANCO</h4>";
    
    // Buscar dados diretos da tabela rastreamento_tempo_real
    $sql = "SELECT 
                id, viagem_id, latitude, longitude, velocidade, 
                timestamp, precisao, altitude, battery_level 
            FROM rastreamento_tempo_real 
            WHERE viagem_id = ? 
            ORDER BY timestamp ASC";
    
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$viagemId]);
    $pontosBanco = $stmt->fetchAll();
    
    echo "<p><strong>Total de pontos no banco:</strong> " . count($pontosBanco) . "</p>";
    
    if (count($pontosBanco) > 0) {
        echo "<h5>🟢 PRIMEIRO ponto (banco):</h5>";
        $primeiro = $pontosBanco[0];
        echo "<ul>";
        echo "<li><strong>ID:</strong> {$primeiro['id']}</li>";
        echo "<li><strong>Coords:</strong> ({$primeiro['latitude']}, {$primeiro['longitude']})</li>";
        echo "<li><strong>Timestamp:</strong> {$primeiro['timestamp']}</li>";
        echo "<li><strong>Velocidade:</strong> {$primeiro['velocidade']} km/h</li>";
        echo "</ul>";
        
        echo "<h5>🔴 ÚLTIMO ponto (banco):</h5>";
        $ultimo = $pontosBanco[count($pontosBanco) - 1];
        echo "<ul>";
        echo "<li><strong>ID:</strong> {$ultimo['id']}</li>";
        echo "<li><strong>Coords:</strong> ({$ultimo['latitude']}, {$ultimo['longitude']})</li>";
        echo "<li><strong>Timestamp:</strong> {$ultimo['timestamp']}</li>";
        echo "<li><strong>Velocidade:</strong> {$ultimo['velocidade']} km/h</li>";
        echo "</ul>";
    }
    
    echo "<h4>📡 2. DADOS DA API</h4>";
    
    // Buscar dados da API
    $apiUrl = "https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/api-simples-v2.php?acao=viagem&id=$viagemId";
    
    $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>Total de pontos da API:</strong> " . count($pontosAPI) . "</p>";
            
            if (count($pontosAPI) > 0) {
                echo "<h5>🟢 PRIMEIRO ponto (API):</h5>";
                $primeiroAPI = $pontosAPI[0];
                echo "<ul>";
                echo "<li><strong>Coords:</strong> ({$primeiroAPI['latitude']}, {$primeiroAPI['longitude']})</li>";
                echo "<li><strong>Timestamp:</strong> {$primeiroAPI['timestamp']}</li>";
                echo "<li><strong>Velocidade:</strong> {$primeiroAPI['velocidade']} km/h</li>";
                echo "</ul>";
                
                echo "<h5>🔴 ÚLTIMO ponto (API):</h5>";
                $ultimoAPI = $pontosAPI[count($pontosAPI) - 1];
                echo "<ul>";
                echo "<li><strong>Coords:</strong> ({$ultimoAPI['latitude']}, {$ultimoAPI['longitude']})</li>";
                echo "<li><strong>Timestamp:</strong> {$ultimoAPI['timestamp']}</li>";
                echo "<li><strong>Velocidade:</strong> {$ultimoAPI['velocidade']} km/h</li>";
                echo "</ul>";
                
                echo "<h4>⚖️ 3. COMPARAÇÃO</h4>";
                
                // Comparar primeiro ponto
                echo "<h5>Primeiro Ponto:</h5>";
                $latDiff1 = abs(floatval($primeiro['latitude']) - floatval($primeiroAPI['latitude']));
                $lngDiff1 = abs(floatval($primeiro['longitude']) - floatval($primeiroAPI['longitude']));
                
                echo "<table border='1' style='border-collapse: collapse;'>";
                echo "<tr><th>Fonte</th><th>Latitude</th><th>Longitude</th><th>Timestamp</th></tr>";
                echo "<tr><td>Banco</td><td>{$primeiro['latitude']}</td><td>{$primeiro['longitude']}</td><td>{$primeiro['timestamp']}</td></tr>";
                echo "<tr><td>API</td><td>{$primeiroAPI['latitude']}</td><td>{$primeiroAPI['longitude']}</td><td>{$primeiroAPI['timestamp']}</td></tr>";
                echo "<tr><td><strong>Diferença</strong></td><td>{$latDiff1}</td><td>{$lngDiff1}</td><td>-</td></tr>";
                echo "</table>";
                
                if ($latDiff1 < 0.000001 && $lngDiff1 < 0.000001) {
                    echo "<p style='color: green;'>✅ Primeiro ponto: IDÊNTICO</p>";
                } else {
                    echo "<p style='color: red;'>❌ Primeiro ponto: DIFERENTE</p>";
                }
                
                // Comparar último ponto
                echo "<h5>Último Ponto:</h5>";
                $latDiff2 = abs(floatval($ultimo['latitude']) - floatval($ultimoAPI['latitude']));
                $lngDiff2 = abs(floatval($ultimo['longitude']) - floatval($ultimoAPI['longitude']));
                
                echo "<table border='1' style='border-collapse: collapse;'>";
                echo "<tr><th>Fonte</th><th>Latitude</th><th>Longitude</th><th>Timestamp</th></tr>";
                echo "<tr><td>Banco</td><td>{$ultimo['latitude']}</td><td>{$ultimo['longitude']}</td><td>{$ultimo['timestamp']}</td></tr>";
                echo "<tr><td>API</td><td>{$ultimoAPI['latitude']}</td><td>{$ultimoAPI['longitude']}</td><td>{$ultimoAPI['timestamp']}</td></tr>";
                echo "<tr><td><strong>Diferença</strong></td><td>{$latDiff2}</td><td>{$lngDiff2}</td><td>-</td></tr>";
                echo "</table>";
                
                if ($latDiff2 < 0.000001 && $lngDiff2 < 0.000001) {
                    echo "<p style='color: green;'>✅ Último ponto: IDÊNTICO</p>";
                } else {
                    echo "<p style='color: red;'>❌ Último ponto: DIFERENTE</p>";
                }
                
                // Verificar se a quantidade é igual
                if (count($pontosBanco) === count($pontosAPI)) {
                    echo "<p style='color: green;'>✅ Quantidade de pontos: IGUAL (" . count($pontosBanco) . ")</p>";
                } else {
                    echo "<p style='color: red;'>❌ Quantidade de pontos: DIFERENTE</p>";
                    echo "<ul>";
                    echo "<li>Banco: " . count($pontosBanco) . " pontos</li>";
                    echo "<li>API: " . count($pontosAPI) . " pontos</li>";
                    echo "</ul>";
                }
                
                echo "<h4>📋 4. TABELA COMPLETA - Últimos 10 pontos</h4>";
                
                echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
                echo "<tr style='background: #f0f0f0;'>";
                echo "<th>Ordem</th><th>Banco Lat</th><th>Banco Lng</th><th>Banco Time</th>";
                echo "<th>API Lat</th><th>API Lng</th><th>API Time</th><th>Match?</th>";
                echo "</tr>";
                
                $mostrar = min(10, count($pontosBanco), count($pontosAPI));
                $offset = max(0, count($pontosBanco) - $mostrar);
                
                for ($i = 0; $i < $mostrar; $i++) {
                    $idx = $offset + $i;
                    $banco = $pontosBanco[$idx] ?? null;
                    $api = $pontosAPI[$idx] ?? null;
                    
                    $match = false;
                    if ($banco && $api) {
                        $latMatch = abs(floatval($banco['latitude']) - floatval($api['latitude'])) < 0.000001;
                        $lngMatch = abs(floatval($banco['longitude']) - floatval($api['longitude'])) < 0.000001;
                        $match = $latMatch && $lngMatch;
                    }
                    
                    $color = $match ? '#e8f5e8' : '#f8e8e8';
                    echo "<tr style='background: $color;'>";
                    echo "<td>" . ($idx + 1) . "</td>";
                    echo "<td>" . ($banco['latitude'] ?? 'N/A') . "</td>";
                    echo "<td>" . ($banco['longitude'] ?? 'N/A') . "</td>";
                    echo "<td>" . ($banco['timestamp'] ?? 'N/A') . "</td>";
                    echo "<td>" . ($api['latitude'] ?? 'N/A') . "</td>";
                    echo "<td>" . ($api['longitude'] ?? 'N/A') . "</td>";
                    echo "<td>" . ($api['timestamp'] ?? 'N/A') . "</td>";
                    echo "<td>" . ($match ? '✅' : '❌') . "</td>";
                    echo "</tr>";
                }
                echo "</table>";
            }
        } else {
            echo "<p style='color: red;'>❌ Erro na API: " . ($dadosAPI['mensagem'] ?? 'Resposta inválida') . "</p>";
        }
    } else {
        echo "<p style='color: red;'>❌ Erro ao conectar com a API (HTTP $httpCode)</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>";
?> 
