toby/app/Domain/Enums/VacationRequestState.php
Adrian Hopek fae50cb21c
#37 - cancel vacation request (#53)
* #37 - cancel vacation request

* #37 - fix

* #37 - fix
2022-02-17 13:31:33 +01:00

57 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
namespace Toby\Domain\Enums;
enum VacationRequestState: string
{
case Created = "created";
case Cancelled = "cancelled";
case Rejected = "rejected";
case Approved = "approved";
case WaitingForTechnical = "waiting_for_technical";
case WaitingForAdministrative = "waiting_for_administrative";
case AcceptedByTechnical = "accepted_by_technical";
case AcceptedByAdministrative = "accepted_by_administrative";
public function label(): string
{
return __($this->value);
}
public static function pendingStates(): array
{
return [
self::Created,
self::WaitingForTechnical,
self::WaitingForAdministrative,
self::AcceptedByTechnical,
self::AcceptedByAdministrative,
];
}
public static function successStates(): array
{
return [self::Approved];
}
public static function failedStates(): array
{
return [
self::Rejected,
self::Cancelled,
];
}
public static function filterByStatus(string $filter): array
{
return match ($filter) {
"pending" => VacationRequestState::pendingStates(),
"success" => VacationRequestState::successStates(),
"failed" => VacationRequestState::failedStates(),
default => VacationRequestState::cases(),
};
}
}