ldc-lionor/app/Enums/PreparationTimeEnum.php

61 lines
1.2 KiB
PHP
Raw Permalink Normal View History

2023-03-20 13:17:58 +00:00
<?php
namespace App\Enums;
2023-08-28 08:46:47 +00:00
use App\Traits\Enums\BaseEnum;
2023-03-20 13:17:58 +00:00
2023-08-28 08:46:47 +00:00
enum PreparationTimeEnum: int
2023-03-20 13:17:58 +00:00
{
2023-08-28 08:46:47 +00:00
use BaseEnum;
2023-03-20 13:17:58 +00:00
2023-08-28 08:46:47 +00:00
case interval1 = 1;
case interval2 = 2;
case interval3 = 3;
case interval4 = 4;
2024-09-06 08:30:55 +00:00
/**
* Enum labels
*
* @return array
* @phpstan-ignore-next-line
*/
2023-08-28 08:46:47 +00:00
private const LABELS = [
self::interval1->name => '0-30 min',
self::interval2->name => '30min - 2h',
self::interval3->name => '2h - 4h',
self::interval4->name => '> 4h',
];
2024-09-06 08:30:55 +00:00
/**
* Enum times
*
* @return array
*/
2023-08-28 08:46:47 +00:00
private const TIMES = [
self::interval1->name => ['min' => 0, 'max' => 30],
self::interval2->name => ['min' => 31, 'max' => 120],
self::interval3->name => ['min' => 121, 'max' => 240],
self::interval4->name => ['min' => 241, 'max' => 9999],
];
2023-03-20 13:17:58 +00:00
/**
2023-08-28 08:46:47 +00:00
* Get image
2023-03-20 13:17:58 +00:00
*
* @return array
*/
2023-08-28 08:46:47 +00:00
public function time(): array
2023-03-20 13:17:58 +00:00
{
2023-08-28 08:46:47 +00:00
return self::TIMES[$this->name];
2023-03-20 13:17:58 +00:00
}
/**
2023-08-28 08:46:47 +00:00
* Get enum images
*
2024-09-06 08:30:55 +00:00
* @return array<string, array<string, int>>
2023-03-20 13:17:58 +00:00
*/
2023-08-28 08:46:47 +00:00
public static function toTimes(): array
2023-03-20 13:17:58 +00:00
{
2023-08-28 08:46:47 +00:00
return self::TIMES;
2023-03-20 13:17:58 +00:00
}
}