Files
GSB-Construction/Modules/BiddingManagement/app/Enums/BidPackageStatus.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',
};
}
}