mailwolt/app/Enums/Role.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());
}
}