<?php

declare(strict_types=1);

namespace App\Module\ProjectManagement;

use App\Shared\Domain\Module\ModuleInterface;

final class ProjectManagementModule implements ModuleInterface
{
    public static function id(): string
    {
        return 'project-management';
    }

    public static function label(): string
    {
        return 'Projets & Tâches';
    }

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

    /**
     * Permissions RBAC fin du Module ProjectManagement (2.2).
     *
     * Additif : alimente le catalogue RBAC. La sécurité des opérations API
     * reste en ROLE_USER (non recâblée ici).
     *
     * @return list<array{code: string, label: string}>
     */
    public static function permissions(): array
    {
        return [
            ['code' => 'project-management.projects.view', 'label' => 'Voir les projets'],
            ['code' => 'project-management.projects.manage', 'label' => 'Gérer les projets'],
            ['code' => 'project-management.tasks.view', 'label' => 'Voir les tâches'],
            ['code' => 'project-management.tasks.manage', 'label' => 'Gérer les tâches'],
        ];
    }
}
