DossierLevelEnum.php
1 <?php 2 3 namespace App\Enums; 4 5 use Illuminate\Support\Collection; 6 use Spatie\Enum\Enum; 7 8 /** 9 * @method static self basic() 10 * @method static self intermediate() 11 * @method static self surveillance() 12 */ 13 14 class DossierLevelEnum extends Enum 15 { 16 protected static function values(): array 17 { 18 return [ 19 'basic' => 1, 20 'intermediate' => 2, 21 'surveillance' => 3, 22 ]; 23 } 24 25 public static function id2Name(int $id) 26 { 27 return match ($id) { 28 1 => __('dossiers.dossier.panel.form.level.basic'), 29 2 => __('dossiers.dossier.panel.form.level.intermediate'), 30 3 => __('dossiers.dossier.panel.form.level.surveillance'), 31 }; 32 } 33 34 public static function toCollection(): Collection 35 { 36 return collect(DossierLevelEnum::toValues())->map( 37 fn ($level) => [ 38 'id' => $level, 39 'name' => DossierLevelEnum::id2Name($level), 40 ] 41 ); 42 } 43 }