ProductionOrderStatus.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Enums;
  4. enum ProductionOrderStatus: string
  5. {
  6. case Placed = 'placed';
  7. case ReadyAtFactory = 'ready_at_factory';
  8. case InTransit = 'in_transit';
  9. case PartialReceipt = 'partial_receipt';
  10. case InStock = 'in_stock';
  11. case Closed = 'closed';
  12. public const LABELS = [
  13. self::Placed->value => 'Размещен',
  14. self::ReadyAtFactory->value => 'Готов на фабрике',
  15. self::InTransit->value => 'В пути',
  16. self::PartialReceipt->value => 'Частичное поступление',
  17. self::InStock->value => 'На складе',
  18. self::Closed->value => 'Закрыт',
  19. ];
  20. public function label(): string
  21. {
  22. return self::LABELS[$this->value];
  23. }
  24. public function color(): string
  25. {
  26. return match ($this) {
  27. self::Placed => 'secondary',
  28. self::ReadyAtFactory => 'info',
  29. self::InTransit => 'primary',
  30. self::PartialReceipt => 'warning',
  31. self::InStock => 'success',
  32. self::Closed => 'dark',
  33. };
  34. }
  35. /** @return array<string, string> */
  36. public static function options(): array
  37. {
  38. return self::LABELS;
  39. }
  40. }