<?php
/**
 * SIMULAR GPS NA VIAGEM ATIVA
 * Adicionar pontos GPS simulados para testar o rastreamento
 */

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) {
        die('Erro de conexão: ' . $e->getMessage());
    }
}

echo "<h1>📡 SIMULAR GPS NA VIAGEM ATIVA</h1>";

try {
    $pdo = conectarBanco();
    
    // Verificar se foi solicitado simular GPS
    if (isset($_GET['simular']) && is_numeric($_GET['simular'])) {
        $viagemId = (int)$_GET['simular'];
        
        echo "<h2>📍 Simulando GPS para viagem ID: $viagemId</h2>";
        
        // Buscar viagem
        $stmt = $pdo->prepare("SELECT * FROM viagens WHERE id = ? AND data_fim IS NULL");
        $stmt->execute([$viagemId]);
        $viagem = $stmt->fetch();
        
        if (!$viagem) {
            echo "<div style='color: red;'>❌ Viagem não encontrada ou já finalizada!</div>";
        } else {
            // Coordenadas de Arapiraca (simulando movimento)
            $pontosGPS = [
                ['lat' => -9.7518, 'lng' => -36.6618, 'desc' => 'Centro de Arapiraca'],
                ['lat' => -9.7528, 'lng' => -36.6628, 'desc' => 'Movendo para sul'],
                ['lat' => -9.7538, 'lng' => -36.6638, 'desc' => 'Continuando movimento'],
                ['lat' => -9.7548, 'lng' => -36.6648, 'desc' => 'Próximo ao destino'],
                ['lat' => -9.7558, 'lng' => -36.6658, 'desc' => 'Chegando ao local']
            ];
            
            // Criar trajeto simulado
            $trajeto = [];
            foreach ($pontosGPS as $i => $ponto) {
                $trajeto[] = [
                    'latitude' => $ponto['lat'],
                    'longitude' => $ponto['lng'],
                    'timestamp' => date('Y-m-d H:i:s', strtotime("-" . (count($pontosGPS) - $i) . " minutes")),
                    'velocidade' => rand(20, 60), // km/h
                    'precisao' => rand(5, 15) // metros
                ];
            }
            
            // Atualizar viagem com trajeto simulado
            $stmt = $pdo->prepare("
                UPDATE viagens 
                SET trajeto = ?, 
                    latitude_final = ?, 
                    longitude_final = ?
                WHERE id = ?
            ");
            
            $ultimoPonto = end($trajeto);
            $resultado = $stmt->execute([
                json_encode($trajeto),
                $ultimoPonto['latitude'],
                $ultimoPonto['longitude'],
                $viagemId
            ]);
            
            if ($resultado) {
                echo "<div style='background: #e8f5e8; padding: 15px; border: 1px solid #27ae60; border-radius: 5px;'>";
                echo "✅ <strong>GPS simulado com sucesso!</strong><br>";
                echo "Adicionados " . count($trajeto) . " pontos GPS<br>";
                echo "Última posição: {$ultimoPonto['latitude']}, {$ultimoPonto['longitude']}";
                echo "</div>";
                
                echo "<h3>📍 Pontos adicionados:</h3>";
                echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
                echo "<tr><th>Ordem</th><th>Latitude</th><th>Longitude</th><th>Timestamp</th><th>Velocidade</th></tr>";
                
                foreach ($trajeto as $i => $ponto) {
                    echo "<tr>";
                    echo "<td>" . ($i + 1) . "</td>";
                    echo "<td>{$ponto['latitude']}</td>";
                    echo "<td>{$ponto['longitude']}</td>";
                    echo "<td>{$ponto['timestamp']}</td>";
                    echo "<td>{$ponto['velocidade']} km/h</td>";
                    echo "</tr>";
                }
                echo "</table>";
                
                echo "<p><strong>🗺️ Agora teste o rastreamento:</strong></p>";
                echo "<ul>";
                echo "<li><a href='admin/rastreamento.html' target='_blank'>🗺️ Mapa de Rastreamento</a></li>";
                echo "<li><a href='admin/rastreamento-dinamico.html' target='_blank'>🗺️ Mapa Dinâmico</a></li>";
                echo "<li><a href='api-simples-v2.php?acao=rastreamento' target='_blank'>📡 API de Rastreamento</a></li>";
                echo "<li><a href='teste-rastreamento-completo.php' target='_blank'>🔍 Verificar Novamente</a></li>";
                echo "</ul>";
                
            } else {
                echo "<div style='color: red;'>❌ Erro ao adicionar pontos GPS!</div>";
            }
        }
        
        echo "<hr>";
    }
    
    // Mostrar viagens ativas disponíveis
    echo "<h2>🚗 Viagens Ativas (disponíveis para simulação)</h2>";
    
    $stmt = $pdo->query("
        SELECT 
            v.id,
            v.cliente,
            v.tecnico_id,
            v.data_inicio,
            v.latitude_inicial,
            v.longitude_inicial,
            v.trajeto,
            m.nome as motorista_nome
        FROM viagens v
        LEFT JOIN motoristas m ON v.tecnico_id = m.nome
        WHERE v.data_fim IS NULL
        ORDER BY v.data_inicio DESC
    ");
    $viagensAtivas = $stmt->fetchAll();
    
    if (empty($viagensAtivas)) {
        echo "<div style='background: #fff3cd; padding: 15px; border: 1px solid #ffeaa7; border-radius: 5px;'>";
        echo "⚠️ Não há viagens ativas para simular GPS.<br>";
        echo "<a href='reabrir-viagem-teste.php'>🔓 Reabrir uma viagem para teste</a>";
        echo "</div>";
    } else {
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr>";
        echo "<th>ID</th>";
        echo "<th>Cliente</th>";
        echo "<th>Técnico</th>";
        echo "<th>Motorista</th>";
        echo "<th>Início</th>";
        echo "<th>GPS Inicial</th>";
        echo "<th>Trajeto Atual</th>";
        echo "<th>Ação</th>";
        echo "</tr>";
        
        foreach ($viagensAtivas as $v) {
            $trajeto = $v['trajeto'] ? json_decode($v['trajeto'], true) : [];
            $totalPontos = is_array($trajeto) ? count($trajeto) : 0;
            
            echo "<tr>";
            echo "<td><strong>{$v['id']}</strong></td>";
            echo "<td>{$v['cliente']}</td>";
            echo "<td>{$v['tecnico_id']}</td>";
            echo "<td>" . ($v['motorista_nome'] ?: '<em>Não identificado</em>') . "</td>";
            echo "<td>" . date('d/m H:i', strtotime($v['data_inicio'])) . "</td>";
            echo "<td>{$v['latitude_inicial']}, {$v['longitude_inicial']}</td>";
            echo "<td><strong>{$totalPontos}</strong> pontos</td>";
            echo "<td>";
            
            if ($totalPontos == 0) {
                echo "<a href='?simular={$v['id']}' style='background: #28a745; color: white; padding: 5px 10px; text-decoration: none; border-radius: 3px;'>📡 Simular GPS</a>";
            } else {
                echo "<span style='color: #28a745;'>✅ Tem GPS</span><br>";
                echo "<a href='?simular={$v['id']}' style='background: #ffc107; color: black; padding: 3px 8px; text-decoration: none; border-radius: 3px; font-size: 12px;'>+ Mais pontos</a>";
            }
            
            echo "</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    
    // Instruções
    echo "<h2>📋 Como funciona:</h2>";
    echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #dee2e6; border-radius: 5px;'>";
    echo "<ol>";
    echo "<li><strong>Clique em 'Simular GPS'</strong> na viagem ativa</li>";
    echo "<li><strong>Script adiciona 5 pontos GPS</strong> simulando movimento em Arapiraca</li>";
    echo "<li><strong>Verifique o mapa</strong> - agora deve mostrar a viagem com trajeto</li>";
    echo "<li><strong>Teste concluído!</strong> Se aparecer no mapa, o sistema está funcionando</li>";
    echo "</ol>";
    echo "<p><strong>⚠️ Nota:</strong> Isso é apenas para teste. No app real, os pontos GPS vêm do dispositivo móvel.</p>";
    echo "</div>";
    
} catch (Exception $e) {
    echo "<div style='color: red; font-weight: bold;'>ERRO: " . $e->getMessage() . "</div>";
}

?>

<style>
table { border-collapse: collapse; width: 100%; margin: 10px 0; }
th, td { border: 1px solid #ccc; padding: 8px; text-align: left; }
th { background: #f0f0f0; font-weight: bold; }
a { text-decoration: none; }
</style> 
