<?php
// ARQUIVO: includes/sidebar.php
$cargo = $_SESSION['usuario_tipo_conta'] ?? '';
$is_cliente = isset($_SESSION['cliente_logado']) && $_SESSION['cliente_logado'] === true;
$base_path = '/admin';

// BUSCA AS CONFIGURAÇÕES DA PLATAFORMA
$stmt_conf = $pdo->query("SELECT chave, valor FROM configuracoes");
$confs = $stmt_conf->fetchAll(PDO::FETCH_KEY_PAIR);
$logo_plataforma = $confs['logo_site'] ?? ($confs['logo_sistema'] ?? '');
$nome_plataforma = $confs['nome_estabelecimento'] ?? 'ALCEPASS';
$cor_base_sb = $confs['cor_site_base'] ?? '#01B9B9';
$cor_dest_sb = $confs['cor_site_destaque'] ?? '#F06277';

// IDENTIFICAÇÃO DA EMPRESA ATIVA NO SIDEBAR
$nome_empresa_sidebar = $nome_plataforma;
$cnpj_empresa_sidebar = '';

if (!$is_cliente && isset($_SESSION['unidade_ativa']) && $_SESSION['unidade_ativa'] !== 'global') {
    $stmt_u = $pdo->prepare("SELECT nome, cnpj FROM usuarios WHERE id = ?");
    $stmt_u->execute([$_SESSION['unidade_ativa']]);
    $u_data = $stmt_u->fetch();
    if ($u_data) {
        $nome_empresa_sidebar = $u_data['nome'];
        if (!empty($u_data['cnpj'])) {
            $cnpj_empresa_sidebar = $u_data['cnpj'];
        }
    }
}

// DEFINIÇÃO DOS LINKS INICIAIS
$link_home = $is_cliente ? '/cliente/index.php' : (in_array($cargo, ['master', 'dono', 'admin']) ? "$base_path/index.php" : "$base_path/dashboard.php");
$link_monitor = "$base_path/relatorios/monitor.php";
?>

<style>
    :root {
        --sb-bg: #0a0a0a;
        --sb-borda: #1f1f1f;
        --sb-texto: #888888;
        --sb-texto-hover: #ffffff;
        --sb-ativo-bg: rgba(1, 185, 185, 0.1);
        --sb-base: <?= $cor_base_sb ?>;
        --sb-destaque: <?= $cor_dest_sb ?>;
        --sb-width: 260px;
        --sb-mini-width: 80px;
    }

    /* CSS DO SIDEBAR - BLINDADO CONTRA CONFLITOS DO STYLE.CSS */
    .sidebar { 
        position: fixed !important; top: 0 !important; 
        left: calc(var(--sb-width) * -1) !important; 
        width: var(--sb-width) !important; height: 100vh !important; 
        background: var(--sb-bg) !important; border-right: 1px solid var(--sb-borda) !important; 
        transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important; 
        z-index: 1005 !important; display: flex !important; flex-direction: column !important; 
        padding: 0 !important; /* Remove o padding de 25px do style.css que estava quebrando o layout */
    }
    
    .sidebar.open { left: 0 !important; }
    
    @media (min-width: 993px) { 
        .sidebar { left: 0 !important; } 
    }

    /* BOTÃO FLUTUANTE DE RECOLHER (APENAS DESKTOP) */
    .btn-collapse-sidebar {
        position: absolute; top: 25px; right: -15px; width: 30px; height: 30px;
        background: var(--sb-base); color: #000; border-radius: 50%;
        display: none; justify-content: center; align-items: center;
        cursor: pointer; z-index: 1010; box-shadow: 0 2px 10px rgba(0,0,0,0.5);
        font-size: 1.2rem; transition: 0.3s;
    }
    @media (min-width: 993px) { .btn-collapse-sidebar { display: flex; } }

    /* CABEÇALHO DO SIDEBAR */
    .sidebar-header-box { padding: 20px 15px; border-bottom: 1px solid var(--sb-borda); background: #000; display: flex; flex-direction: column; align-items: center; }
    
    .sidebar-logo-area { width: 100%; display: flex; justify-content: center; align-items: center; margin-bottom: 15px; min-height: 45px; position: relative;}
    .sidebar-logo-area img { max-width: 140px; max-height: 45px; object-fit: contain; transition: 0.3s; }
    .sidebar-logo-area h2 { font-size: 1.4rem; font-weight: 900; margin: 0; background: linear-gradient(45deg, var(--sb-base), var(--sb-destaque)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; text-transform: uppercase; letter-spacing: 1px; }
    .mini-logo-icon { display: none; font-size: 2rem; color: var(--sb-base); }
    
    .close-sidebar { font-size: 1.8rem; color: var(--sb-texto); cursor: pointer; transition: 0.3s; position: absolute; right: 0; display: none; }
    @media (max-width: 992px) { .close-sidebar { display: block; } }

    .sidebar-company-area { width: 100%; display: flex; justify-content: space-between; align-items: center; background: #111; padding: 10px; border-radius: 8px; border: 1px solid #222; transition: 0.3s;}
    .sidebar-company-info { display: flex; flex-direction: column; overflow: hidden; white-space: nowrap; }
    .company-name { font-weight: 900; font-size: 0.8rem; color: #fff; text-transform: uppercase; text-overflow: ellipsis; overflow: hidden; }
    .company-cnpj { font-size: 0.65rem; color: #666; font-weight: 700; margin-top: 2px; }

    /* BOTÃO DE TEMA COMPACTO */
    .sb-theme-btn-mini { width: 32px; height: 32px; flex-shrink: 0; display: flex; justify-content: center; align-items: center; background: #1a1a1a; border: 1px solid #333; border-radius: 50%; cursor: pointer; color: var(--sb-texto); transition: 0.3s; }
    .sb-theme-btn-mini:hover { color: var(--sb-base); border-color: var(--sb-base); }

    /* MENU */
    .sidebar-menu { padding: 15px 10px !important; flex: 1; overflow-y: auto; overflow-x: hidden; list-style: none; margin: 0; }
    .sidebar-menu::-webkit-scrollbar { width: 4px; }
    .sidebar-menu::-webkit-scrollbar-thumb { background: #333; border-radius: 10px; }
    .sidebar-menu li { margin-bottom: 4px; }
    
    .sidebar-menu a { display: flex !important; align-items: center !important; gap: 10px !important; padding: 12px 10px !important; color: var(--sb-texto); text-decoration: none; font-weight: 600; font-size: 0.85rem; border-radius: 8px; transition: all 0.3s ease; overflow: hidden; }
    .sidebar-menu a i { font-size: 1.2rem; transition: 0.3s; flex-shrink: 0; margin: 0 !important; }
    
    /* Truncamento elegante com três pontinhos */
    .sidebar-menu a span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: 0.3s; opacity: 1; flex: 1; }
    
    .sidebar-menu a:hover, .sidebar-menu a.ativo { background: var(--sb-ativo-bg); color: var(--sb-texto-hover); }
    .sidebar-menu a:hover i, .sidebar-menu a.ativo i { color: var(--sb-base); transform: scale(1.1); }
    
    .menu-divisor { font-size: 0.65rem; color: #555; font-weight: 900; text-transform: uppercase; margin: 25px 0 10px 10px; letter-spacing: 1.5px; transition: 0.3s; white-space: nowrap; }

    .sidebar-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100vh; background: rgba(0,0,0,0.8); z-index: 1000; display: none; backdrop-filter: blur(5px); transition: 0.3s; opacity: 0; }
    .sidebar-overlay.open { display: block; opacity: 1; }

    /* =========================================================
       ESTADO MINI (SIDEBAR RECOLHIDA)
       ========================================================= */
    body.sidebar-mini .sidebar { width: var(--sb-mini-width) !important; }
    body.sidebar-mini .btn-collapse-sidebar { transform: rotate(180deg); right: -15px; }
    body.sidebar-mini .sidebar-logo-area img { display: none; }
    body.sidebar-mini .sidebar-logo-area h2 { display: none; }
    body.sidebar-mini .mini-logo-icon { display: block; }
    
    body.sidebar-mini .sidebar-company-info { display: none; }
    body.sidebar-mini .sidebar-company-area { justify-content: center; padding: 10px 0; background: transparent; border: none; }
    
    body.sidebar-mini .sidebar-menu { padding-left: 5px !important; padding-right: 5px !important; overflow-x: hidden; }
    body.sidebar-mini .sidebar-menu a { justify-content: center !important; padding: 12px 0 !important; }
    body.sidebar-mini .sidebar-menu a span { display: none !important; opacity: 0; }
    body.sidebar-mini .menu-divisor { text-align: center; margin-left: 0; font-size: 0; }
    body.sidebar-mini .menu-divisor::after { content: '•••'; font-size: 0.8rem; }

    body.sidebar-mini .main-wrapper { margin-left: var(--sb-mini-width) !important; width: calc(100% - var(--sb-mini-width)) !important; }
    body.sidebar-mini .main-content { margin-left: var(--sb-mini-width) !important; width: calc(100% - var(--sb-mini-width)) !important; }

    /* =========================================================
       MODO CLARO
       ========================================================= */
    body.light-mode { background-color: #f4f7f6 !important; color: #111 !important; }
    body.light-mode .sidebar { background-color: #ffffff !important; border-right-color: #dddddd !important; box-shadow: 2px 0 15px rgba(0,0,0,0.05);}
    body.light-mode .sidebar-header-box { background-color: #fcfcfc !important; border-bottom-color: #dddddd !important; }
    body.light-mode .sidebar-company-area { background: #f0f0f0; border-color: #e0e0e0; }
    body.light-mode .company-name { color: #111 !important; }
    body.light-mode .sb-theme-btn-mini { background: #fff !important; border-color: #ccc !important; color: #555 !important; }
    body.light-mode .sb-theme-btn-mini:hover { color: var(--sb-base) !important; border-color: var(--sb-base) !important; }
    
    body.light-mode .sidebar-menu a { color: #666 !important; }
    body.light-mode .sidebar-menu a:hover, body.light-mode .sidebar-menu a.ativo { background-color: rgba(1, 185, 185, 0.1) !important; color: var(--sb-base) !important; }
    body.light-mode .menu-divisor { color: #999 !important; }
    
    /* Scrollbar mais suave e clara no Modo Claro para remover a linha preta grossa */
    body.light-mode .sidebar-menu::-webkit-scrollbar-thumb { background: #cccccc; border-radius: 10px; }
</style>

<div class="sidebar-overlay" id="sidebar-overlay" onclick="fecharSidebar()"></div>

<aside class="sidebar" id="sidebar">
    <div class="btn-collapse-sidebar" onclick="toggleMiniSidebar()">
        <i class='bx bx-chevron-left'></i>
    </div>

    <div class="sidebar-header-box">
        <div class="sidebar-logo-area">
            <?php if(!empty($logo_plataforma)): ?>
                <img src="/assets/uploads/<?= htmlspecialchars($logo_plataforma) ?>" alt="Logo">
            <?php else: ?>
                <h2>ALCEPASS</h2>
            <?php endif; ?>
            <i class='bx bx-diamond mini-logo-icon'></i>
            <i class='bx bx-x close-sidebar' onclick="fecharSidebar()"></i>
        </div>

        <div class="sidebar-company-area">
            <div class="sidebar-company-info">
                <div class="company-name" title="<?= htmlspecialchars($nome_empresa_sidebar) ?>"><?= htmlspecialchars($nome_empresa_sidebar) ?></div>
                <?php if(!empty($cnpj_empresa_sidebar)): ?>
                    <div class="company-cnpj"><?= htmlspecialchars(preg_replace("/^(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/", "$1.$2.$3/$4-$5", $cnpj_empresa_sidebar)) ?></div>
                <?php endif; ?>
            </div>

            <div class="sb-theme-btn-mini" onclick="alternarTemaGlobal()" title="Mudar Tema">
                <i class='bx bx-sun' id="sb-theme-icon"></i>
            </div>
        </div>
    </div>

    <ul class="sidebar-menu">
        <li><a href="<?= $link_home ?>" title="Início"><i class='bx bx-home-alt'></i> <span>Início</span></a></li>

        <?php if ($is_cliente): ?>
            <div class="menu-divisor">Área do Cliente</div>
            <li><a href="/index.php" title="Vitrine de Eventos"><i class='bx bx-store'></i> <span>Vitrine de Eventos</span></a></li>
            <li><a href="/cliente/meus-ingressos.php" title="Meus Ingressos"><i class='bx bx-qr-scan'></i> <span>Meus Ingressos</span></a></li>
            <li><a href="/cliente/perfil.php" title="Meu Perfil"><i class='bx bx-user-circle'></i> <span>Meu Perfil</span></a></li>

        <?php else: ?>
            
            <?php if (in_array($cargo, ['master', 'dono', 'admin', 'produtor'])): ?>
                <div class="menu-divisor">Eventos & Marketing</div>
                <li><a href="<?= $base_path ?>/eventos/index.php" title="Meus Eventos"><i class='bx bx-calendar-star'></i> <span>Meus Eventos</span></a></li>
                <li><a href="<?= $base_path ?>/promotores/index.php" title="Promotores & Comissões"><i class='bx bx-network-chart'></i> <span>Promotores & Comissões</span></a></li>
                <li><a href="<?= $base_path ?>/promotores/cupom_desconto.php" title="Cupons de Desconto"><i class='bx bx-purchase-tag-alt'></i> <span>Cupons de Desconto</span></a></li>
                <li><a href="<?= $base_path ?>/clientes.php" title="Base de Clientes"><i class='bx bx-group'></i> <span>Base de Clientes</span></a></li>
            <?php endif; ?>

            <?php if (in_array($cargo, ['master', 'dono', 'admin', 'produtor'])): ?>
                <div class="menu-divisor">Bilheteria (PDV)</div>
                <li><a href="<?= $base_path ?>/eventos/emitir_manual.php" title="Emissão Manual / PDV"><i class='bx bx-laptop'></i> <span>Emissão Manual / PDV</span></a></li>
                <li><a href="<?= $base_path ?>/cortesia/enviar.php" title="Emissão de Cortesias"><i class='bx bx-gift'></i> <span>Emissão de Cortesias</span></a></li>
                <li><a href="<?= $base_path ?>/cortesia/lista.php" title="Nome na Lista"><i class='bx bx-list-check'></i> <span>Nome na Lista</span></a></li>
            <?php endif; ?>

            <?php if (in_array($cargo, ['master', 'dono', 'admin', 'produtor', 'socio'])): ?>
                <div class="menu-divisor">Monitoramento & Financeiro</div>
                <li><a href="<?= $link_monitor ?>" title="Monitor Live (Real-time)"><i class='bx bx-pulse'></i> <span>Monitor Live (Real-time)</span></a></li>
                <li><a href="<?= $base_path ?>/relatorios.php" title="Relatórios de Vendas"><i class='bx bx-line-chart'></i> <span>Relatórios de Vendas</span></a></li>
                <li><a href="<?= $base_path ?>/extrato.php" title="Extrato & Repasses"><i class='bx bx-wallet'></i> <span>Extrato & Repasses</span></a></li>
            <?php endif; ?>

            <?php if (in_array($cargo, ['master', 'dono', 'admin', 'promotor', 'produtor'])): ?>
                <div class="menu-divisor">Operacional & Portaria</div>
                <li><a href="<?= $base_path ?>/auditoria.php" title="Auditoria de Ingressos"><i class='bx bx-check-shield'></i> <span>Auditoria de Ingressos</span></a></li>
            <?php endif; ?>

            <?php if (in_array($cargo, ['master', 'dono', 'admin', 'cantor', 'produtor'])): ?>
                <li><a href="<?= $base_path ?>/portaria.php" title="Leitor de Portaria"><i class='bx bx-scan'></i> <span>Leitor de Portaria</span></a></li>
            <?php endif; ?>

            <?php if (in_array($cargo, ['master', 'dono', 'admin'])): ?>
                <div class="menu-divisor">Administração Master</div>
                <li><a href="<?= $base_path ?>/dispositivos.php" title="Maquininhas Smart POS"><i class='bx bx-devices'></i> <span>Maquininhas Smart POS</span></a></li>
                <li><a href="<?= $base_path ?>/usuarios.php" title="Gerenciar Usuários"><i class='bx bxs-user-badge'></i> <span>Gerenciar Usuários</span></a></li>
                <li><a href="<?= $base_path ?>/logs.php" title="Logs do Sistema"><i class='bx bx-history'></i> <span>Logs do Sistema</span></a></li>
                <li><a href="<?= $base_path ?>/configuracoes.php" title="Configurações Gerais"><i class='bx bx-cog'></i> <span>Configurações Gerais</span></a></li>
            <?php endif; ?>
        <?php endif; ?>
    </ul>
</aside>

<script>
    // Controle do Ícone de Tema
    function atualizarBotaoTema() {
        const isLight = document.body.classList.contains('light-mode');
        const icon = document.getElementById('sb-theme-icon');
        if(isLight) {
            icon.classList.replace('bx-sun', 'bx-moon');
        } else {
            icon.classList.replace('bx-moon', 'bx-sun');
        }
    }

    // Alternar Tema
    function alternarTemaGlobal() {
        document.body.classList.toggle('light-mode');
        if (document.body.classList.contains('light-mode')) {
            localStorage.setItem('alcepass_tema', 'light');
        } else {
            localStorage.setItem('alcepass_tema', 'dark');
        }
        atualizarBotaoTema();
    }

    // Controle da Mini Sidebar
    function toggleMiniSidebar() {
        document.body.classList.toggle('sidebar-mini');
        if (document.body.classList.contains('sidebar-mini')) {
            localStorage.setItem('alcepass_sidebar_mini', 'true');
        } else {
            localStorage.setItem('alcepass_sidebar_mini', 'false');
        }
    }

    document.addEventListener("DOMContentLoaded", function() {
        // Aplica o tema salvo
        if (localStorage.getItem('alcepass_tema') === 'light') { 
            document.body.classList.add('light-mode'); 
        }
        atualizarBotaoTema();

        // Aplica a preferência da Mini Sidebar salva
        if (window.innerWidth > 992 && localStorage.getItem('alcepass_sidebar_mini') === 'true') {
            document.body.classList.add('sidebar-mini');
        }

        // Seleção do Menu Ativo
        let pathName = window.location.pathname;
        document.querySelectorAll('.sidebar-menu a').forEach(link => {
            let href = link.getAttribute('href');
            if (href && pathName.includes(href) && href !== '/admin/index.php' && href !== '/admin/dashboard.php') {
                link.classList.add('ativo');
            } else if ((pathName === '/admin/index.php' || pathName === '/admin/dashboard.php') && (href === '/admin/index.php' || href === '/admin/dashboard.php')) {
                link.classList.add('ativo');
            }
        });
    });

    // Controle Mobile
    function toggleSidebar() {
        const sidebar = document.getElementById('sidebar');
        const overlay = document.getElementById('sidebar-overlay');
        if(sidebar.classList.contains('open')) { 
            fecharSidebar(); 
        } else {
            sidebar.classList.add('open'); 
            overlay.classList.add('open'); 
            document.body.style.overflow = 'hidden'; 
        }
    }
    function fecharSidebar() {
        document.getElementById('sidebar').classList.remove('open');
        document.getElementById('sidebar-overlay').classList.remove('open');
        document.body.style.overflow = ''; 
    }
</script>