ProductionOrderNotificationEvent.php 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Enums;
  4. enum ProductionOrderNotificationEvent: string
  5. {
  6. case Created = 'created';
  7. case StatusChanged = 'status_changed';
  8. case DeliveryAdded = 'delivery_added';
  9. case InstallationAdded = 'installation_added';
  10. case ReclamationAdded = 'reclamation_added';
  11. public function label(): string
  12. {
  13. return match ($this) {
  14. self::Created => 'Создан заказ',
  15. self::StatusChanged => 'Изменён статус заказа',
  16. self::DeliveryAdded => 'Добавлена доставка',
  17. self::InstallationAdded => 'Добавлена дата монтажа',
  18. self::ReclamationAdded => 'Добавлена рекламация',
  19. };
  20. }
  21. /** @return array<string, string> */
  22. public static function options(): array
  23. {
  24. return collect(self::cases())->mapWithKeys(
  25. static fn (self $event): array => [$event->value => $event->label()],
  26. )->all();
  27. }
  28. }