46 lines
1.2 KiB
PHP
46 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace Modules\BiddingManagement\Enums;
|
|
|
|
enum BidPackageStatus: string
|
|
{
|
|
case Draft = 'draft';
|
|
case Open = 'open';
|
|
case Evaluating = 'evaluating';
|
|
case Awarded = 'awarded';
|
|
case Cancelled = 'cancelled';
|
|
|
|
public function label(): string
|
|
{
|
|
return match ($this) {
|
|
self::Draft => 'Draft',
|
|
self::Open => 'Open',
|
|
self::Evaluating => 'Evaluating',
|
|
self::Awarded => 'Awarded',
|
|
self::Cancelled => 'Cancelled',
|
|
};
|
|
}
|
|
|
|
public function allowedTransitions(): array
|
|
{
|
|
return match ($this) {
|
|
self::Draft => [self::Open, self::Cancelled],
|
|
self::Open => [self::Evaluating, self::Cancelled],
|
|
self::Evaluating => [self::Awarded, self::Cancelled],
|
|
self::Awarded => [],
|
|
self::Cancelled => [],
|
|
};
|
|
}
|
|
|
|
public function color(): string
|
|
{
|
|
return match ($this) {
|
|
self::Draft => 'secondary',
|
|
self::Open => 'default',
|
|
self::Evaluating => 'warning',
|
|
self::Awarded => 'success',
|
|
self::Cancelled => 'destructive',
|
|
};
|
|
}
|
|
}
|