<?php
header('Content-Type: text/html; charset=utf-8');
echo "<h2>🔍 Debug API GPS</h2>";

try {
    require_once 'config/database.php';
    $pdo = Database::getConnection();
    
    // 1. Verificar estrutura da tabela
    echo "<h3>1. Estrutura da Tabela rastreamento_tempo_real</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:</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 dados atuais
    echo "<h3>2. Dados Atuais</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) {
        $stmt = $pdo->query("SELECT * FROM rastreamento_tempo_real ORDER BY timestamp_gps DESC LIMIT 5");
        $registros = $stmt->fetchAll();
        
        echo "<div style='background: #e8f5e8; padding: 10px; border-radius: 5px; margin: 10px 0;'>";
        echo "<h4>✅ Últimos 5 registros:</h4>";
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr style='background: #e3f2fd;'>";
        echo "<th>ID</th><th>Viagem ID</th><th>Técnico ID</th><th>Latitude</th><th>Longitude</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['tecnico_id']}</td>";
            echo "<td>{$registro['latitude']}</td>";
            echo "<td>{$registro['longitude']}</td>";
            echo "<td>{$registro['timestamp_gps']}</td>";
            echo "</tr>";
        }
        echo "</table>";
        echo "</div>";
    } else {
        echo "<div style='background: #ffebee; padding: 10px; border-radius: 5px; margin: 10px 0;'>";
        echo "<h4>❌ Nenhum registro encontrado!</h4>";
        echo "</div>";
    }
    
    // 3. Testar inserção manual
    echo "<h3>3. Teste de Inserção Manual</h3>";
    
    if (isset($_POST['testar_insercao'])) {
        echo "<h4>🧪 Testando inserção...</h4>";
        
        try {
            $stmt = $pdo->prepare("
                INSERT INTO rastreamento_tempo_real (
                    tecnico_id, viagem_id, latitude, longitude, velocidade, 
                    precisao, altitude, timestamp_gps, battery_level, is_online
                ) VALUES (?, ?, ?, ?, ?, ?, ?, NOW(), ?, ?)
            ");
            
            $resultado = $stmt->execute([
                'TESTE', // tecnico_id
                999, // viagem_id (teste)
                -23.5505, // latitude
                -46.6333, // longitude
                25.5, // velocidade
                5.2, // precisao
                760, // altitude
                85, // battery_level
                1 // is_online
            ]);
            
            if ($resultado) {
                $id = $pdo->lastInsertId();
                echo "<div style='background: #e8f5e8; padding: 10px; border-radius: 5px; margin: 10px 0;'>";
                echo "<h4>✅ Inserção manual bem-sucedida!</h4>";
                echo "<p>ID inserido: {$id}</p>";
                echo "</div>";
                
                // Remover o registro de teste
                $stmt = $pdo->prepare("DELETE FROM rastreamento_tempo_real WHERE id = ?");
                $stmt->execute([$id]);
                echo "<p>🧹 Registro de teste removido</p>";
            } else {
                echo "<div style='background: #ffebee; padding: 10px; border-radius: 5px; margin: 10px 0;'>";
                echo "<h4>❌ Falha na inserção manual!</h4>";
                echo "</div>";
            }
        } catch (Exception $e) {
            echo "<div style='background: #ffebee; padding: 10px; border-radius: 5px; margin: 10px 0;'>";
            echo "<h4>❌ Erro na inserção manual:</h4>";
            echo "<p>" . $e->getMessage() . "</p>";
            echo "</div>";
        }
    }
    
    // Formulário para testar inserção
    echo "<form method='post' style='background: #e3f2fd; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
    echo "<h4>🧪 Testar Inserção Manual:</h4>";
    echo "<p>Clique no botão abaixo para testar se a tabela aceita inserções:</p>";
    echo "<button type='submit' name='testar_insercao' style='background: #007bff; color: white; padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer;'>🧪 Testar Inserção</button>";
    echo "</form>";
    
    // 4. Simular chamada da API
    echo "<h3>4. Simular Chamada da API</h3>";
    
    if (isset($_POST['simular_api'])) {
        echo "<h4>🧪 Simulando chamada da 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 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 simular API
    echo "<form method='post' style='background: #fff3e0; padding: 15px; border: 1px solid #ddd; border-radius: 5px; margin: 10px 0;'>";
    echo "<h4>🧪 Simular Chamada da API:</h4>";
    echo "<p>Clique no botão abaixo para simular uma chamada da API de GPS:</p>";
    echo "<button type='submit' name='simular_api' style='background: #ff9800; color: white; padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer;'>🧪 Simular API</button>";
    echo "</form>";
    
    // 5. Verificar logs de erro
    echo "<h3>5. Verificar Logs de Erro</h3>";
    
    echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
    echo "<h4>📋 Possíveis problemas:</h4>";
    echo "<ul>";
    echo "<li><strong>Permissões:</strong> A tabela pode não ter permissões de escrita</li>";
    echo "<li><strong>Estrutura:</strong> Campos obrigatórios podem estar faltando</li>";
    echo "<li><strong>Dados:</strong> Os dados enviados podem estar em formato incorreto</li>";
    echo "<li><strong>API:</strong> A API pode estar retornando erro silenciosamente</li>";
    echo "<li><strong>Logs:</strong> Verificar logs do servidor para erros</li>";
    echo "</ul>";
    echo "</div>";
    
} catch (Exception $e) {
    echo "❌ Erro: " . $e->getMessage() . "<br>";
}

echo "<h3>✅ Debug Concluído!</h3>";
echo "<p><strong>Resumo:</strong> Este script testa se a tabela rastreamento_tempo_real está funcionando corretamente.</p>";
?>
