<% const path = currentPath || ''; %>
<% const adminUser = typeof currentUser !== 'undefined' ? currentUser : null; %>
<% const capabilities = Array.isArray(adminUser?.capabilities) ? adminUser.capabilities : []; %>
<% const hasCap = (cap) => adminUser && (adminUser.role === 'admin' || capabilities.includes(cap)); %>
<% const navCompanyName = typeof currentCompany !== 'undefined' && currentCompany ? currentCompany.name : 'SaaS DEMO'; %>
<% const navCompanySlug = typeof currentCompany !== 'undefined' && currentCompany && currentCompany.slug ? currentCompany.slug : 'saas-demo'; %>
<% const navPublicSiteUrl = navCompanySlug === 'saas-demo' ? '/demo/saas-demo' : `/site/${navCompanySlug}`; %>
<% const navCsrfToken = typeof csrfToken !== 'undefined' ? csrfToken : ''; %>
<% const adminBase = typeof adminBaseUrl !== 'undefined' ? adminBaseUrl : '/admin'; %>
<% const staffBase = typeof staffBaseUrl !== 'undefined' ? staffBaseUrl : '/agenda'; %>
<% const active = (target) => target === '/admin' ? path === '/admin' : path.startsWith(target); %>
<% const groupActive = (targets) => targets.some((target) => target === '/agenda' ? path.startsWith('/agenda') : active(target)); %>
<% const canDashboard = hasCap('dashboard'); %>
<% const canClients = hasCap('clients') || hasCap('clients_read'); %>
<% const canSales = hasCap('sales'); %>
<% const canFinance = hasCap('finance'); %>
<% const canOperations = hasCap('operations'); %>
<% const canField = hasCap('field') || canOperations || adminUser?.role === 'admin'; %>
<% const canHr = hasCap('hr'); %>
<% const canSite = hasCap('site'); %>
<% const canPhotos = hasCap('photos') || canSite; %>
<% const canMessages = hasCap('messages'); %>
<% const canSettings = hasCap('settings'); %>
<% const canSuite = hasCap('suite'); %>
<% const payrollEnabled = Boolean(app?.features?.payroll); %>
<aside class="side-nav-shell premium-side-nav" data-side-nav-shell>
  <button class="mobile-menu-button" type="button" data-side-nav-toggle aria-expanded="false">
    <span>Menu administration</span>
    <strong>Ouvrir</strong>
  </button>
  <div class="side-nav-title">
    <strong>Administration</strong>
    <span><%= navCompanyName %></span>
  </div>
  <div class="side-nav-actions">
    <a class="admin-site-link" href="<%= navPublicSiteUrl %>"><span class="nav-icon"><%- ui.navIcon('home') %></span><span>Voir le site</span></a>
    <form method="post" action="/auth/deconnexion">
      <input type="hidden" name="_csrf" value="<%= navCsrfToken %>">
      <button class="admin-logout-button secondary" type="submit"><span class="nav-icon"><%- ui.navIcon('logout') %></span><span>Déconnexion</span></button>
    </form>
  </div>
  <nav class="side-nav nav-accordion" aria-label="Navigation admin">
    <% if (canDashboard) { %>
      <% const pilotageOpen = groupActive(['/admin', '/admin/recherche', '/admin/conversions']); %>
      <details class="nav-group" <%= pilotageOpen ? 'open' : '' %>>
        <summary><span class="nav-group-icon"><%- ui.navIcon('dashboard') %></span><span><strong>Pilotage</strong><small>Vue, tâches, recherche</small></span></summary>
        <div class="nav-group-items">
          <a class="<%= active('/admin') ? 'active' : '' %>" href="<%= adminBase %>"><span class="nav-icon"><%- ui.navIcon('dashboard') %></span><span>Dashboard</span></a>
          <a class="<%= active('/admin/recherche') ? 'active' : '' %>" href="<%= adminBase %>/recherche"><span class="nav-icon"><%- ui.navIcon('search') %></span><span>Recherche globale</span></a>
          <a class="<%= active('/admin/conversions') ? 'active' : '' %>" href="<%= adminBase %>/conversions"><span class="nav-icon"><%- ui.navIcon('chart') %></span><span>Conversions</span></a>
        </div>
      </details>
    <% } %>

    <% if (canSales) { %>
      <% const ventesOpen = groupActive(['/admin/demandes', '/admin/devis', '/admin/pipeline']); %>
      <details class="nav-group" <%= ventesOpen ? 'open' : '' %>>
        <summary><span class="nav-group-icon"><%- ui.navIcon('pipeline') %></span><span><strong>Ventes</strong><small>Demandes, devis, pipeline</small></span></summary>
        <div class="nav-group-items">
          <a class="<%= active('/admin/demandes') ? 'active' : '' %>" href="<%= adminBase %>/demandes"><span class="nav-icon"><%- ui.navIcon('inbox') %></span><span>Demandes</span></a>
          <a class="<%= active('/admin/devis') ? 'active' : '' %>" href="<%= adminBase %>/devis"><span class="nav-icon"><%- ui.navIcon('document') %></span><span>Devis</span></a>
          <a class="<%= active('/admin/pipeline') ? 'active' : '' %>" href="<%= adminBase %>/pipeline"><span class="nav-icon"><%- ui.navIcon('pipeline') %></span><span>Pipeline</span></a>
        </div>
      </details>
    <% } %>

    <% if (canClients || canMessages) { %>
      <% const clientsOpen = groupActive(['/admin/clients', '/admin/messages']); %>
      <details class="nav-group" <%= clientsOpen ? 'open' : '' %>>
        <summary><span class="nav-group-icon"><%- ui.navIcon('users') %></span><span><strong>Clients</strong><small>Fiches 360, messages</small></span></summary>
        <div class="nav-group-items">
          <% if (canClients) { %><a class="<%= active('/admin/clients') ? 'active' : '' %>" href="<%= adminBase %>/clients"><span class="nav-icon"><%- ui.navIcon('users') %></span><span>Clients</span></a><% } %>
          <% if (canMessages) { %><a class="<%= active('/admin/messages') ? 'active' : '' %>" href="<%= adminBase %>/messages"><span class="nav-icon"><%- ui.navIcon('message') %></span><span>Messages</span></a><% } %>
        </div>
      </details>
    <% } %>

    <% if (canOperations || canField || canFinance || canSuite) { %>
      <% const terrainOpen = groupActive(['/admin/planning-assiste', '/admin/agenda-terrain', '/admin/conciergerie', '/admin/suite', '/admin/interventions', '/agenda', '/admin/heures-facturables']); %>
      <details class="nav-group" <%= terrainOpen ? 'open' : '' %>>
        <summary><span class="nav-group-icon"><%- ui.navIcon('agenda') %></span><span><strong>Terrain</strong><small>Planning, qualité, matériel</small></span></summary>
        <div class="nav-group-items">
          <a class="<%= active('/admin/planning-assiste') ? 'active' : '' %>" href="<%= adminBase %>/planning-assiste"><span class="nav-icon"><%- ui.navIcon('agenda') %></span><span>Planning assisté</span></a>
          <% if (canOperations) { %><a class="<%= active('/admin/interventions') ? 'active' : '' %>" href="<%= adminBase %>/interventions"><span class="nav-icon"><%- ui.navIcon('briefcase') %></span><span>Interventions</span></a><% } %>
          <% if (canSuite) { %><a class="<%= active('/admin/conciergerie') ? 'active' : '' %>" href="<%= adminBase %>/conciergerie"><span class="nav-icon"><%- ui.navIcon('home') %></span><span>Conciergerie</span></a><% } %>
          <% if (canSuite) { %><a class="<%= active('/admin/suite') ? 'active' : '' %>" href="<%= adminBase %>/suite"><span class="nav-icon"><%- ui.navIcon('spark') %></span><span>Suite métier</span></a><% } %>
          <% if (canField) { %><a class="<%= active('/admin/agenda-terrain') ? 'active' : '' %>" href="<%= adminBase %>/agenda-terrain"><span class="nav-icon"><%- ui.navIcon('agenda') %></span><span>Agenda terrain</span></a><% } %>
          <% if (canFinance) { %><a class="<%= active('/admin/heures-facturables') ? 'active' : '' %>" href="<%= adminBase %>/heures-facturables"><span class="nav-icon"><%- ui.navIcon('timer') %></span><span>Heures à facturer</span></a><% } %>
        </div>
      </details>
    <% } %>

    <% if (canFinance) { %>
      <% const financeOpen = groupActive(['/admin/factures', '/admin/fiduciaire', '/admin/comptabilite']); %>
      <details class="nav-group" <%= financeOpen ? 'open' : '' %>>
        <summary><span class="nav-group-icon"><%- ui.navIcon('calculator') %></span><span><strong>Finance</strong><small>Factures, CAMT, TVA</small></span></summary>
        <div class="nav-group-items">
          <a class="<%= active('/admin/factures') ? 'active' : '' %>" href="<%= adminBase %>/factures"><span class="nav-icon"><%- ui.navIcon('receipt') %></span><span>Factures</span></a>
          <a class="<%= active('/admin/fiduciaire') ? 'active' : '' %>" href="<%= adminBase %>/fiduciaire"><span class="nav-icon"><%- ui.navIcon('folder') %></span><span>Fiduciaire</span></a>
          <a class="<%= active('/admin/comptabilite') && path === '/admin/comptabilite' ? 'active' : '' %>" href="<%= adminBase %>/comptabilite"><span class="nav-icon"><%- ui.navIcon('calculator') %></span><span>Comptabilité</span></a>
          <a class="<%= active('/admin/comptabilite/transactions') ? 'active' : '' %>" href="<%= adminBase %>/comptabilite/transactions"><span class="nav-icon"><%- ui.navIcon('bank') %></span><span>Banque CAMT</span></a>
          <a class="<%= active('/admin/comptabilite/journal') ? 'active' : '' %>" href="<%= adminBase %>/comptabilite/journal"><span class="nav-icon"><%- ui.navIcon('book') %></span><span>Journal</span></a>
          <a class="<%= active('/admin/comptabilite/comptes') ? 'active' : '' %>" href="<%= adminBase %>/comptabilite/comptes"><span class="nav-icon"><%- ui.navIcon('list') %></span><span>Plan comptable</span></a>
          <a class="<%= active('/admin/comptabilite/achats') ? 'active' : '' %>" href="<%= adminBase %>/comptabilite/achats"><span class="nav-icon"><%- ui.navIcon('wallet') %></span><span>Achats</span></a>
          <a class="<%= active('/admin/comptabilite/tva') ? 'active' : '' %>" href="<%= adminBase %>/comptabilite/tva"><span class="nav-icon"><%- ui.navIcon('percent') %></span><span>TVA</span></a>
          <a class="<%= active('/admin/comptabilite/bilan') ? 'active' : '' %>" href="<%= adminBase %>/comptabilite/bilan"><span class="nav-icon"><%- ui.navIcon('balance') %></span><span>Bilan</span></a>
          <a class="<%= active('/admin/comptabilite/resultat') ? 'active' : '' %>" href="<%= adminBase %>/comptabilite/resultat"><span class="nav-icon"><%- ui.navIcon('trending') %></span><span>Résultat</span></a>
          <a class="<%= active('/admin/comptabilite/debiteurs') ? 'active' : '' %>" href="<%= adminBase %>/comptabilite/debiteurs"><span class="nav-icon"><%- ui.navIcon('clock') %></span><span>Débiteurs</span></a>
          <a class="<%= active('/admin/comptabilite/periodes') ? 'active' : '' %>" href="<%= adminBase %>/comptabilite/periodes"><span class="nav-icon"><%- ui.navIcon('lock') %></span><span>Périodes</span></a>
        </div>
      </details>
    <% } %>

    <% if (canHr) { %>
      <% const rhOpen = groupActive(payrollEnabled ? ['/admin/employes', '/admin/rh', '/admin/salaires'] : ['/admin/employes', '/admin/rh']); %>
      <details class="nav-group" <%= rhOpen ? 'open' : '' %>>
        <summary><span class="nav-group-icon"><%- ui.navIcon('team') %></span><span><strong>RH</strong><small>Équipe, absences, documents</small></span></summary>
        <div class="nav-group-items">
          <a class="<%= active('/admin/employes') ? 'active' : '' %>" href="<%= adminBase %>/employes"><span class="nav-icon"><%- ui.navIcon('team') %></span><span>Équipe</span></a>
          <a class="<%= active('/admin/rh') ? 'active' : '' %>" href="<%= adminBase %>/rh"><span class="nav-icon"><%- ui.navIcon('agenda') %></span><span>Centre RH</span></a>
          <% if (payrollEnabled) { %><a class="<%= active('/admin/salaires') ? 'active' : '' %>" href="<%= adminBase %>/salaires"><span class="nav-icon"><%- ui.navIcon('wallet') %></span><span>Salaires</span></a><% } %>
        </div>
      </details>
    <% } %>

    <% if (canSite || canPhotos) { %>
      <% const siteOpen = groupActive(['/admin/studio', '/admin/photos', '/admin/blog', '/admin/avis']); %>
      <details class="nav-group" <%= siteOpen ? 'open' : '' %>>
        <summary><span class="nav-group-icon"><%- ui.navIcon('spark') %></span><span><strong>Site</strong><small>Studio, médias, avis</small></span></summary>
        <div class="nav-group-items">
          <% if (canSite) { %><a class="<%= active('/admin/studio') ? 'active' : '' %>" href="<%= adminBase %>/studio"><span class="nav-icon"><%- ui.navIcon('edit') %></span><span>Studio site</span></a><% } %>
          <% if (canPhotos) { %><a class="<%= active('/admin/photos') ? 'active' : '' %>" href="<%= adminBase %>/photos"><span class="nav-icon"><%- ui.navIcon('image') %></span><span>Photos</span></a><% } %>
          <% if (canSite) { %><a class="<%= active('/admin/blog') ? 'active' : '' %>" href="<%= adminBase %>/blog"><span class="nav-icon"><%- ui.navIcon('files') %></span><span>Articles</span></a><% } %>
          <% if (canSite) { %><a class="<%= active('/admin/avis') ? 'active' : '' %>" href="<%= adminBase %>/avis"><span class="nav-icon"><%- ui.navIcon('star') %></span><span>Avis</span></a><% } %>
        </div>
      </details>
    <% } %>

    <% if (canSettings) { %>
      <% const settingsOpen = groupActive(['/admin/parametres', '/admin/sauvegardes']); %>
      <details class="nav-group" <%= settingsOpen ? 'open' : '' %>>
        <summary><span class="nav-group-icon"><%- ui.navIcon('settings') %></span><span><strong>Réglages</strong><small>Identité, accès, sécurité</small></span></summary>
        <div class="nav-group-items">
          <a class="<%= active('/admin/parametres') && !active('/admin/parametres/abonnement') ? 'active' : '' %>" href="<%= adminBase %>/parametres"><span class="nav-icon"><%- ui.navIcon('settings') %></span><span>Paramètres</span></a>
          <a class="<%= active('/admin/parametres/abonnement') ? 'active' : '' %>" href="<%= adminBase %>/parametres/abonnement"><span class="nav-icon"><%- ui.navIcon('wallet') %></span><span>Abonnement</span></a>
          <a class="<%= active('/admin/sauvegardes') ? 'active' : '' %>" href="<%= adminBase %>/sauvegardes"><span class="nav-icon"><%- ui.navIcon('backup') %></span><span>Sauvegardes</span></a>
        </div>
      </details>
    <% } %>
  </nav>
</aside>
