topnotch_website/app/Enums/OrderStatus.php

47 lines
1.4 KiB
PHP
Raw Normal View History

2024-09-03 15:15:57 -07:00
<?php
namespace App\Enums;
2024-10-10 15:15:30 -07:00
use Filament\Support\Contracts\HasColor;
use Filament\Support\Contracts\HasIcon;
use Filament\Support\Contracts\HasLabel;
enum OrderStatus: string implements HasColor, HasIcon, HasLabel
2024-09-03 15:15:57 -07:00
{
case DRAFT = 'Draft';
case APPROVED = 'Approved';
case PRODUCTION = 'Production';
case SHIPPED = 'Shipped';
case READY_FOR_INVOICE = 'Ready for Invoice';
case INVOICED = 'Invoiced';
2024-10-10 15:15:30 -07:00
public function getLabel(): ?string
{
return $this->value;
}
public function getColor(): string|array|null
{
return match ($this) {
self::DRAFT => 'gray',
self::APPROVED => 'success',
self::PRODUCTION => 'primary',
self::SHIPPED => 'warning',
self::READY_FOR_INVOICE => 'invoicing',
self::INVOICED => 'invoiced',
2024-10-10 15:15:30 -07:00
};
}
public function getIcon(): ?string
{
return match ($this) {
self::DRAFT => IconEnum::DRAFT->value,
self::APPROVED => IconEnum::APPROVED->value,
self::PRODUCTION => IconEnum::PRODUCTION->value,
self::SHIPPED => IconEnum::SHIPPED->value,
self::READY_FOR_INVOICE => IconEnum::INVOICING->value,
self::INVOICED => IconEnum::INVOICED->value,
2024-10-10 15:15:30 -07:00
};
}
2024-09-03 15:15:57 -07:00
}