<?php
// Configura o tempo de vida da sessão no servidor (60 segundos)
ini_set('session.gc_maxlifetime', 60);
session_set_cookie_params(60);

session_start();

// Define o tempo de expiração (1 minuto = 60 segundos)
$tempo_expiracao = 60; 

if (isset($_SESSION['ultimo_clique'])) {
    $inatividade = time() - $_SESSION['ultimo_clique'];
    
    if ($inatividade > $tempo_expiracao) {
        // Se passou de 1 minuto, destrói a sessão e manda para o login
        session_unset();
        session_destroy();
        header("Location: login2.php?erro=sessao_expirada");
        exit;
    }
}

// Atualiza o tempo do último clique para agora
$_SESSION['ultimo_clique'] = time();

$pedido['entregador_id'] = $_SESSION['usuario_cpf']; // Salva o CPF dele aqui!
$pedido['entregador_nome'] = $_SESSION['usuario_nome'];





?>

<?php
header('Content-Type: text/html; charset=utf-8');
session_start();
date_default_timezone_set('America/Sao_Paulo');

$arquivo = 'db_pedidos.json';
$pedidos = file_exists($arquivo) ? json_decode(file_get_contents($arquivo), true) : [];

if (!isset($_SESSION['corridas_ignoradas'])) {
    $_SESSION['corridas_ignoradas'] = [];
}

// 1. Lógica para esconder corrida do radar (Botão X)
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['acao']) && $_POST['acao'] == 'esconder') {
    $_SESSION['corridas_ignoradas'][] = $_POST['id_pedido'];
    header("Location: admin.php");
    exit;
}

// 2. Lógica para Aceitar ou Mudar Status (Confirmar Pedido)
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['id_pedido']) && !isset($_POST['acao'])) {
    $id = $_POST['id_pedido'];
    foreach ($pedidos as &$p) {
        if ($p['id'] == $id) {
            if (isset($_POST['novo_status'])) {
                if ($_POST['novo_status'] == 'cancelar') {
                    $p['status'] = "Procurando Entregador...";
                    $p['entregador_id'] = null;
                    $p['entregador_nome'] = null;
                } else {
                    $p['status'] = $_POST['novo_status'];
                    $p['entregador_id'] = (string)($_SESSION['usuario_id'] ?? 'OFFLINE');
                    $p['entregador_nome'] = $_SESSION['usuario_nome'] ?? 'Entregador';
                    
                    if (!isset($p['codigo_entrega']) || empty($p['codigo_entrega'])) {
                        $p['codigo_entrega'] = (string)rand(1000, 9999);
                    }
                }
            }
            break;
        }
    }
    file_put_contents($arquivo, json_encode(array_values($pedidos), JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
    header("Location: admin.php");
    exit;
}

$total_entregas_feitas = 0; 
$saldo_total = 0;
$pedido_em_foco = null;
$corridas_disponiveis = [];

if (is_array($pedidos)) {
    $meu_id = (string)($_SESSION['usuario_id'] ?? 'OFFLINE');
    
    foreach ($pedidos as $p) {
        $st_original = $p['status'] ?? '';
        $st_limpo = trim($st_original, ".");
        $entregador_do_p = (string)($p['entregador_id'] ?? '');

        if (!empty($entregador_do_p) && $entregador_do_p === $meu_id) {
            if (in_array($st_limpo, ["Em trânsito", "A caminho da Estação", "Entregador no Local"])) {
                $pedido_em_foco = $p;
            }
            if (stripos($st_limpo, 'Recebido') !== false || stripos($st_limpo, 'Concluída') !== false) {
                $total_entregas_feitas++;
                $saldo_total += 5.00;
            }
        } 
        elseif ($st_limpo == "Procurando Entregador" && empty($entregador_do_p) && !in_array($p['id'], $_SESSION['corridas_ignoradas'])) {
            $corridas_disponiveis[] = $p;
        }
    }
}

if ($pedido_em_foco) {
    $corridas_disponiveis = [];
}
?>
<!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">
    <meta http-equiv="refresh" content="30">
    <script src="https://cdn.tailwindcss.com"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <title>BRT Encomendas</title>
    <style>
        @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;800&display=swap');
        body { font-family: 'Inter', sans-serif; background-color: #F4F4F4; color: #1A1A1A; }
        .bg-99 { background-color: #FFD100; }
        .text-99 { color: #FFD100; }
        .btn-99 { background-color: #FFD100; color: #1A1A1A; font-weight: 800; }
    </style>
</head>
<body class="pb-10">

    <nav class="bg-white px-6 py-4 flex justify-between items-center shadow-sm sticky top-0 z-50">
        <div class="flex items-center gap-3">
            <div class="w-10 h-10 bg-99 rounded-full flex items-center justify-center font-black text-xl">BRT</div>
            <div>
               <p class="text-[10px] font-bold text-gray-400 uppercase leading-none">Online</p>
<h1 class="text-sm font-black uppercase tracking-tighter">
    <?php echo $_SESSION['usuario_nome'] ?? 'Sessão Encerrada'; ?>
</h1>
            </div>
        </div>
        <a href="login2.php?logout=1" class="text-gray-400 p-2"><i class="fas fa-sign-out-alt text-xl"></i></a>
    </nav>

    <div class="max-w-md mx-auto px-4 mt-4">
        <div class="bg-black text-white p-6 rounded-[2rem] flex justify-between items-center mb-6 shadow-2xl">
            <div>
                <p class="text-[10px] font-bold text-gray-400 uppercase mb-1">Ganhos do dia</p>
                <h2 class="text-3xl font-extrabold italic">R$ <?php echo number_format($saldo_total, 2, ',', '.'); ?></h2>
            </div>
            <div class="text-right">
                <p class="text-[10px] font-bold text-gray-400 uppercase mb-1">Entregas</p>
                <h2 class="text-3xl font-extrabold italic text-99"><?php echo $total_entregas_feitas; ?></h2>
            </div>
        </div>

        <?php if ($pedido_em_foco): ?>
            <div class="bg-white rounded-[2.5rem] shadow-xl overflow-hidden mb-8 border-2 border-99">
                <div class="bg-99 p-4 text-center">
                    <p class="text-[13px] font-black uppercase tracking-widest text-black/60">Corrida em Andamento</p>
                </div>
                
                <div class="p-6">
                    <div class="mb-4 flex justify-between items-start">
                        <div>
                            <p class="text-[10px] font-bold text-gray-400 uppercase">Solicitante</p>
                            <p class="text-sm font-black text-gray-800 italic uppercase"><?php echo htmlspecialchars($pedido_em_foco['cliente_nome'] ?? 'Não informado'); ?></p>
                        </div>
                        <?php if(!empty($pedido_em_foco['data_agendamento'])): ?>
                        <div class="text-right">
                            <p class="text-[10px] font-bold text-red-500 uppercase">Agendado para</p>
                            <p class="text-xs font-black text-gray-800"><?php echo $pedido_em_foco['data_agendamento']; ?></p>
                        </div>
                        <?php endif; ?>
                    </div>

                    <div class="bg-gray-50 border-2 border-dashed border-gray-200 rounded-3xl p-5 mb-6 text-center">
                        <p class="text-[10px] font-bold text-gray-400 uppercase mb-1">Código de Confirmação</p>
                        <h2 class="text-4xl font-black text-black tracking-[0.2em] italic">
                            <?php echo $pedido_em_foco['codigo_entrega'] ?? '----'; ?>
                        </h2>
                    </div>

                    <div class="space-y-3 mb-6">
                        <div class="flex items-center gap-3 bg-gray-50 p-3 rounded-2xl border border-gray-100">
                            <i class="fas fa-box text-gray-400"></i>
                            <span class="text-xs font-bold text-gray-800 uppercase italic">
                                Item: <?php echo htmlspecialchars($pedido_em_foco['item'] ?? 'Pedido Express'); ?>
                            </span>
                        </div>
                    </div>

                    <div class="relative pl-8 mb-6 border-l-2 border-gray-100 ml-2">
                        <div class="mb-4">
                            <p class="text-[9px] font-bold text-gray-400 uppercase">Retirada</p>
                            <p class="text-sm font-black text-gray-700  uppercase"><?php echo $pedido_em_foco['ponto_retirada']; ?></p>
                        </div>
                        <div>
                            <p class="text-[9px] font-bold text-gray-400 uppercase">Entrega</p>
                            <p class="text-sm font-black text-gray-700 uppercase"><?php echo $pedido_em_foco['ponto_entrega']; ?></p>
                        </div>
                    </div>

                    <div class="bg-gray-100 rounded-3xl p-4 mt-4">
                        <p class="text-[9px] font-black text-gray-400 uppercase mb-2 italic">Chat com o cliente</p>
                        <div id="box-chat" class="h-48 overflow-y-auto mb-4 space-y-2 flex flex-col p-2 text-[11px] bg-white/50 rounded-2xl border border-gray-200">
                            <p class="text-center text-gray-300 mt-10">Carregando...</p>
                        </div>
                        <div class="flex gap-2">
                            <input type="text" id="input-msg" class="flex-1 bg-white p-3 rounded-xl text-xs font-bold outline-none border border-transparent focus:border-99" placeholder="Mande uma mensagem...">
                            <button id="btn-enviar" onclick="enviarMensagem()" class="bg-black text-99 w-10 h-10 rounded-xl flex items-center justify-center">
                                <i class="fas fa-paper-plane"></i>
                            </button>
                        </div>
                    </div>

                    <form method="POST" onsubmit="return confirm('Sair desta corrida?');" class="mt-4">
                        <input type="hidden" name="id_pedido" value="<?php echo $pedido_em_foco['id']; ?>">
                        <button name="novo_status" value="cancelar" class="w-full py-3 text-red-500 font-bold text-[10px] uppercase border border-red-100 rounded-xl">
                            Abandonar Corrida
                        </button>
                    </form>
                </div>
            </div>
        <?php endif; ?>

        <h3 class="text-xs font-black uppercase italic text-gray-500 tracking-widest mb-4 flex items-center gap-2">
            <span class="w-2 h-2 bg-green-500 rounded-full animate-ping"></span> Radar de Corridas
        </h3>

        <?php if (empty($corridas_disponiveis)): ?>
            <div class="text-center py-16 bg-white rounded-[2rem] border-2 border-dashed border-gray-200">
                <i class="fas fa-satellite-dish text-gray-300 text-4xl mb-4"></i>
                <h2 class="text-sm font-bold text-gray-400 uppercase italic">Procurando pedidos...</h2>
            </div>
        <?php else: ?>
            <div class="space-y-4">
                
                
                
                
                
                <?php foreach (array_reverse($corridas_disponiveis) as $p): ?>
    <div class="bg-white rounded-[2rem] p-6 shadow-md border border-gray-100 relative overflow-hidden">
        
        <div class="absolute top-0 right-0">
            <div class="bg-99 text-black font-black px-4 py-2 rounded-bl-[1.5rem] shadow-sm flex flex-col items-center">
                <span class="text-[8px] uppercase tracking-tighter leading-none text-black/60">Solicitado</span>
                <span class="text-[10px] mt-1 leading-none">
                    <?php echo isset($p['data_hora']) ? date('d/m', strtotime($p['data_hora'])) : date('d/m'); ?>
                </span>
                <span class="text-xs font-black">
                    <?php echo isset($p['data_hora']) ? date('H:i', strtotime($p['data_hora'])) : date('H:i'); ?>
                </span>
            </div>
        </div>

        <form method="POST" class="absolute top-14 right-6"> <input type="hidden" name="id_pedido" value="<?php echo $p['id']; ?>">
            <input type="hidden" name="acao" value="esconder">
            <button type="submit" class="text-gray-300 hover:text-red-500"><i class="fas fa-times"></i></button>
        </form>

        <div class="mb-4 grid grid-cols-2 gap-2">
            <div>
                <p class="text-[10px] font-bold text-gray-400 uppercase">Cliente:</p>
                <p class="text-xs font-black text-gray-800 uppercase"><?php echo htmlspecialchars($p['cliente_nome'] ?? 'Privado'); ?></p>
            </div>
            <?php if(!empty($p['data_agendamento'])): ?>
            <div class="text-right">
                <p class="text-[10px] font-bold text-red-500 uppercase">Agendado:</p>
                <p class="text-[10px] font-black text-gray-800"><?php echo $p['data_agendamento']; ?></p>
            </div>
            <?php endif; ?>
        </div>

        <div class="mb-4">
            <p class="text-[10px] font-bold text-gray-400 uppercase">Item:</p>
            <p class="text-sm  text-gray-800 uppercase"><?php echo htmlspecialchars($p['item']); ?></p>
        </div>

        
        
        
        
        <div class="flex justify-between items-end mb-5">
    <div>
        <p class="text-[10px] font-bold text-gray-600 uppercase leading-none mb-2">Rota do Pedido:</p>
        <div class="flex items-start gap-2">
            <div>
                <p class="text-[9px] text-gray-600 uppercase leading-none">Busca:</p>
                <p class="text-[11px] font-bold text-blue-600 uppercase leading-tight">
                    <?php echo $p['ponto_retirada']; ?>
                </p>
            </div>
            
            <div class="text-gray-500 self-end pb-1">➔</div>

            <div>
                <p class="text-[10px] text-gray-600 uppercase leading-none">Entrega:</p>
                <p class="text-[11px] font-bold text-green-600 uppercase  leading-tight">
                    <?php echo $p['ponto_entrega']; ?>
                </p>
            </div>
        </div>
    </div>
    <div class="text-right">
        <p class="text-[13px] font-black text-green-600 italic">R$ 5,00</p>
    </div>
</div>

        <form method="POST">
            <input type="hidden" name="id_pedido" value="<?php echo $p['id']; ?>">
            <button name="novo_status" value="Em trânsito" class="w-full btn-99 py-4 rounded-2xl shadow-lg uppercase italic text-xs tracking-widest active:scale-95 transition-all">
                Aceitar Corrida
            </button>
        </form>
    </div>
<?php endforeach; ?>
                
                
                
                
                
                
                
                
                
                
                
            </div>
        <?php endif; ?>
    </div>

    <audio id="alarme99" src="https://assets.mixkit.co/active_storage/sfx/2358/2358-preview.mp3" preload="auto"></audio>

    <script>
        const pedidoAtivoId = "<?php echo $pedido_em_foco['id'] ?? ''; ?>";
        const temNovosPedidos = <?php echo !empty($corridas_disponiveis) ? 'true' : 'false'; ?>;

        window.addEventListener('load', () => {
            if (temNovosPedidos && !pedidoAtivoId) {
                const alarme = document.getElementById('alarme99');
                alarme.play().catch(e => console.log("Áudio bloqueado."));
            }
        });

        function carregarMensagens() {
            if (!pedidoAtivoId) return;
            fetch('mensagens.json?t=' + Date.now())
                .then(r => r.json())
                .then(data => {
                    const box = document.getElementById('box-chat');
                    if (!box) return;
                    const msgs = data[pedidoAtivoId] || [];
                    
                    if (msgs.length === 0) {
                        box.innerHTML = '<p class="text-center text-gray-300 mt-10">Sem mensagens.</p>';
                        return;
                    }

                    box.innerHTML = msgs.map(m => `
                        <div class="flex ${m.de === 'entregador' ? 'justify-end' : 'justify-start'} mb-1">
                            <div class="p-2 px-4 rounded-2xl ${m.de === 'entregador' ? 'bg-black text-[#FFD100] rounded-tr-none' : 'bg-white text-gray-800 border border-gray-200 rounded-tl-none'} max-w-[85%] font-bold">
                                ${m.msg}
                            </div>
                        </div>
                    `).join('');
                    box.scrollTop = box.scrollHeight;
                }).catch(e => console.log("Aguardando JSON..."));
        }

        function enviarMensagem() {
            const input = document.getElementById('input-msg');
            const msg = input.value.trim();
            if (!msg || !pedidoAtivoId) return;

            const params = new URLSearchParams();
            params.append('id', pedidoAtivoId);
            params.append('msg', msg);
            params.append('de', 'entregador');

            fetch('processar_chat.php', {
                method: 'POST',
                body: params
            }).then(() => {
                input.value = '';
                carregarMensagens();
            });
        }

        if (pedidoAtivoId) {
            carregarMensagens();
            setInterval(carregarMensagens, 3000);
            document.getElementById('input-msg').addEventListener('keypress', (e) => {
                if (e.key === 'Enter') enviarMensagem();
            });
        }
    </script>

<script>
    (function() {
        let tempoInatividade;

        const deslogarUsuario = () => {
            window.location.href = 'login2.php?erro=inatividade';
        };

        const resetarTimer = () => {
            clearTimeout(tempoInatividade);
            tempoInatividade = setTimeout(deslogarUsuario, 60000);
        };

        const eventos = ['mousedown', 'mousemove', 'keypress', 'scroll', 'touchstart'];

        eventos.forEach(evento => {
            document.addEventListener(evento, resetarTimer, true);
        });

        resetarTimer();
    })();
</script>

<audio id="somAlerta" src="alerta.mp3" preload="auto"></audio>

<script>
    let quantidadeAntiga = null;

    function monitorarNovosPedidos() {
        fetch('db_pedidos.json?t=' + Date.now())
            .then(response => response.json())
            .then(pedidos => {
                const quantidadeAtual = pedidos.length;

                if (quantidadeAntiga !== null) {
                    if (quantidadeAtual > quantidadeAntiga) {
                        tocarSom();
                    }
                }
                quantidadeAntiga = quantidadeAtual;
            })
            .catch(error => console.error('Erro ao monitorar pedidos:', error));
    }

    function tocarSom() {
        const audio = document.getElementById('somAlerta');
        audio.play().catch(function(error) {
            console.log("O navegador bloqueou o som.");
        });

        if (Notification.permission === "granted") {
            new Notification("NOVA CORRIDA!", {
                body: "Um novo pedido de corrida chegou!",
                icon: "icone-app.png"
            });
        }
    }

    if (Notification.permission !== "denied") {
        Notification.requestPermission();
    }

    setInterval(monitorarNovonPedidos, 5000);
</script>

</body>
</html>