/ app / Enums / DossierLevelEnum.php
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  }