<?php
header('Content-Type: text/html; charset=utf-8');
echo "<h2>🔍 Verificar Rastreamento Tempo Real</h2>";

try {
    require_once 'config/database.php';
    $pdo = Database::getConnection();
    
    // 1. Verificar estrutura da tabela
    echo "<h3>1. Estrutura da Tabela</h3>";
    
    $stmt = $pdo->query("DESCRIBE rastreamento_tempo_real");
    $colunas = $stmt->fetchAll();
    
    echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
    echo "<h4>📋 Colunas da tabela rastreamento_tempo_real:</h4>";
    echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
    echo "<tr style='background: #e3f2fd;'>";
    echo "<th>Campo</th><th>Tipo</th><th>Null</th><th>Key</th><th>Default</th><th>Extra</th>";
    echo "</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>";
    echo "</div>";
    
    // 2. Verificar se há dados
    echo "<h3>2. Dados na Tabela</h3>";
    
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM rastreamento_tempo_real");
    $result = $stmt->fetch();
    $totalRegistros = $result['total'];
    
    echo "<p><strong>📊 Total de registros:</strong> {$totalRegistros}</p>";
    
    if ($totalRegistros > 0) {
        echo "<div style='background: #e8f5e8; padding: 10px; border-radius: 5px; margin: 10px 0;'>";
        echo "<h4>✅ Dados encontrados!</h4>";
        
        // Mostrar últimos 10 registros
        $stmt = $pdo->query("SELECT * FROM rastreamento_tempo_real ORDER BY timestamp DESC LIMIT 10");
        $registros = $stmt->fetchAll();
        
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr style='background: #e3f2fd;'>";
        echo "<th>ID</th><th>Viagem ID</th><th>Latitude</th><th>Longitude</th><th>Velocidade</th><th>Timestamp</th>";
        echo "</tr>";
        
        foreach ($registros as $registro) {
            echo "<tr>";
            echo "<td>{$registro['id']}</td>";
            echo "<td>{$registro['viagem_id']}</td>";
            echo "<td>{$registro['latitude']}</td>";
            echo "<td>{$registro['longitude']}</td>";
            echo "<td>{$registro['velocidade']}</td>";
            echo "<td>{$registro['timestamp']}</td>";
            echo "</tr>";
        }
        echo "</table>";
        echo "</div>";
    } else {
        echo "<div style='background: #ffebee; padding: 10px; border-radius: 5px; margin: 10px 0;'>";
        echo "<h4>❌ Nenhum dado encontrado!</h4>";
        echo "<p>A tabela rastreamento_tempo_real está vazia. Isso indica que:</p>";
        echo "<ul>";
        echo "<li>O serviço GPS não está enviando dados</li>";
        echo "<li>A API não está salvando os dados</li>";
        echo "<li>Há um erro na comunicação</li>";
        echo "</ul>";
        echo "</div>";
    }
    
    // 3. Verificar viagens em andamento
    echo "<h3>3. Viagens em Andamento</h3>";
    
    $stmt = $pdo->query("SELECT id, cliente, data_inicio, data_fim FROM viagens WHERE data_fim IS NULL ORDER BY data_inicio DESC");
    $viagensEmAndamento = $stmt->fetchAll();
    
    echo "<p><strong>📊 Viagens em andamento:</strong> " . count($viagensEmAndamento) . "</p>";
    
    if (count($viagensEmAndamento) > 0) {
        echo "<div style='background: #fff3e0; padding: 10px; border-radius: 5px; margin: 10px 0;'>";
        echo "<h4>🔄 Viagens ativas:</h4>";
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr style='background: #e3f2fd;'>";
        echo "<th>ID</th><th>Cliente</th><th>Data Início</th><th>Status</th>";
        echo "</tr>";
        
        foreach ($viagensEmAndamento as $viagem) {
            echo "<tr>";
            echo "<td>{$viagem['id']}</td>";
            echo "<td>{$viagem['cliente']}</td>";
            echo "<td>{$viagem['data_inicio']}</td>";
            echo "<td>🟢 Em andamento</td>";
            echo "</tr>";
        }
        echo "</table>";
        echo "</div>";
    } else {
        echo "<div style='background: #ffebee; padding: 10px; border-radius: 5px; margin: 10px 0;'>";
        echo "<h4>❌ Nenhuma viagem em andamento</h4>";
        echo "<p>Isso pode explicar por que não há dados GPS sendo coletados.</p>";
        echo "</div>";
    }
    
    // 4. Testar API de GPS
    echo "<h3>4. Teste da API de GPS</h3>";
    
    if (isset($_POST['testar_api'])) {
        echo "<h4>🧪 Testando API de GPS...</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 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 "<h5>📤 Dados enviados:</h5>";
        echo "<pre>" . htmlspecialchars($jsonData) . "</pre>";
        echo "<h5>📥 Resposta da API:</h5>";
        echo "<p>HTTP Code: $httpCode</p>";
        echo "<p>Resposta:</p>";
        echo "<pre>" . htmlspecialchars($response) . "</pre>";
        
        if ($error) {
            echo "<p style='color: red;'>Erro cURL: $error</p>";
        }
        
        if ($httpCode == 200) {
            echo "<p style='color: green;'>✅ API respondeu com sucesso!</p>";
            
            // Verificar se o dado foi salvo
            $stmt = $pdo->query("SELECT COUNT(*) as total FROM rastreamento_tempo_real WHERE viagem_id = 1");
            $result = $stmt->fetch();
            $novosRegistros = $result['total'];
            
            echo "<p><strong>📊 Registros na tabela após teste:</strong> {$novosRegistros}</p>";
            
            if ($novosRegistros > $totalRegistros) {
                echo "<p style='color: green;'>✅ Dados foram salvos na tabela!</p>";
            } else {
                echo "<p style='color: red;'>❌ Dados não foram salvos na tabela!</p>";
            }
        } else {
            echo "<p style='color: red;'>❌ API retornou erro HTTP: $httpCode</p>";
        }
    }
    
    // Formulário para testar
    echo "<form method='post' style='background: #e3f2fd; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
    echo "<h4>🧪 Testar API de GPS:</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>";
    
    // 5. Checklist de verificação
    echo "<h3>5. Checklist de Verificação</h3>";
    echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
    echo "<h4>📋 Para verificar no Android:</h4>";
    echo "<ul>";
    echo "<li>✅ <strong>Serviço GPS:</strong> O serviço LocationForegroundService está rodando?</li>";
    echo "<li>✅ <strong>Notificação:</strong> Você vê '📍 Rastreamento GPS' na barra de notificações?</li>";
    echo "<li>✅ <strong>Permissões:</strong> O app tem permissão de localização?</li>";
    echo "<li>✅ <strong>GPS ativo:</strong> O GPS do celular está ligado?</li>";
    echo "<li>✅ <strong>Internet:</strong> O celular tem conexão com internet?</li>";
    echo "<li>✅ <strong>Viagem ativa:</strong> Há uma viagem em andamento no app?</li>";
    echo "<li>✅ <strong>Logs:</strong> Você consegue ver logs de '📍 Ponto GPS coletado' no Android Studio?</li>";
    echo "</ul>";
    echo "</div>";
    
} catch (Exception $e) {
    echo "❌ Erro: " . $e->getMessage() . "<br>";
}

echo "<h3>✅ Diagnóstico Concluído!</h3>";
echo "<p><strong>Resumo:</strong> Este script verifica se a tabela rastreamento_tempo_real está sendo preenchida e testa a API de GPS.</p>";
?>
