<?php
header('Content-Type: text/html; charset=utf-8');
echo "<h2>🧪 Teste GPS Android - Verificar Recebimento</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 da viagem 1: " . $result['total'] . "<br>";
    
    if ($result['total'] > 0) {
        // Mostrar últimos pontos
        $stmt = $pdo->prepare("SELECT * FROM rastreamento_tempo_real WHERE viagem_id = ? ORDER BY timestamp DESC LIMIT 5");
        $stmt->execute([1]);
        $pontos = $stmt->fetchAll();
        
        echo "<h4>Últimos 5 pontos da viagem 1:</h4>";
        echo "<table border='1' style='border-collapse: collapse;'>";
        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>";
    } else {
        echo "❌ Nenhum ponto GPS encontrado para viagem 1<br>";
    }
    
} catch (Exception $e) {
    echo "❌ Erro ao verificar tabela: " . $e->getMessage() . "<br>";
}

// 2. Testar API de recebimento GPS
echo "<h3>2. Testar API de recebimento GPS</h3>";

if (isset($_POST['testar_api'])) {
    echo "<h4>🧪 Testando envio de dados GPS para API...</h4>";
    
    // Simular dados do Android
    $dadosTeste = [
        'acao' => 'atualizar-posicao',
        'viagem_id' => 1,
        'latitude' => -23.5505,
        'longitude' => -46.6333,
        'velocidade' => 25.5,
        'precisao' => 5.2,
        'altitude' => 760,
        'provider' => 'gps',
        'timestamp' => time() * 1000
    ];
    
    $jsonData = json_encode($dadosTeste);
    
    // Fazer requisição para a própria API
    $url = 'https://sistemas.pinheiroempresas.com.br/controlefrotaV1.1/backend-php/api-simples-v2.php';
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Content-Length: ' . strlen($jsonData)
    ]);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    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 "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
    echo "<h5>📤 Dados enviados:</h5>";
    echo "<pre>" . htmlspecialchars($jsonData) . "</pre>";
    echo "<h5>📥 Resposta da API:</h5>";
    echo "<p><strong>HTTP Code:</strong> $httpCode</p>";
    echo "<p><strong>Resposta:</strong></p>";
    echo "<pre>" . htmlspecialchars($response) . "</pre>";
    
    if ($error) {
        echo "<p style='color: red;'><strong>Erro cURL:</strong> $error</p>";
    }
    
    if ($httpCode == 200) {
        echo "<p style='color: green;'>✅ API respondeu com sucesso!</p>";
    } else {
        echo "<p style='color: red;'>❌ API retornou erro HTTP: $httpCode</p>";
    }
    echo "</div>";
    
    // Verificar se o ponto foi salvo
    echo "<h4>🔍 Verificando se o ponto foi salvo...</h4>";
    try {
        $stmt = $pdo->prepare("SELECT COUNT(*) as total FROM rastreamento_tempo_real WHERE viagem_id = ?");
        $stmt->execute([1]);
        $result = $stmt->fetch();
        echo "📊 Total de pontos após teste: " . $result['total'] . "<br>";
        
        if ($result['total'] > 0) {
            echo "<p style='color: green;'>✅ Ponto GPS foi salvo com sucesso!</p>";
        } else {
            echo "<p style='color: red;'>❌ Ponto GPS não foi salvo!</p>";
        }
    } catch (Exception $e) {
        echo "<p style='color: red;'>❌ Erro ao verificar: " . $e->getMessage() . "</p>";
    }
}

// Formulário para testar
echo "<h3>3. Testar envio manual</h3>";
echo "<form method='post' style='background: #e8f5e8; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
echo "<h4>🔧 Teste Manual da API:</h4>";
echo "<p>Clique no botão abaixo para simular o envio de dados GPS do Android:</p>";
echo "<button type='submit' name='testar_api' style='background: #007bff; color: white; padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer;'>🧪 Testar API GPS</button>";
echo "</form>";

// 4. Verificar logs da API
echo "<h3>4. Verificar logs da API</h3>";

$logFile = __DIR__ . '/logs/api.log';
if (file_exists($logFile)) {
    echo "<h4>📝 Últimas 10 linhas do log da API:</h4>";
    $lines = file($logFile);
    $lastLines = array_slice($lines, -10);
    echo "<div style='background: #f8f9fa; padding: 10px; border: 1px solid #ddd; border-radius: 5px; font-family: monospace; font-size: 12px;'>";
    foreach ($lastLines as $line) {
        echo htmlspecialchars($line) . "<br>";
    }
    echo "</div>";
} else {
    echo "<p>❌ Arquivo de log não encontrado: $logFile</p>";
}

// 5. Verificar estrutura da tabela
echo "<h3>5. Verificar estrutura da tabela rastreamento_tempo_real</h3>";

try {
    $stmt = $pdo->query("DESCRIBE rastreamento_tempo_real");
    $colunas = $stmt->fetchAll();
    
    echo "<table border='1' style='border-collapse: collapse;'>";
    echo "<tr><th>Campo</th><th>Tipo</th><th>Null</th><th>Key</th><th>Default</th><th>Extra</th></tr>";
    foreach ($colunas as $coluna) {
        echo "<tr>";
        echo "<td>{$coluna['Field']}</td>";
        echo "<td>{$coluna['Type']}</td>";
        echo "<td>{$coluna['Null']}</td>";
        echo "<td>{$coluna['Key']}</td>";
        echo "<td>{$coluna['Default']}</td>";
        echo "<td>{$coluna['Extra']}</td>";
        echo "</tr>";
    }
    echo "</table>";
    
} catch (Exception $e) {
    echo "❌ Erro ao verificar estrutura: " . $e->getMessage() . "<br>";
}

echo "<h3>✅ Teste concluído!</h3>";
echo "<p><strong>Próximos passos:</strong></p>";
echo "<ul>";
echo "<li>Se não há pontos GPS, o problema está no app Android não enviando dados</li>";
echo "<li>Se a API não responde, há problema na configuração do servidor</li>";
echo "<li>Se a API responde mas não salva, há problema na estrutura da tabela</li>";
echo "<li>Use o teste manual acima para verificar se a API funciona</li>";
echo "</ul>";
?>
