ldc-groupe/app/Enums/ModelsList.php
2025-12-19 18:19:29 +01:00

52 lines
1.2 KiB
PHP

<?php
namespace App\Enums;
use Uwil\LaravelCommon\Traits\Enums\BaseEnum;
enum ModelsList: int
{
use BaseEnum;
/**
* Model name in snake case.
* ex: dynamic_pages, products, recipes etc...
*/
case dynamic_pages = 1;
case news = 2;
case documents = 3;
/**
* Labels definition.
* Key of the translation.
* etc: enums.model-list.dynamic-page etc...
*
* @phpstan-ignore-next-line
*/
private const LABELS = [
self::dynamic_pages->name => 'enums.model-list.dynamic-page',
self::news->name => 'enums.model-list.news',
self::documents->name => 'enums.model-list.document',
];
/**
* Validations definition.
* Target field used to present the resource.
* ex: title, label, name etc...
*/
private const TARGETFIELD = [
self::dynamic_pages->name => 'title',
self::news->name => 'title',
self::documents->name => 'name',
];
/**
* Get validation.
*
* @return string
*/
public function getTargetField(): string
{
return self::TARGETFIELD[$this->name];
}
}