<?php
header('Content-Type: text/html; charset=utf-8');
require_once 'config/database.php';

echo "<h1>🔍 Teste da Tabela rastreamento_tempo_real</h1>";

try {
    $pdo = conectarBanco();
    
    echo "<h2>1. Verificando se a tabela existe</h2>";
    
    $stmt = $pdo->query("SHOW TABLES LIKE 'rastreamento_tempo_real'");
    $tabelaExiste = $stmt->rowCount() > 0;
    
    if ($tabelaExiste) {
        echo "<p>✅ Tabela <code>rastreamento_tempo_real</code> existe</p>";
        
        // Verificar estrutura
        $stmt = $pdo->query("DESCRIBE rastreamento_tempo_real");
        $colunas = $stmt->fetchAll(PDO::FETCH_ASSOC);
        
        echo "<h3>Estrutura da tabela:</h3>";
        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></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 "</tr>";
        }
        echo "</table>";
        
        // Verificar se há dados
        $stmt = $pdo->query("SELECT COUNT(*) as total FROM rastreamento_tempo_real");
        $total = $stmt->fetch()['total'];
        
        echo "<h3>Dados na tabela:</h3>";
        echo "<p>Total de registros: <strong>$total</strong></p>";
        
        if ($total > 0) {
            // Mostrar últimos 5 registros
            $stmt = $pdo->query("SELECT * FROM rastreamento_tempo_real ORDER BY id DESC LIMIT 5");
            $registros = $stmt->fetchAll(PDO::FETCH_ASSOC);
            
            echo "<h4>Últimos 5 registros:</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 ($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>";
        } else {
            echo "<p>❌ <strong>Nenhum registro encontrado!</strong></p>";
        }
        
    } else {
        echo "<p>❌ Tabela <code>rastreamento_tempo_real</code> NÃO existe</p>";
    }
    
    echo "<h2>2. Testando endpoint atualizar-posicao</h2>";
    
    // Buscar uma viagem ativa para teste
    $stmt = $pdo->query("SELECT id, tecnico_id, cliente FROM viagens WHERE data_fim IS NULL LIMIT 1");
    $viagem = $stmt->fetch();
    
    if ($viagem) {
        echo "<p>✅ Viagem ativa encontrada: ID {$viagem['id']} - {$viagem['cliente']}</p>";
        
        // Testar endpoint
        $url = 'https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/api-simples-v2.php?acao=atualizar-posicao';
        
        $dados = [
            'viagem_id' => $viagem['id'],
            'latitude' => -23.5505,
            'longitude' => -46.6333,
            'velocidade' => 25,
            'precisao' => 10,
            'altitude' => 800,
            'battery_level' => 85,
            'motorista_nome' => 'Teste GPS'
        ];
        
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($dados));
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            'Content-Type: application/json',
            'Content-Length: ' . strlen(json_encode($dados))
        ]);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 10);
        
        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        $error = curl_error($ch);
        curl_close($ch);
        
        echo "<h3>Teste do endpoint:</h3>";
        echo "<p><strong>URL:</strong> $url</p>";
        echo "<p><strong>Dados enviados:</strong> " . json_encode($dados, JSON_PRETTY_PRINT) . "</p>";
        echo "<p><strong>HTTP Code:</strong> $httpCode</p>";
        
        if ($error) {
            echo "<p><strong>Erro cURL:</strong> $error</p>";
        } else {
            echo "<p><strong>Resposta:</strong> $response</p>";
            
            // Verificar se o registro foi criado
            $stmt = $pdo->query("SELECT COUNT(*) as total FROM rastreamento_tempo_real WHERE viagem_id = {$viagem['id']}");
            $novoTotal = $stmt->fetch()['total'];
            
            echo "<p><strong>Registros na tabela após teste:</strong> $novoTotal</p>";
            
            if ($novoTotal > $total) {
                echo "<p>✅ <strong>SUCESSO!</strong> O endpoint está funcionando e salvando dados.</p>";
            } else {
                echo "<p>❌ <strong>FALHA!</strong> O endpoint não salvou dados na tabela.</p>";
            }
        }
        
    } else {
        echo "<p>❌ Nenhuma viagem ativa encontrada para teste</p>";
    }
    
    echo "<h2>3. Verificando viagens com trajeto</h2>";
    
    $stmt = $pdo->query("SELECT id, cliente, tecnico_id, trajeto FROM viagens WHERE data_fim IS NULL AND trajeto IS NOT NULL LIMIT 5");
    $viagensComTrajeto = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if ($viagensComTrajeto) {
        echo "<p>Viagens com trajeto salvo:</p>";
        echo "<table border='1' style='border-collapse: collapse;'>";
        echo "<tr><th>ID</th><th>Cliente</th><th>Técnico</th><th>Pontos no Trajeto</th></tr>";
        foreach ($viagensComTrajeto as $viagem) {
            $trajeto = json_decode($viagem['trajeto'], true);
            $pontos = is_array($trajeto) ? count($trajeto) : 0;
            echo "<tr>";
            echo "<td>{$viagem['id']}</td>";
            echo "<td>{$viagem['cliente']}</td>";
            echo "<td>{$viagem['tecnico_id']}</td>";
            echo "<td>$pontos</td>";
            echo "</tr>";
        }
        echo "</table>";
    } else {
        echo "<p>❌ Nenhuma viagem com trajeto encontrada</p>";
    }
    
} catch (Exception $e) {
    echo "<p>❌ Erro: " . $e->getMessage() . "</p>";
}
?>
