55 lines
1.4 KiB
PHP
Executable File
55 lines
1.4 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Enums;
|
|
|
|
enum OpnameStatus: string
|
|
{
|
|
case DRAFT = 'draft';
|
|
case PENDING = 'pending';
|
|
case APPROVED = 'approved';
|
|
case REJECTED = 'rejected';
|
|
|
|
public function label(): string
|
|
{
|
|
return match($this) {
|
|
self::DRAFT => 'Draft',
|
|
self::PENDING => 'Menunggu Persetujuan',
|
|
self::APPROVED => 'Disetujui',
|
|
self::REJECTED => 'Ditolak',
|
|
};
|
|
}
|
|
|
|
public function color(): string
|
|
{
|
|
return match($this) {
|
|
self::DRAFT => 'warning',
|
|
self::PENDING => 'info',
|
|
self::APPROVED => 'success',
|
|
self::REJECTED => 'danger',
|
|
};
|
|
}
|
|
|
|
public function textColorClass(): string
|
|
{
|
|
return match($this->color()) {
|
|
'success' => 'text-success',
|
|
'warning' => 'text-warning',
|
|
'danger' => 'text-danger',
|
|
'info' => 'text-info',
|
|
'primary' => 'text-primary',
|
|
'brand' => 'text-primary',
|
|
'secondary' => 'text-muted',
|
|
default => 'text-dark'
|
|
};
|
|
}
|
|
|
|
public static function getOptions(): array
|
|
{
|
|
return [
|
|
self::DRAFT->value => self::DRAFT->label(),
|
|
self::PENDING->value => self::PENDING->label(),
|
|
self::APPROVED->value => self::APPROVED->label(),
|
|
self::REJECTED->value => self::REJECTED->label(),
|
|
];
|
|
}
|
|
}
|