topnotch_website/app/Enums/OrderStatus.php

54 lines
1.7 KiB
PHP
Raw Permalink 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
2024-10-10 15:15:30 -07:00
{
return match ($this) {
self::DRAFT => 'Draft',
self::APPROVED => 'Approved',
self::PRODUCTION => 'Production',
self::SHIPPED => 'Shipped',
self::READY_FOR_INVOICE => 'Ready for Invoice',
self::INVOICED => 'Invoiced',
};
2024-10-10 15:15:30 -07:00
}
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
}