2024-11-13 23:34:53 -05:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Enums;
|
|
|
|
|
|
|
|
use Filament\Support\Contracts\HasColor;
|
|
|
|
use Filament\Support\Contracts\HasIcon;
|
|
|
|
use Filament\Support\Contracts\HasLabel;
|
|
|
|
|
|
|
|
enum InvoiceStatus: string implements HasColor, HasIcon, HasLabel
|
|
|
|
{
|
2025-02-16 23:49:15 -05:00
|
|
|
case UNPAID = 'not_paid';
|
|
|
|
case PARTIALLY_PAID = 'partially_paid';
|
|
|
|
case PAID = 'paid';
|
|
|
|
case VOID = 'void';
|
2024-11-13 23:34:53 -05:00
|
|
|
|
2025-02-16 23:49:15 -05:00
|
|
|
public function getLabel(): string
|
2024-11-13 23:34:53 -05:00
|
|
|
{
|
2025-02-16 23:49:15 -05:00
|
|
|
return match ($this) {
|
|
|
|
self::UNPAID => 'Not paid',
|
|
|
|
self::PARTIALLY_PAID => 'Partially paid',
|
|
|
|
self::PAID => 'Paid',
|
|
|
|
self::VOID => 'Void',
|
|
|
|
};
|
2024-11-13 23:34:53 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
public function getColor(): string|array|null
|
|
|
|
{
|
|
|
|
return match ($this) {
|
2025-02-11 19:54:55 -05:00
|
|
|
self::UNPAID => 'danger',
|
|
|
|
self::PARTIALLY_PAID => 'warning',
|
|
|
|
self::PAID => 'success',
|
|
|
|
self::VOID => 'gray'
|
2024-11-13 23:34:53 -05:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getIcon(): ?string
|
|
|
|
{
|
|
|
|
return match ($this) {
|
2025-02-11 19:54:55 -05:00
|
|
|
self::UNPAID => IconEnum::UNPAID->value,
|
|
|
|
self::PARTIALLY_PAID => IconEnum::PARTIALLY_PAID->value,
|
|
|
|
self::PAID => IconEnum::PAID->value,
|
|
|
|
self::VOID => IconEnum::VOID->value,
|
2024-11-13 23:34:53 -05:00
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|