2025-12-15 15:46:00 +01:00
|
|
|
<?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;
|
2025-12-19 16:48:55 +01:00
|
|
|
case documents = 3;
|
2025-12-15 15:46:00 +01:00
|
|
|
|
|
|
|
|
/**
|
2026-02-10 15:43:47 +01:00
|
|
|
* Labels definition (key of the translation).
|
2025-12-15 15:46:00 +01:00
|
|
|
* 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',
|
2025-12-19 16:48:55 +01:00
|
|
|
self::documents->name => 'enums.model-list.document',
|
2025-12-15 15:46:00 +01:00
|
|
|
];
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Target field used to present the resource.
|
|
|
|
|
* ex: title, label, name etc...
|
|
|
|
|
*/
|
|
|
|
|
private const TARGETFIELD = [
|
|
|
|
|
self::dynamic_pages->name => 'title',
|
|
|
|
|
self::news->name => 'title',
|
2025-12-19 16:48:55 +01:00
|
|
|
self::documents->name => 'name',
|
2025-12-15 15:46:00 +01:00
|
|
|
];
|
|
|
|
|
|
|
|
|
|
/**
|
2026-02-10 15:43:47 +01:00
|
|
|
* Get target field.
|
2025-12-15 15:46:00 +01:00
|
|
|
*
|
|
|
|
|
* @return string
|
|
|
|
|
*/
|
|
|
|
|
public function getTargetField(): string
|
|
|
|
|
{
|
|
|
|
|
return self::TARGETFIELD[$this->name];
|
|
|
|
|
}
|
|
|
|
|
}
|