chore: update document approval workflow and bug fixes
This commit is contained in:
45
Modules/ProjectManagement/app/Enums/ReportStatus.php
Normal file
45
Modules/ProjectManagement/app/Enums/ReportStatus.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\ProjectManagement\Enums;
|
||||
|
||||
enum ReportStatus: string
|
||||
{
|
||||
case Draft = 'draft';
|
||||
case Submitted = 'submitted';
|
||||
case InReview = 'in_review';
|
||||
case Approved = 'approved';
|
||||
case Rejected = 'rejected';
|
||||
|
||||
public function label(): string
|
||||
{
|
||||
return match ($this) {
|
||||
self::Draft => 'Draft',
|
||||
self::Submitted => 'Submitted',
|
||||
self::InReview => 'In Review',
|
||||
self::Approved => 'Approved',
|
||||
self::Rejected => 'Rejected',
|
||||
};
|
||||
}
|
||||
|
||||
public function allowedTransitions(): array
|
||||
{
|
||||
return match ($this) {
|
||||
self::Draft => [self::Submitted],
|
||||
self::Submitted => [self::InReview, self::Rejected],
|
||||
self::InReview => [self::Approved, self::Rejected],
|
||||
self::Approved => [],
|
||||
self::Rejected => [self::Draft],
|
||||
};
|
||||
}
|
||||
|
||||
public function color(): string
|
||||
{
|
||||
return match ($this) {
|
||||
self::Draft => 'gray',
|
||||
self::Submitted => 'blue',
|
||||
self::InReview => 'yellow',
|
||||
self::Approved => 'green',
|
||||
self::Rejected => 'red',
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user