47 lines
1.2 KiB
PHP
47 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Enums;
|
|
|
|
/**
|
|
* Handover Status Enum
|
|
*
|
|
* Để thêm trạng thái mới:
|
|
* 1. Thêm case mới vào enum
|
|
* 2. Thêm label trong lang/vi/enums.php và lang/en/enums.php
|
|
* 3. Reload browser
|
|
*/
|
|
enum HandoverStatus: string
|
|
{
|
|
case NOT_READY = 'chua_du_dieu_kien';
|
|
case READY = 'du_dieu_kien';
|
|
case HANDED_OVER = 'da_ban_giao';
|
|
case SCHEDULED = 'da_len_lich';
|
|
|
|
public function label(): string
|
|
{
|
|
return match ($this) {
|
|
self::NOT_READY => __('enums.handover.not_ready'),
|
|
self::READY => __('enums.handover.ready'),
|
|
self::HANDED_OVER => __('enums.handover.handed_over'),
|
|
self::SCHEDULED => __('enums.handover.scheduled'),
|
|
};
|
|
}
|
|
|
|
public function color(): string
|
|
{
|
|
return match ($this) {
|
|
self::NOT_READY => 'danger',
|
|
self::READY => 'warning',
|
|
self::HANDED_OVER => 'success',
|
|
self::SCHEDULED => 'info',
|
|
};
|
|
}
|
|
|
|
public static function options(): array
|
|
{
|
|
return collect(self::cases())->mapWithKeys(fn ($case) => [
|
|
$case->value => $case->label(),
|
|
])->toArray();
|
|
}
|
|
}
|