Files
GSB-Construction/Modules/ApprovalWorkflow/app/Enums/ApprovalChainStatus.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],
};
}
}