<?php
/**
 * Teste da API de atualização de posição GPS
 * Simula o app Android enviando dados
 */

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

echo "<h1>📱 Teste da API GPS - Simulando App Android</h1>";

$apiUrl = "http://" . $_SERVER['HTTP_HOST'] . "/controlefrota/backend-php/api-simples-v2.php?acao=atualizar-posicao";

echo "<p><strong>URL da API:</strong> <code>$apiUrl</code></p>";

// Dados de teste simulando o app Android
$dadosGPS = [
    [
        'viagem_id' => 68,
        'latitude' => -11.016369,
        'longitude' => -37.076128,
        'velocidade' => 25,
        'precisao' => 10,
        'altitude' => 45
    ],
    [
        'viagem_id' => 68,
        'latitude' => -11.017000,
        'longitude' => -37.077000,
        'velocidade' => 30,
        'precisao' => 8,
        'altitude' => 48
    ],
    [
        'viagem_id' => 68,
        'latitude' => -11.018500,
        'longitude' => -37.078500,
        'velocidade' => 35,
        'precisao' => 12,
        'altitude' => 52
    ],
    [
        'viagem_id' => 68,
        'latitude' => -11.020000,
        'longitude' => -37.080000,
        'velocidade' => 20,
        'precisao' => 6,
        'altitude' => 55
    ]
];

echo "<h3>📍 Simulando Envio de 4 Pontos GPS:</h3>";

foreach ($dadosGPS as $i => $dados) {
    echo "<h4>Ponto " . ($i + 1) . ":</h4>";
    echo "<p><strong>Dados enviados:</strong></p>";
    echo "<pre>" . json_encode($dados, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . "</pre>";
    
    // Enviar dados via cURL (simulando app Android)
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $apiUrl);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($dados));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'User-Agent: ControleApp-Android/1.0-Test'
    ]);
    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);
    
    echo "<p><strong>Resposta HTTP:</strong> $httpCode</p>";
    echo "<p><strong>Resposta da API:</strong></p>";
    echo "<pre>";
    
    if ($response) {
        $json = json_decode($response, true);
        if ($json) {
            echo json_encode($json, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
            
            if ($json['sucesso']) {
                echo "\n✅ Sucesso!";
            } else {
                echo "\n❌ Erro: " . $json['mensagem'];
            }
        } else {
            echo "Resposta não é JSON:\n" . htmlspecialchars($response);
        }
    } else {
        echo "❌ Nenhuma resposta recebida";
    }
    
    echo "</pre>";
    echo "<hr>";
    
    // Delay para simular intervalo real
    sleep(1);
}

echo "<h3>🔍 Verificando Dados Inseridos:</h3>";

// Conectar ao banco para verificar
try {
    $pdo = new PDO("mysql:host=localhost;dbname=pinheir3_controle_frotasV1.1;charset=utf8mb4", 
                   'pinheir3_admin', '080880Gelboy', [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    ]);
    
    $stmt = $pdo->prepare("
        SELECT 
            id, 
            latitude, 
            longitude, 
            velocidade, 
            precisao, 
            timestamp 
        FROM rastreamento_tempo_real 
        WHERE viagem_id = 68 
        ORDER BY timestamp DESC 
        LIMIT 10
    ");
    $stmt->execute();
    $pontos = $stmt->fetchAll();
    
    if ($pontos) {
        echo "<p>✅ <strong>" . count($pontos) . " pontos encontrados na tabela:</strong></p>";
        
        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>Precisão</th><th>Timestamp</th></tr>";
        
        foreach ($pontos as $ponto) {
            echo "<tr>";
            echo "<td>{$ponto['id']}</td>";
            echo "<td>" . number_format($ponto['latitude'], 6) . "</td>";
            echo "<td>" . number_format($ponto['longitude'], 6) . "</td>";
            echo "<td>{$ponto['velocidade']} km/h</td>";
            echo "<td>{$ponto['precisao']} m</td>";
            echo "<td>{$ponto['timestamp']}</td>";
            echo "</tr>";
        }
        echo "</table>";
    } else {
        echo "<p>❌ Nenhum ponto GPS encontrado na tabela rastreamento_tempo_real</p>";
    }
    
} catch (Exception $e) {
    echo "<p>❌ <strong>Erro ao consultar banco:</strong> " . $e->getMessage() . "</p>";
}

echo "<div style='background: #e7f3ff; padding: 20px; border-radius: 10px; margin: 20px 0;'>";
echo "<h4>📱 Como integrar no App Android:</h4>";
echo "<ol>";
echo "<li><strong>URL da API:</strong> <code>$apiUrl</code></li>";
echo "<li><strong>Método:</strong> POST</li>";
echo "<li><strong>Content-Type:</strong> application/json</li>";
echo "<li><strong>Frequência:</strong> A cada 30 segundos durante a viagem</li>";
echo "<li><strong>Dados obrigatórios:</strong> viagem_id, latitude, longitude</li>";
echo "<li><strong>Dados opcionais:</strong> velocidade, precisao, altitude</li>";
echo "</ol>";

echo "<h4>🔧 Código Java/Kotlin exemplo:</h4>";
echo "<pre>";
echo "// Enviar posição GPS\n";
echo "JSONObject dados = new JSONObject();\n";
echo "dados.put(\"viagem_id\", viagemId);\n";
echo "dados.put(\"latitude\", location.getLatitude());\n";
echo "dados.put(\"longitude\", location.getLongitude());\n";
echo "dados.put(\"velocidade\", location.getSpeed() * 3.6f);\n";
echo "dados.put(\"precisao\", location.getAccuracy());\n\n";
echo "// Enviar via HTTP POST para: $apiUrl";
echo "</pre>";
echo "</div>";

echo "<p><strong>🎯 Próximo passo:</strong> <a href='detalhes-viagem.html?id=68' target='_blank'>Ver trajeto no mapa</a></p>";
?> 
