<?php
session_start();
// Verifica se o entregador está logado
if (!isset($_SESSION['usuario_id']) || $_SESSION['tipo'] !== 'entregador') {
    header("Location: index.php");
    exit;
}

$id_entrega = $_GET['id'] ?? '0'; // ID da entrega vindo da URL
?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>Em Rota | BRT Express</title>
    <link rel="stylesheet" href="https://unpkg.com/leaflet/dist/leaflet.css" />
    <style>
        body { font-family: 'Segoe UI', sans-serif; margin: 0; padding: 0; background: #1a1a1a; color: white; }
        #map { height: 60vh; width: 100%; }
        .status-panel { padding: 20px; background: #222; border-radius: 20px 20px 0 0; margin-top: -20px; position: relative; z-index: 1000; }
        .btn-cheguei { background: #28a745; color: white; border: none; padding: 15px; width: 100%; border-radius: 10px; font-weight: bold; font-size: 1.1em; cursor: pointer; }
        .info-rota { margin-bottom: 15px; border-bottom: 1px solid #444; padding-bottom: 10px; }
        .gps-indicator { display: inline-block; width: 10px; height: 10px; background: #ffc107; border-radius: 50%; margin-right: 5px; animation: pulse 1.5s infinite; }
        @keyframes pulse { 0% { opacity: 0.4; } 50% { opacity: 1; } 100% { opacity: 0.4; } }
    </style>
</head>
<body>

    <div id="map"></div>

    <div class="status-panel">
        <div class="info-rota">
            <span class="gps-indicator"></span> <strong>Rastreio Ativo (ID: #<?php echo $id_entrega; ?>)</strong>
            <p id="localizacao_txt" style="font-size: 0.9em; color: #aaa;">Obtendo posição GPS...</p>
        </div>

        <button class="btn-cheguei" onclick="finalizarEntrega()">CHEGUEI NA ESTAÇÃO (Finalizar)</button>
    </div>

    <script src="https://unpkg.com/leaflet/dist/leaflet.js"></script>
    <script>
        var map = L.map('map').setView([-22.9068, -43.1729], 15);
        L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);
        
        var marker = L.marker([0,0]).addTo(map);
        var idEntrega = "<?php echo $id_entrega; ?>";

        // 1. FUNÇÃO PARA ATUALIZAR O SERVIDOR
        function enviarPosicao(lat, lng) {
            fetch('atualizar_posicao.php', {
                method: 'POST',
                headers: { 'Content-Type': 'application/json' },
                body: JSON.stringify({
                    id: idEntrega,
                    lat: lat,
                    lng: lng
                })
            })
            .then(res => res.text())
            .then(txt => console.log("Servidor: " + txt));
        }

        // 2. MONITORAMENTO GPS CONSTANTE
        if ("geolocation" in navigator) {
            navigator.geolocation.watchPosition(function(position) {
                var lat = position.coords.latitude;
                var lng = position.coords.longitude;

                // Atualiza o mapa visualmente para o entregador
                var novaPos = [lat, lng];
                marker.setLatLng(novaPos);
                map.panTo(novaPos);
                
                document.getElementById('localizacao_txt').innerText = "Latitude: " + lat.toFixed(5) + " | Longitude: " + lng.toFixed(5);

                // Envia para o JSON que o cliente está lendo
                enviarPosicao(lat, lng);

            }, function(error) {
                alert("Erro ao acessar GPS: " + error.message);
            }, {
                enableHighAccuracy: true, // GPS de alta precisão
                maximumAge: 5000,         // Cache de 5 segundos
                timeout: 10000
            });
        } else {
            alert("Seu navegador não suporta GPS.");
        }

        // 3. FINALIZAR ENTREGA
        function finalizarEntrega() {
            if(confirm("Confirmar que você já está na plataforma do BRT para entrega?")) {
                window.location.href = "pegar_pedido.php?id=" + idEntrega + "&status=finalizado";
            }
        }
    </script>
</body>
</html>