<?php

declare(strict_types=1);

/*
 * Définition de la sidebar (sections + items) — navigation GLOBALE uniquement.
 * Filtrée par SidebarFilter :
 *   - `module`     : route ajoutée à disabledRoutes si module inactif ;
 *   - `roles`      : section ou item masqué si l'utilisateur n'a aucun des rôles listés (gate minimal) ;
 *   - `permission` : section ou item masqué si la permission effective absente (RBAC fin —
 *                    `User::getEffectivePermissions()` ; ROLE_ADMIN bypasse via le voter, mais la
 *                    sidebar évalue les permissions effectives réelles — combiner avec `roles` au besoin).
 * Les items contextuels (Kanban/Groupes/Archives), feature-flag (Documents) et user-flag
 * (Mes absences) restent rendus côté layout, hors de cet endpoint.
 * Mail est déclaré ici UNIQUEMENT pour le gating module (disabledRoutes si module inactif) ;
 * son rendu visuel + badge non-lus reste géré côté layout, qui filtre `/mail` de translatedSections
 * pour éviter le doublon.
 * Les labels sont des clés i18n (sidebar.<domaine>.<item>).
 */
return [
    [
        'label' => 'sidebar.general.section',
        'icon'  => 'mdi:view-dashboard-outline',
        'items' => [
            ['label' => 'sidebar.general.dashboard', 'to' => '/', 'icon' => 'mdi:view-dashboard-outline'],
            ['label' => 'sidebar.general.myTasks', 'to' => '/my-tasks', 'icon' => 'mdi:clipboard-check-outline', 'module' => 'project-management', 'permission' => 'project-management.tasks.view'],
            ['label' => 'sidebar.general.projects', 'to' => '/projects', 'icon' => 'mdi:folder-outline', 'module' => 'project-management', 'permission' => 'project-management.projects.view'],
            ['label' => 'sidebar.general.timeTracking', 'to' => '/time-tracking', 'icon' => 'mdi:calendar-edit-outline', 'module' => 'time-tracking', 'permission' => 'time-tracking.entries.view'],
        ],
    ],
    [
        'label' => 'sidebar.tools.section',
        'icon'  => 'mdi:tools',
        'items' => [
            // Gating module uniquement : rendu visuel + badge non-lus gérés côté layout
            // (filtré de translatedSections puis ré-injecté avec suffixe (N)).
            ['label' => 'sidebar.general.mail', 'to' => '/mail', 'icon' => 'mdi:email-outline', 'module' => 'mail'],
        ],
    ],
    [
        'label' => 'sidebar.admin.section',
        'icon'  => 'mdi:cog-outline',
        'roles' => ['ROLE_ADMIN'],
        'items' => [
            ['label' => 'sidebar.admin.teamAbsences', 'to' => '/team-absences', 'icon' => 'mdi:calendar-account-outline', 'module' => 'absence'],
            ['label' => 'sidebar.admin.directory', 'to' => '/directory', 'icon' => 'mdi:card-account-details-outline', 'module' => 'directory'],
            ['label' => 'sidebar.admin.reporting', 'to' => '/reporting', 'icon' => 'mdi:chart-line', 'module' => 'reporting', 'permission' => 'reporting.view'],
            ['label' => 'sidebar.admin.administration', 'to' => '/admin', 'icon' => 'mdi:cog-outline', 'permission' => 'core.users.view'],
        ],
    ],
];
