66 lines
1.5 KiB
PHP
66 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Enums;
|
|
|
|
use App\Traits\Enums\BaseEnum;
|
|
|
|
enum NutriscoreEnum: int
|
|
{
|
|
use BaseEnum;
|
|
|
|
case noLetter = 1;
|
|
case aLetter = 2;
|
|
case bLetter = 3;
|
|
case cLetter = 4;
|
|
case dLetter = 5;
|
|
case eLetter = 6;
|
|
|
|
/**
|
|
* Enum labels
|
|
*
|
|
* @return array
|
|
* @phpstan-ignore-next-line
|
|
*/
|
|
private const LABELS = [
|
|
self::noLetter->name => 'N/A',
|
|
self::aLetter->name => 'A',
|
|
self::bLetter->name => 'B',
|
|
self::cLetter->name => 'C',
|
|
self::dLetter->name => 'D',
|
|
self::eLetter->name => 'E'
|
|
];
|
|
|
|
/**
|
|
* Enum stickers
|
|
*
|
|
* @return array
|
|
*/
|
|
private const STICKERS = [
|
|
self::noLetter->name => '',
|
|
self::aLetter->name => 'resources/assets/images/nutriscore/logo-nutriscore-A.png',
|
|
self::bLetter->name => 'resources/assets/images/nutriscore/logo-nutriscore-B.png',
|
|
self::cLetter->name => 'resources/assets/images/nutriscore/logo-nutriscore-C.png',
|
|
self::dLetter->name => 'resources/assets/images/nutriscore/logo-nutriscore-D.png',
|
|
self::eLetter->name => 'resources/assets/images/nutriscore/logo-nutriscore-E.png',
|
|
];
|
|
|
|
/**
|
|
* Get sticker
|
|
*
|
|
* @return string
|
|
*/
|
|
public function sticker(): string
|
|
{
|
|
return self::STICKERS[$this->name];
|
|
}
|
|
|
|
/**
|
|
* Get enum stickers
|
|
*
|
|
* @return array<string>
|
|
*/
|
|
public static function toStickers(): array
|
|
{
|
|
return self::STICKERS;
|
|
}
|
|
}
|