Mahdee Rajon  subception

File "RolePermissionsEnum.php"

Full Path: /var/www/html/back/app/Enums/RolePermissionsEnum.php
File size: 1.27 KB
MIME-type: text/x-php
Charset: utf-8

<?php

declare(strict_types=1);

namespace App\Enums;

enum RolePermissionsEnum: string
{
    case Edit = 'edit';
    case AgreementOnFirstStage = 'agreement_on_first_stage';
    case AgreementOnSecondStage = 'agreement_on_second_stage';

    case ProjectManagement = 'project_management';

    public static function label(): array
    {
        $options = [];
        foreach (self::cases() as $case) {
            $options[$case->value] = match ($case) {
                self::Edit => 'Редактирование платежа при согласовании',
                self::AgreementOnFirstStage => 'Согласование на 1-м шаге',
                self::AgreementOnSecondStage => 'Согласование на 2-м шаге',
                self::ProjectManagement => 'Управление проектами',
            };
        }
        return $options;
    }

    public static function fromCommaSeparated(string $permissions): array
    {
        $labels = self::label();
        $result = [];

        foreach (explode(',', $permissions) as $permission) {
            $trimmed = trim($permission);
            if ($case = self::tryFrom($trimmed)) {
                $result[] = $labels[$case->value];
            }
        }

        return $result;
    }

}