<?php

declare(strict_types=1);

namespace App\Module\Core;

use App\Shared\Domain\Module\ModuleInterface;

final class CoreModule implements ModuleInterface
{
    public static function id(): string
    {
        return 'core';
    }

    public static function label(): string
    {
        return 'Core';
    }

    public static function isRequired(): bool
    {
        return true;
    }

    /**
     * Permissions RBAC fin du Module Core (1.2).
     *
     * @return list<array{code: string, label: string}>
     */
    public static function permissions(): array
    {
        return [
            ['code' => 'core.users.view', 'label' => 'Voir les utilisateurs'],
            ['code' => 'core.users.manage', 'label' => 'Gérer les utilisateurs (créer, éditer, supprimer)'],
            ['code' => 'core.roles.view', 'label' => 'Voir les rôles RBAC'],
            ['code' => 'core.roles.manage', 'label' => 'Gérer les rôles et permissions'],
            ['code' => 'core.permissions.view', 'label' => 'Consulter le catalogue des permissions RBAC'],
            ['code' => 'core.audit_log.view', 'label' => 'Consulter le journal d\'audit'],
        ];
    }
}
