12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- <?php
- namespace App\Models\Enums;
- use App\Models\Action;
- use App\Models\Asset;
- use App\Models\Plan;
- use App\Models\Project;
- use App\Models\Requirement;
- use App\Models\Task;
- enum FileObjectType: string
- {
- case ASSET ="asset";
- case PROJECT = "project";
- case REQUIREMENT="requirement";
- case TASK = "task";
- case ACTION = "action";
- case PLAN = "plan";
- public function modelBuilder(): \Illuminate\Database\Eloquent\Builder
- {
- return match ($this) {
- self::ASSET => Asset::query(),
- self::PROJECT => Project::query(),
- self::TASK => Task::query(),
- self::REQUIREMENT => Requirement::query(),
- self::ACTION => Action::query(),
- self::PLAN => Plan::query(),
- };
- }
- public function modelBuilderAllowed(string $id = null): \Illuminate\Database\Eloquent\Builder
- {
- return match ($this) {
- self::ASSET => Asset::query(),
- self::PROJECT => Project::query()->allowed($id),
- self::TASK => Task::query()->allowed($id),
- self::REQUIREMENT => Requirement::query(),
- self::ACTION => Action::query(),
- self::PLAN => Plan::query(),
- };
- }
- }
|