69 lines
1.4 KiB
PHP
69 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Modules\Sirsoft\Ecommerce\Enums;
|
|
|
|
/**
|
|
* 취소 옵션 상태 Enum
|
|
*/
|
|
enum CancelOptionStatusEnum: string
|
|
{
|
|
case REQUESTED = 'requested'; // 취소 신청
|
|
case COMPLETED = 'completed'; // 처리 완료
|
|
|
|
/**
|
|
* 다국어 라벨을 반환합니다.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function label(): string
|
|
{
|
|
return __('sirsoft-ecommerce::enums.cancel_option_status.'.$this->value);
|
|
}
|
|
|
|
/**
|
|
* 프론트엔드용 라벨 키를 반환합니다.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getLabel(): string
|
|
{
|
|
return $this->label();
|
|
}
|
|
|
|
/**
|
|
* 상태 뱃지 variant를 반환합니다.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function variant(): string
|
|
{
|
|
return match ($this) {
|
|
self::REQUESTED => 'secondary',
|
|
self::COMPLETED => 'success',
|
|
};
|
|
}
|
|
|
|
/**
|
|
* 모든 값 배열을 반환합니다.
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function values(): array
|
|
{
|
|
return array_column(self::cases(), 'value');
|
|
}
|
|
|
|
/**
|
|
* 프론트엔드용 옵션 배열을 반환합니다.
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function toSelectOptions(): array
|
|
{
|
|
return array_map(fn ($case) => [
|
|
'value' => $case->value,
|
|
'label' => $case->label(),
|
|
], self::cases());
|
|
}
|
|
}
|