39 lines
858 B
PHP
39 lines
858 B
PHP
<?php
|
|
|
|
namespace App\Enums;
|
|
|
|
enum Role: string
|
|
{
|
|
case Admin = 'admin';
|
|
case Operator = 'operator';
|
|
case Viewer = 'viewer';
|
|
|
|
public function label(): string
|
|
{
|
|
return match($this) {
|
|
self::Admin => 'Admin',
|
|
self::Operator => 'Operator',
|
|
self::Viewer => 'Viewer',
|
|
};
|
|
}
|
|
|
|
public function badgeClass(): string
|
|
{
|
|
return match($this) {
|
|
self::Admin => 'role-badge-admin',
|
|
self::Operator => 'role-badge-op',
|
|
self::Viewer => 'mbx-badge-mute',
|
|
};
|
|
}
|
|
|
|
public static function values(): array
|
|
{
|
|
return array_column(self::cases(), 'value');
|
|
}
|
|
|
|
public static function options(): array
|
|
{
|
|
return array_map(fn($r) => ['value' => $r->value, 'label' => $r->label()], self::cases());
|
|
}
|
|
}
|