29 lines
669 B
PHP
29 lines
669 B
PHP
<?php
|
|
|
|
namespace App;
|
|
|
|
enum UserTypes: string
|
|
{
|
|
case Admin = 'admin';
|
|
case User = 'user';
|
|
case Broker = 'broker';
|
|
|
|
public function label(): string
|
|
{
|
|
return match ($this) {
|
|
UserTypes::Broker => 'Broker (Posts deals)',
|
|
UserTypes::User => 'User (Browse deals)',
|
|
self::Admin => 'Admin',
|
|
};
|
|
}
|
|
|
|
public static function labels(): array
|
|
{
|
|
$labels = array_map(function ($enum) {
|
|
return ['value' => $enum->value, 'label' =>$enum->label()];
|
|
}, self::cases());
|
|
|
|
return array_filter($labels, function ($kv) {return $kv['value'] !== self::Admin->value;});
|
|
}
|
|
}
|