72 lines
1.5 KiB
PHP
72 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Enums;
|
|
|
|
use Kwaadpepper\Enum\BaseEnum;
|
|
|
|
/**
|
|
* @method static self interval1()
|
|
* @method static self interval2()
|
|
* @method static self interval3()
|
|
* @method static self interval4()
|
|
|
|
*/
|
|
final class PreparationTimeEnum extends BaseEnum
|
|
{
|
|
/**
|
|
* Enum values
|
|
*
|
|
* @return array
|
|
*/
|
|
protected static function values(): array
|
|
{
|
|
return [
|
|
'interval1' => 0,
|
|
'interval2' => 1,
|
|
'interval3' => 2,
|
|
'interval4' => 3,
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Enum labels
|
|
*
|
|
* @return array
|
|
*/
|
|
protected static function labels(): array
|
|
{
|
|
return [
|
|
'interval1' => __('0-30 min'),
|
|
'interval2' => __('30min - 2h'),
|
|
'interval3' => __('2h - 4h'),
|
|
'interval4' => __('> 4h'),
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Enum times
|
|
*
|
|
* @return array
|
|
*/
|
|
protected static function times(): array
|
|
{
|
|
return [
|
|
'interval1' => ['min' => 0, 'max' => 30],
|
|
'interval2' => ['min' => 31, 'max' => 120],
|
|
'interval3' => ['min' => 121, 'max' => 240],
|
|
'interval4' => ['min' => 241, 'max' => 9999],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @param string $attribute
|
|
* @return integer|string
|
|
*/
|
|
public function __get(string $attribute)
|
|
{
|
|
if ($attribute === 'time') {
|
|
return $this->times()[$this->getDefinition()] ?? null;
|
|
}
|
|
return parent::__get($attribute);
|
|
}
|
|
}
|