You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

DiscountType.php 922B

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace App\Enums;
  3. use Filament\Support\Contracts\HasColor;
  4. use Filament\Support\Contracts\HasIcon;
  5. use Filament\Support\Contracts\HasLabel;
  6. enum DiscountType: string implements HasColor, HasIcon, HasLabel
  7. {
  8. case Sales = 'sales';
  9. case Purchase = 'purchase';
  10. case None = 'none';
  11. public const DEFAULT = self::Sales->value;
  12. public function getLabel(): ?string
  13. {
  14. return translate($this->name);
  15. }
  16. public function getColor(): string | array | null
  17. {
  18. return match ($this) {
  19. self::Sales => 'success',
  20. self::Purchase => 'warning',
  21. self::None => 'gray',
  22. };
  23. }
  24. public function getIcon(): ?string
  25. {
  26. return match ($this) {
  27. self::Sales => 'heroicon-o-currency-dollar',
  28. self::Purchase => 'heroicon-o-shopping-bag',
  29. self::None => 'heroicon-o-x-circle',
  30. };
  31. }
  32. }