32 lines
783 B
PHP
32 lines
783 B
PHP
<?php
|
|
|
|
namespace Modules\ApprovalWorkflow\Enums;
|
|
|
|
enum ApprovalChainStatus: string
|
|
{
|
|
case Pending = 'pending';
|
|
case InReview = 'in_review';
|
|
case Approved = 'approved';
|
|
case Rejected = 'rejected';
|
|
|
|
public function label(): string
|
|
{
|
|
return match ($this) {
|
|
self::Pending => 'Pending',
|
|
self::InReview => 'In Review',
|
|
self::Approved => 'Approved',
|
|
self::Rejected => 'Rejected',
|
|
};
|
|
}
|
|
|
|
public function allowedTransitions(): array
|
|
{
|
|
return match ($this) {
|
|
self::Pending => [self::InReview, self::Rejected],
|
|
self::InReview => [self::Approved, self::Rejected],
|
|
self::Approved => [],
|
|
self::Rejected => [self::Pending],
|
|
};
|
|
}
|
|
}
|