<?php
/**
 * Inserir dados de trajeto GPS de exemplo para testar o mapa
 */

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

// Conectar ao banco
function conectarBanco() {
    $host = 'localhost';
    $dbname = 'pinheir3_controle_frotasV1.1';
    $username = 'pinheir3_admin';
    $password = '080880Gelboy';
    
    try {
        $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password, [
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        ]);
        return $pdo;
    } catch (PDOException $e) {
        throw new Exception('Erro de conexão: ' . $e->getMessage());
    }
}

echo "<h1>📍 Inserindo Trajeto GPS de Exemplo</h1>";

try {
    $pdo = conectarBanco();
    
    // Verificar se a tabela existe
    $stmt = $pdo->query("SHOW TABLES LIKE 'rastreamento_tempo_real'");
    $tabelaExiste = $stmt->fetch();
    
    if (!$tabelaExiste) {
        echo "<p>❌ <strong>Tabela rastreamento_tempo_real não existe!</strong></p>";
        echo "<p>Execute primeiro: <a href='criar-tabelas-rastreamento-v2.sql'>criar-tabelas-rastreamento-v2.sql</a></p>";
        exit();
    }
    
    echo "<p>✅ Tabela rastreamento_tempo_real existe!</p>";
    
    // Para qual viagem vamos inserir dados?
    $viagemId = $_GET['viagem'] ?? 68;
    
    echo "<h3>🚗 Inserindo trajeto para Viagem ID: $viagemId</h3>";
    
    // Verificar se a viagem existe
    $stmt = $pdo->prepare("SELECT * FROM viagens WHERE id = ?");
    $stmt->execute([$viagemId]);
    $viagem = $stmt->fetch();
    
    if (!$viagem) {
        echo "<p>❌ <strong>Viagem $viagemId não encontrada!</strong></p>";
        
        // Listar viagens disponíveis
        $stmt = $pdo->query("SELECT id, cliente, data_inicio FROM viagens ORDER BY id DESC LIMIT 5");
        $viagens = $stmt->fetchAll();
        
        echo "<p>🔍 <strong>Viagens disponíveis:</strong></p>";
        echo "<ul>";
        foreach ($viagens as $v) {
            echo "<li><a href='?viagem={$v['id']}'>Viagem {$v['id']} - {$v['cliente']}</a></li>";
        }
        echo "</ul>";
        exit();
    }
    
    echo "<p>✅ <strong>Viagem encontrada:</strong> {$viagem['cliente']}</p>";
    
    // Limpar pontos antigos desta viagem
    $stmt = $pdo->prepare("DELETE FROM rastreamento_tempo_real WHERE viagem_id = ?");
    $stmt->execute([$viagemId]);
    echo "<p>🧹 Pontos antigos removidos</p>";
    
    // Coordenadas de início e fim da viagem (se existirem)
    $latInicio = $viagem['latitude_inicial'] ?: -11.016369;
    $lonInicio = $viagem['longitude_inicial'] ?: -37.076128;
    $latFim = $viagem['latitude_final'] ?: -11.020000;
    $lonFim = $viagem['longitude_final'] ?: -37.080000;
    
    echo "<p>📍 <strong>Início:</strong> $latInicio, $lonInicio</p>";
    echo "<p>📍 <strong>Fim:</strong> $latFim, $lonFim</p>";
    
    // Gerar pontos GPS intermediários simulando um trajeto
    $totalPontos = 15; // 15 pontos GPS
    $pontos = [];
    
    for ($i = 0; $i < $totalPontos; $i++) {
        $progresso = $i / ($totalPontos - 1); // 0 a 1
        
        // Interpolação linear com pequenos desvios para simular trajeto real
        $lat = $latInicio + ($latFim - $latInicio) * $progresso;
        $lon = $lonInicio + ($lonFim - $lonInicio) * $progresso;
        
        // Adicionar pequenos desvios aleatórios para simular trajeto real
        $lat += (rand(-50, 50) / 100000); // ±0.0005 graus (~50m)
        $lon += (rand(-50, 50) / 100000);
        
        // Velocidade simulada (0-60 km/h)
        $velocidade = rand(0, 60);
        
        // Timestamp com intervalos de 2 minutos
        $timestamp = date('Y-m-d H:i:s', strtotime($viagem['data_inicio']) + ($i * 120));
        
        $pontos[] = [
            'latitude' => $lat,
            'longitude' => $lon,
            'velocidade' => $velocidade,
            'timestamp' => $timestamp
        ];
    }
    
    // Inserir pontos no banco
    $stmt = $pdo->prepare("
        INSERT INTO rastreamento_tempo_real 
        (viagem_id, latitude, longitude, velocidade, timestamp, precisao) 
        VALUES (?, ?, ?, ?, ?, ?)
    ");
    
    $inseridos = 0;
    foreach ($pontos as $ponto) {
        $stmt->execute([
            $viagemId,
            $ponto['latitude'],
            $ponto['longitude'],
            $ponto['velocidade'],
            $ponto['timestamp'],
            rand(5, 15) // Precisão GPS em metros
        ]);
        $inseridos++;
    }
    
    echo "<p>✅ <strong>$inseridos pontos GPS inseridos com sucesso!</strong></p>";
    
    // Mostrar resultado
    echo "<h3>📊 Trajeto Criado:</h3>";
    echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
    echo "<tr><th>#</th><th>Latitude</th><th>Longitude</th><th>Velocidade</th><th>Timestamp</th></tr>";
    
    foreach ($pontos as $i => $ponto) {
        echo "<tr>";
        echo "<td>" . ($i + 1) . "</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['timestamp'] . "</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    echo "<div style='background: #e7f3ff; padding: 20px; border-radius: 10px; margin: 20px 0;'>";
    echo "<h4>🎯 Como testar:</h4>";
    echo "<ol>";
    echo "<li><a href='detalhes-viagem.html?id=$viagemId' target='_blank'>Abrir detalhes da viagem $viagemId</a></li>";
    echo "<li>Verificar se o mapa mostra o trajeto com linha tracejada azul</li>";
    echo "<li>Usar os controles + - 🎯 🛣️ para navegar e alternar trajeto</li>";
    echo "<li><a href='test-trajeto-viagem.php?id=$viagemId' target='_blank'>Testar API de trajeto</a></li>";
    echo "</ol>";
    echo "</div>";
    
} catch (Exception $e) {
    echo "<p>❌ <strong>Erro:</strong> " . $e->getMessage() . "</p>";
}
?> 
