<?php
header('Content-Type: text/html; charset=utf-8');
echo "<h2>🧪 Teste GPS Android - Verificar Dados</h2>";

// 1. Verificar se há dados na tabela rastreamento_tempo_real
echo "<h3>1. Verificar dados na tabela rastreamento_tempo_real</h3>";

try {
    require_once 'config/database.php';
    $pdo = Database::getConnection();
    
    // Contar total de pontos
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM rastreamento_tempo_real");
    $result = $stmt->fetch();
    echo "📊 Total de pontos GPS: " . $result['total'] . "<br>";
    
    // Verificar pontos da viagem 1
    $stmt = $pdo->prepare("SELECT COUNT(*) as total FROM rastreamento_tempo_real WHERE viagem_id = ?");
    $stmt->execute([1]);
    $result = $stmt->fetch();
    echo "📊 Pontos para viagem ID 1: " . $result['total'] . "<br>";
    
    // Verificar últimos pontos
    $stmt = $pdo->query("SELECT * FROM rastreamento_tempo_real ORDER BY timestamp DESC LIMIT 5");
    $pontos = $stmt->fetchAll();
    
    if (!empty($pontos)) {
        echo "<h4>Últimos 5 pontos GPS:</h4>";
        echo "<table border='1' style='border-collapse: collapse;'>";
        echo "<tr><th>ID</th><th>Viagem 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['viagem_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>";
    } else {
        echo "❌ Nenhum ponto GPS encontrado na tabela<br>";
    }
    
} catch (Exception $e) {
    echo "❌ Erro ao verificar dados: " . $e->getMessage() . "<br>";
}

// 2. Testar a API de atualizar-posicao
echo "<h3>2. Testar API de atualizar-posicao</h3>";

$url = "https://sistemas.pinheiroempresas.com.br/controlefrotaV1.1/backend-php/api-simples-v2.php?acao=atualizar-posicao";

echo "🔗 URL da API: $url<br><br>";

// Dados de teste
$dadosTeste = [
    'viagem_id' => 1,
    'latitude' => -25.4284,
    'longitude' => -49.2733,
    'velocidade' => 25.5,
    'precisao' => 10.0,
    'altitude' => 45.0
];

echo "📋 Dados de teste: " . json_encode($dadosTeste, JSON_PRETTY_PRINT) . "<br><br>";

// Testar com cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($dadosTeste));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'User-Agent: Android-App-Test'
]);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);

echo "📊 Código HTTP: $httpCode<br>";
echo "❌ Erro cURL: $error<br>";
echo "📋 Resposta: " . $response . "<br><br>";

// 3. Verificar logs de erro
echo "<h3>3. Verificar logs de erro do servidor</h3>";

$logFile = __DIR__ . '/../logs/error.log';
if (file_exists($logFile)) {
    echo "📁 Arquivo de log encontrado: $logFile<br>";
    $logs = file_get_contents($logFile);
    $ultimasLinhas = array_slice(explode("\n", $logs), -10);
    echo "<h4>Últimas 10 linhas do log:</h4>";
    echo "<pre style='background: #f0f0f0; padding: 10px;'>";
    foreach ($ultimasLinhas as $linha) {
        if (!empty(trim($linha))) {
            echo htmlspecialchars($linha) . "\n";
        }
    }
    echo "</pre>";
} else {
    echo "❌ Arquivo de log não encontrado<br>";
}

// 4. Verificar se a viagem 1 existe
echo "<h3>4. Verificar viagem ID 1</h3>";

try {
    $stmt = $pdo->prepare("SELECT * FROM viagens WHERE id = ?");
    $stmt->execute([1]);
    $viagem = $stmt->fetch();
    
    if ($viagem) {
        echo "✅ Viagem encontrada:<br>";
        echo "- ID: {$viagem['id']}<br>";
        echo "- Técnico ID: {$viagem['tecnico_id']}<br>";
        echo "- Cliente: {$viagem['cliente']}<br>";
        echo "- Data início: {$viagem['data_inicio']}<br>";
        echo "- Data fim: " . ($viagem['data_fim'] ?? 'NULL') . "<br>";
    } else {
        echo "❌ Viagem ID 1 não encontrada<br>";
    }
    
} catch (Exception $e) {
    echo "❌ Erro ao verificar viagem: " . $e->getMessage() . "<br>";
}

// 5. Testar inserção direta
echo "<h3>5. Testar inserção direta na tabela</h3>";

try {
    $stmt = $pdo->prepare("
        INSERT INTO rastreamento_tempo_real 
        (viagem_id, latitude, longitude, velocidade, precisao, altitude, timestamp) 
        VALUES (?, ?, ?, ?, ?, ?, NOW())
    ");
    
    $result = $stmt->execute([
        1, // viagem_id
        -25.4284, // latitude
        -49.2733, // longitude
        25.5, // velocidade
        10.0, // precisao
        45.0 // altitude
    ]);
    
    if ($result) {
        $novoId = $pdo->lastInsertId();
        echo "✅ Inserção direta bem-sucedida! Novo ID: $novoId<br>";
    } else {
        echo "❌ Erro na inserção direta<br>";
    }
    
} catch (Exception $e) {
    echo "❌ Erro na inserção direta: " . $e->getMessage() . "<br>";
}

echo "<h3>✅ Teste concluído!</h3>";
echo "<p><strong>Diagnóstico:</strong></p>";
echo "<ul>";
echo "<li>Se a tabela está vazia mas a API responde OK, o problema é no Android</li>";
echo "<li>Se a API dá erro, o problema é no servidor</li>";
echo "<li>Se a inserção direta funciona, a tabela está OK</li>";
echo "</ul>";
?>
