<?php
header('Content-Type: text/html; charset=utf-8');
require_once 'config/database.php';

echo "<h1>🔍 Diagnóstico da Viagem ID 258</h1>";

try {
    $pdo = conectarBanco();
    
    // 1. Verificar dados da viagem 258
    echo "<h2>📋 Dados da Viagem ID 258</h2>";
    $sql = "SELECT * FROM viagens WHERE id = 258";
    $stmt = $pdo->query($sql);
    $viagem = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($viagem) {
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr><th>Campo</th><th>Valor</th></tr>";
        foreach ($viagem as $campo => $valor) {
            echo "<tr>";
            echo "<td><strong>$campo</strong></td>";
            echo "<td>" . ($valor ?: 'NULL') . "</td>";
            echo "</tr>";
        }
        echo "</table>";
    } else {
        echo "<p>❌ Viagem ID 258 não encontrada!</p>";
    }
    
    // 2. Verificar pontos GPS na rastreamento_tempo_real
    echo "<h2>📍 Pontos GPS na rastreamento_tempo_real</h2>";
    $sql = "SELECT COUNT(*) as total FROM rastreamento_tempo_real WHERE viagem_id = 258";
    $stmt = $pdo->query($sql);
    $total = $stmt->fetch(PDO::FETCH_ASSOC)['total'];
    
    echo "<p><strong>Total de pontos GPS para viagem 258:</strong> $total</p>";
    
    if ($total > 0) {
        $sql = "SELECT * FROM rastreamento_tempo_real WHERE viagem_id = 258 ORDER BY timestamp DESC LIMIT 5";
        $stmt = $pdo->query($sql);
        $pontos = $stmt->fetchAll(PDO::FETCH_ASSOC);
        
        echo "<h3>Últimos 5 pontos:</h3>";
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr><th>ID</th><th>Latitude</th><th>Longitude</th><th>Velocidade</th><th>Timestamp</th></tr>";
        
        foreach ($pontos as $ponto) {
            echo "<tr>";
            echo "<td>{$ponto['id']}</td>";
            echo "<td>{$ponto['latitude']}</td>";
            echo "<td>{$ponto['longitude']}</td>";
            echo "<td>{$ponto['velocidade']}</td>";
            echo "<td>{$ponto['timestamp']}</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    
    // 3. Verificar se a API atualizar-posicao está funcionando
    echo "<h2>🔌 Teste da API atualizar-posicao</h2>";
    
    $url = 'https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/api-simples-v2.php';
    $data = [
        'action' => 'atualizar-posicao',
        'viagem_id' => '258',
        'latitude' => '-10.123456',
        'longitude' => '-48.123456',
        'velocidade' => '25.5',
        'precisao' => '10.0',
        'altitude' => '100.0',
        'battery_level' => '85',
        'timestamp' => date('Y-m-d H:i:s')
    ];
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    
    echo "<p><strong>HTTP Code:</strong> $httpCode</p>";
    echo "<p><strong>Resposta da API:</strong></p>";
    echo "<pre>" . htmlspecialchars($response) . "</pre>";
    
    // 4. Verificar se o ponto foi salvo
    echo "<h2>✅ Verificar se o ponto teste foi salvo</h2>";
    $sql = "SELECT COUNT(*) as total FROM rastreamento_tempo_real WHERE viagem_id = 258";
    $stmt = $pdo->query($sql);
    $totalApos = $stmt->fetch(PDO::FETCH_ASSOC)['total'];
    
    echo "<p><strong>Total de pontos após teste:</strong> $totalApos</p>";
    
    if ($totalApos > $total) {
        echo "<div style='background: #e8f5e8; padding: 15px; border-radius: 5px;'>";
        echo "<h3>✅ API FUNCIONANDO!</h3>";
        echo "<p>A API atualizar-posicao está salvando pontos corretamente.</p>";
        echo "</div>";
    } else {
        echo "<div style='background: #ffe6e6; padding: 15px; border-radius: 5px;'>";
        echo "<h3>❌ PROBLEMA NA API!</h3>";
        echo "<p>A API atualizar-posicao não está salvando pontos.</p>";
        echo "<p><strong>Possíveis causas:</strong></p>";
        echo "<ul>";
        echo "<li>Erro na API atualizar-posicao</li>";
        echo "<li>Problema de conectividade do app</li>";
        echo "<li>App não está enviando dados</li>";
        echo "</ul>";
        echo "</div>";
    }
    
    // 5. Análise do problema
    echo "<h2>🔍 Análise do Problema</h2>";
    
    if ($total == 0) {
        echo "<div style='background: #ffe6e6; padding: 15px; border-radius: 5px;'>";
        echo "<h3>❌ PROBLEMA PRINCIPAL: NENHUM PONTO GPS!</h3>";
        echo "<p><strong>Causa:</strong> O app Android não está enviando pontos GPS para o servidor.</p>";
        echo "<p><strong>Soluções:</strong></p>";
        echo "<ol>";
        echo "<li>Verificar se o LocationForegroundService está ativo</li>";
        echo "<li>Verificar permissões de GPS no app</li>";
        echo "<li>Verificar conectividade de internet</li>";
        echo "<li>Verificar logs do app Android</li>";
        echo "</ol>";
        echo "</div>";
    } else {
        echo "<div style='background: #fff3cd; padding: 15px; border-radius: 5px;'>";
        echo "<h3>⚠️ PONTOS GPS INSUFICIENTES!</h3>";
        echo "<p>Há $total pontos, mas pode ser insuficiente para calcular km_gps_final.</p>";
        echo "<p><strong>Solução:</strong> Coletar mais pontos GPS durante a viagem.</p>";
        echo "</div>";
    }
    
} catch (Exception $e) {
    echo "<p>❌ Erro: " . $e->getMessage() . "</p>";
}
?>
