46 lines
1.0 KiB
PHP
46 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace App\Enums;
|
|
|
|
enum ActivityEventLabel: string
|
|
{
|
|
case CREATED = 'created';
|
|
case UPDATED = 'updated';
|
|
case DELETED = 'deleted';
|
|
case LOGIN = 'login';
|
|
case LOGOUT = 'logout';
|
|
|
|
public function label(): string
|
|
{
|
|
return match ($this) {
|
|
self::CREATED => 'Dibuat',
|
|
self::UPDATED => 'Diperbarui',
|
|
self::DELETED => 'Dihapus',
|
|
self::LOGIN => 'Masuk',
|
|
self::LOGOUT => 'Keluar',
|
|
};
|
|
}
|
|
|
|
public static function labelFor(?string $event): string
|
|
{
|
|
if ($event === null || $event === '') {
|
|
return '-';
|
|
}
|
|
|
|
return self::tryFrom($event)?->label() ?? ucfirst($event);
|
|
}
|
|
|
|
/**
|
|
* @return list<array{value: string, label: string}>
|
|
*/
|
|
public static function selectOptions(): array
|
|
{
|
|
return collect(self::cases())
|
|
->map(fn (self $event) => [
|
|
'value' => $event->value,
|
|
'label' => $event->label(),
|
|
])
|
|
->all();
|
|
}
|
|
}
|