62 lines
1.5 KiB
PHP
62 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Enums;
|
|
|
|
use Uwil\LaravelCommon\Traits\Enums\BaseEnum;
|
|
|
|
enum YearsEnum: int
|
|
{
|
|
use BaseEnum;
|
|
|
|
case fourteen = 1;
|
|
case fifteen = 2;
|
|
case sixteen = 3;
|
|
case seventeen = 4;
|
|
case eighteen = 5;
|
|
case nineteen = 6;
|
|
case twenty = 7;
|
|
case twenty_one = 8;
|
|
case twenty_two = 9;
|
|
case twenty_three = 10;
|
|
case twenty_four = 11;
|
|
case twenty_five = 12;
|
|
case twenty_six = 13;
|
|
|
|
/**
|
|
* Optionnal labels definition.
|
|
*
|
|
* @phpstan-ignore-next-line
|
|
*/
|
|
private const LABELS = [
|
|
self::twenty_six->name => '2026/2027',
|
|
self::twenty_five->name => '2025/2026',
|
|
self::twenty_four->name => '2024/2025',
|
|
self::twenty_three->name => '2023/2024',
|
|
self::twenty_two->name => '2022/2023',
|
|
self::twenty_one->name => '2021/2022',
|
|
self::twenty->name => '2020/2021',
|
|
self::nineteen->name => '2019/2020',
|
|
self::eighteen->name => '2018/2019',
|
|
self::seventeen->name => '2017/2018',
|
|
self::sixteen->name => '2016/2017',
|
|
self::fifteen->name => '2015/2016',
|
|
self::fourteen->name => '2014/2015',
|
|
];
|
|
|
|
/**
|
|
* Optional factory from label.
|
|
*
|
|
* @param string $label
|
|
* @return self
|
|
*/
|
|
public static function makeFromLabel(string $label): ?self
|
|
{
|
|
foreach (self::cases() as $case) {
|
|
if ($case->label() === $label) {
|
|
return $case;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|