ldc-groupe/app/Enums/OrdersEnum.php

53 lines
1 KiB
PHP

<?php
namespace App\Enums;
use Uwil\LaravelCommon\Traits\Enums\BaseEnum;
enum OrdersEnum: int
{
use BaseEnum;
case asc = 1;
case desc = 2;
/**
* Labels definition.
*
* @phpstan-ignore-next-line
*/
private const LABELS = [
self::asc->name => 'enums.orders.asc',
self::desc->name => 'enums.orders.desc',
];
/**
* Get the orders to display using the app locale
*
* @return bool
*/
public function ordersWithLocal(): bool
{
$locale = config('app.locale');
return match (true) {
$this === self::asc => true,
$this === self::desc => true,
default => $locale === "fr" ? true : false,
};
}
/**
* Optional factory from label.
*/
public static function makeFromLabel(string $name): ?self
{
foreach (self::cases() as $case) {
if ($case->name() === $name) {
return $case;
}
}
return null;
}
}