Files
2026-05-25 17:39:57 +08:00

35 lines
962 B
PHP

<?php
namespace Modules\ProjectManagement\Enums;
enum TaskStatus: string
{
case Pending = 'pending';
case InProgress = 'in_progress';
case Completed = 'completed';
case Blocked = 'blocked';
case Closed = 'closed';
public function label(): string
{
return match ($this) {
self::Pending => 'Pending',
self::InProgress => 'In Progress',
self::Completed => 'Completed',
self::Blocked => 'Blocked',
self::Closed => 'Closed',
};
}
public function allowedTransitions(): array
{
return match ($this) {
self::Pending => [self::InProgress, self::Blocked],
self::InProgress => [self::Completed, self::Blocked, self::Pending],
self::Completed => [self::InProgress, self::Pending, self::Closed],
self::Blocked => [self::Pending, self::InProgress],
self::Closed => [],
};
}
}