<?php
/**
 * 🛣️ Criar Tracejado Completo para Viagem 79
 * Inserir vários pontos GPS para formar um trajeto realista
 */

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

require_once 'conexao.php';

echo "<h1>🛣️ Criando Tracejado GPS para Viagem 79</h1>";

try {
    // Verificar se viagem 79 existe
    $stmt = $pdo->prepare("SELECT * FROM viagens WHERE id = 79");
    $stmt->execute();
    $viagem = $stmt->fetch();
    
    if (!$viagem) {
        echo "<div style='background:#ffe8e8;padding:15px;border-radius:8px;margin:15px 0;'>";
        echo "❌ <strong>Viagem 79 não encontrada!</strong><br>";
        echo "Verifique se a viagem existe no banco de dados.";
        echo "</div>";
        exit;
    }
    
    echo "<div style='background:#e8f5e8;padding:15px;border-radius:8px;margin:15px 0;'>";
    echo "✅ <strong>Viagem 79 encontrada:</strong><br>";
    echo "Cliente: " . htmlspecialchars($viagem['cliente']) . "<br>";
    echo "Status: " . ($viagem['data_fim'] ? 'Finalizada' : 'Em andamento');
    echo "</div>";
    
    // Verificar pontos GPS existentes
    $stmt = $pdo->prepare("SELECT COUNT(*) as total FROM rastreamento_tempo_real WHERE viagem_id = 79");
    $stmt->execute();
    $pontosExistentes = $stmt->fetch()['total'];
    
    echo "<div style='background:#f0f8ff;padding:15px;border-radius:8px;margin:15px 0;'>";
    echo "📊 <strong>Pontos GPS existentes:</strong> $pontosExistentes";
    echo "</div>";
    
    if (isset($_GET['acao']) && $_GET['acao'] === 'criar') {
        
        echo "<h2>🔄 Inserindo Pontos GPS...</h2>";
        
        // Definir trajeto realista: São Paulo centro → Aeroporto Congonhas
        $pontosTracejado = [
            // Início: Praça da Sé
            ['lat' => -23.550520, 'lng' => -46.633308, 'vel' => 0, 'tempo' => '2024-01-15 09:00:00'],
            ['lat' => -23.551000, 'lng' => -46.634000, 'vel' => 15, 'tempo' => '2024-01-15 09:02:00'],
            ['lat' => -23.552000, 'lng' => -46.635500, 'vel' => 25, 'tempo' => '2024-01-15 09:05:00'],
            
            // Avenida Paulista
            ['lat' => -23.561000, 'lng' => -46.656000, 'vel' => 35, 'tempo' => '2024-01-15 09:10:00'],
            ['lat' => -23.563000, 'lng' => -46.658000, 'vel' => 40, 'tempo' => '2024-01-15 09:12:00'],
            ['lat' => -23.565000, 'lng' => -46.660000, 'vel' => 30, 'tempo' => '2024-01-15 09:15:00'],
            
            // Marginal Pinheiros
            ['lat' => -23.570000, 'lng' => -46.665000, 'vel' => 60, 'tempo' => '2024-01-15 09:20:00'],
            ['lat' => -23.575000, 'lng' => -46.670000, 'vel' => 65, 'tempo' => '2024-01-15 09:22:00'],
            ['lat' => -23.580000, 'lng' => -46.675000, 'vel' => 55, 'tempo' => '2024-01-15 09:25:00'],
            
            // Aproximação Congonhas
            ['lat' => -23.590000, 'lng' => -46.670000, 'vel' => 45, 'tempo' => '2024-01-15 09:30:00'],
            ['lat' => -23.595000, 'lng' => -46.665000, 'vel' => 35, 'tempo' => '2024-01-15 09:33:00'],
            ['lat' => -23.600000, 'lng' => -46.660000, 'vel' => 25, 'tempo' => '2024-01-15 09:36:00'],
            
            // Chegada: Aeroporto Congonhas
            ['lat' => -23.627000, 'lng' => -46.656000, 'vel' => 15, 'tempo' => '2024-01-15 09:40:00'],
            ['lat' => -23.630000, 'lng' => -46.654000, 'vel' => 10, 'tempo' => '2024-01-15 09:42:00'],
            ['lat' => -23.632000, 'lng' => -46.653000, 'vel' => 0, 'tempo' => '2024-01-15 09:45:00'], // Chegada
        ];
        
        $pontosSalvos = 0;
        $erros = 0;
        
        echo "<div style='background:#f8f9fa;padding:15px;border-radius:8px;margin:15px 0;'>";
        echo "<h3>📍 Inserindo " . count($pontosTracejado) . " pontos GPS:</h3>";
        
        foreach ($pontosTracejado as $index => $ponto) {
            try {
                $stmt = $pdo->prepare("
                    INSERT INTO rastreamento_tempo_real 
                    (viagem_id, latitude, longitude, velocidade, precisao, altitude, battery_level, timestamp) 
                    VALUES (79, ?, ?, ?, 8.5, 760, 85, ?)
                ");
                
                $stmt->execute([
                    $ponto['lat'],
                    $ponto['lng'], 
                    $ponto['vel'],
                    $ponto['tempo']
                ]);
                
                $pontosSalvos++;
                echo "<span style='color:green;'>✅</span> Ponto " . ($index + 1) . ": {$ponto['lat']}, {$ponto['lng']} - {$ponto['vel']} km/h<br>";
                
            } catch (Exception $e) {
                $erros++;
                echo "<span style='color:red;'>❌</span> Erro no ponto " . ($index + 1) . ": " . $e->getMessage() . "<br>";
            }
        }
        echo "</div>";
        
        // Tentar inserir também na tabela trajeto_pontos
        echo "<h3>📊 Tentando inserir em trajeto_pontos...</h3>";
        $pontosTrajeto = 0;
        
        foreach ($pontosTracejado as $index => $ponto) {
            try {
                $stmt = $pdo->prepare("
                    INSERT INTO trajeto_pontos 
                    (viagem_id, latitude, longitude, timestamp_ponto, velocidade, precisao) 
                    VALUES (79, ?, ?, ?, ?, 8.5)
                ");
                
                $stmt->execute([
                    $ponto['lat'],
                    $ponto['lng'], 
                    $ponto['tempo'],
                    $ponto['vel']
                ]);
                
                $pontosTrajeto++;
                
            } catch (Exception $e) {
                // Ignorar erros da tabela trajeto_pontos (pode não existir)
            }
        }
        
        // Verificar total final
        $stmt = $pdo->prepare("SELECT COUNT(*) as total FROM rastreamento_tempo_real WHERE viagem_id = 79");
        $stmt->execute();
        $totalFinal = $stmt->fetch()['total'];
        
        echo "<div style='background:#e8f5e8;padding:20px;border-radius:8px;margin:20px 0;'>";
        echo "<h2>🎉 Resultados:</h2>";
        echo "<ul>";
        echo "<li><strong>Pontos salvos em rastreamento_tempo_real:</strong> $pontosSalvos</li>";
        echo "<li><strong>Pontos salvos em trajeto_pontos:</strong> $pontosTrajeto</li>";
        echo "<li><strong>Erros:</strong> $erros</li>";
        echo "<li><strong>Total final na viagem 79:</strong> $totalFinal pontos GPS</li>";
        echo "</ul>";
        
        if ($pontosSalvos > 0) {
            echo "<div style='background:#d1ecf1;padding:15px;border-radius:8px;margin:15px 0;'>";
            echo "🛣️ <strong>Tracejado criado com sucesso!</strong><br><br>";
            echo "🔄 <strong>Próximos passos:</strong><br>";
            echo "1. Recarregue a página de detalhes da viagem 79<br>";
            echo "2. O retaguarda deve mostrar o tracejado GPS real agora<br>";
            echo "3. Verifique se aparece linha verde (trajeto GPS) ao invés de linha reta<br><br>";
            echo "<a href='admin/detalhes-viagem.html?id=79' target='_blank' style='background:#007bff;color:white;padding:12px 24px;text-decoration:none;border-radius:5px;'>🗺️ Ver Detalhes Viagem 79</a>";
            echo "</div>";
        }
        echo "</div>";
        
        // Atualizar campo trajeto da viagem (se existir)
        try {
            $stmt = $pdo->prepare("
                UPDATE viagens 
                SET trajeto = (
                    SELECT JSON_ARRAYAGG(
                        JSON_OBJECT(
                            'latitude', latitude,
                            'longitude', longitude,
                            'velocidade', velocidade,
                            'timestamp', timestamp
                        )
                    )
                    FROM rastreamento_tempo_real 
                    WHERE viagem_id = 79
                    ORDER BY timestamp ASC
                )
                WHERE id = 79
            ");
            $stmt->execute();
            
            echo "<div style='background:#fff3cd;padding:15px;border-radius:8px;margin:15px 0;'>";
            echo "🔄 <strong>Campo 'trajeto' da viagem atualizado com dados JSON</strong>";
            echo "</div>";
            
        } catch (Exception $e) {
            echo "<div style='background:#ffe8e8;padding:15px;border-radius:8px;margin:15px 0;'>";
            echo "⚠️ <strong>Aviso:</strong> Não foi possível atualizar campo 'trajeto': " . $e->getMessage();
            echo "</div>";
        }
        
    } else {
        // Mostrar opção para criar
        echo "<div style='background:#fff3cd;padding:20px;border-radius:8px;margin:20px 0;text-align:center;'>";
        echo "<h2>🛣️ Criar Tracejado GPS Completo</h2>";
        echo "<p>Este script irá inserir <strong>15 pontos GPS</strong> simulando um trajeto realista:</p>";
        echo "<p><strong>Praça da Sé → Avenida Paulista → Marginal Pinheiros → Aeroporto Congonhas</strong></p>";
        echo "<a href='?acao=criar' style='background:#28a745;color:white;padding:15px 30px;text-decoration:none;border-radius:8px;font-size:18px;'>🚀 Criar Tracejado Agora</a>";
        echo "</div>";
    }
    
} catch (Exception $e) {
    echo "<div style='background:#ffe8e8;padding:15px;border-radius:8px;margin:15px 0;'>";
    echo "❌ <strong>Erro:</strong> " . htmlspecialchars($e->getMessage());
    echo "</div>";
}
?>

<div style="background:#f0f8ff;padding:20px;border-radius:8px;margin:20px 0;">
    <h3>🔍 Links Úteis:</h3>
    <ul>
        <li><a href="testar-api-gps.php" target="_blank">🧪 Testar APIs de GPS</a></li>
        <li><a href="diagnostico-gps-completo.php" target="_blank">📊 Diagnóstico Completo</a></li>
        <li><a href="admin/detalhes-viagem.html?id=79" target="_blank">🗺️ Ver Detalhes Viagem 79</a></li>
        <li><a href="checklist-gps-viagens.php" target="_blank">📋 Checklist GPS Viagens</a></li>
    </ul>
</div> 
