50 lines
1.1 KiB
PHP
50 lines
1.1 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',
|
|
];
|
|
|
|
/**
|
|
* 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 target field.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getTargetField(): string
|
|
{
|
|
return self::TARGETFIELD[$this->name];
|
|
}
|
|
}
|