ldc-nature-and-respect/app/Enums/Ranges/PictoEnum.php
2023-04-18 10:49:39 +02:00

60 lines
1.5 KiB
PHP

<?php
namespace App\Enums\Ranges;
enum PictoEnum : int
{
case chicken = 1;
case duck = 2;
case turkey = 3;
case soupchicken = 4;
case guineafowl = 5;
case goose = 6;
public function label(): string
{
return static::getLabel($this);
}
public function image(): string
{
return static::getImage($this);
}
public static function getLabel(self $value): string
{
return match ($value) {
self::chicken => __('Chicken'),
self::duck => __('Duck'),
self::turkey => __('Turkey'),
self::soupchicken => __('Soupchicken'),
self::guineafowl => __('Guineafowl'),
self::goose => __('Goose'),
};
}
public static function getImage(self $value): string
{
return match ($value) {
self::chicken => "chicken.png",
self::duck => "duck.png",
self::turkey => "turkey.png",
self::soupchicken => "soupchicken.png",
self::guineafowl => "guineafowl.png",
self::goose => "goose.png",
};
}
public static function getLabels(): array
{
$arrayEnum = [];
foreach (self::cases() as $key => $value) {
$arrayEnum = array_merge($arrayEnum, [[
"value" => $value->value,
"label" => $value->label(),
"image" => $value->image()
]]);
}
return $arrayEnum;
}
}