44 lines
1.1 KiB
PHP
44 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Enums;
|
|
|
|
enum NotificationEventType: string
|
|
{
|
|
case TicketStatusChanged = 'ticket_status_changed';
|
|
case TicketCreate = 'ticket_create';
|
|
|
|
public function label(): string
|
|
{
|
|
return match ($this) {
|
|
self::TicketStatusChanged => 'Ticket status changed',
|
|
self::TicketCreate => 'Ticket create',
|
|
};
|
|
}
|
|
|
|
/**
|
|
* @return array<int, array{label: string, value: string}>
|
|
*/
|
|
public static function options(): array
|
|
{
|
|
return array_map(
|
|
fn (self $eventType): array => [
|
|
'label' => $eventType->label(),
|
|
'value' => $eventType->value,
|
|
],
|
|
self::cases(),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @param array<int, self>|null $notificationEventTypes
|
|
* @return array<int, string>
|
|
*/
|
|
public static function values(?array $notificationEventTypes = null): array
|
|
{
|
|
return array_map(
|
|
fn (self $notificationEventType): string => $notificationEventType->value,
|
|
$notificationEventTypes ?? self::cases(),
|
|
);
|
|
}
|
|
}
|