FileObjectType.php 830 B

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. namespace App\Models\Enums;
  3. use App\Models\Project;
  4. use App\Models\Requirement;
  5. use App\Models\Task;
  6. enum FileObjectType: string
  7. {
  8. case PROJECT = "project";
  9. case REQUIREMENT="requirement";
  10. case TASK = "task";
  11. public function modelBuilder(): \Illuminate\Database\Eloquent\Builder
  12. {
  13. return match ($this) {
  14. self::PROJECT => Project::query(),
  15. self::TASK => Task::query(),
  16. self::REQUIREMENT => Requirement::query(),
  17. };
  18. }
  19. public function modelBuilderAllowed(string $id = null): \Illuminate\Database\Eloquent\Builder
  20. {
  21. return match ($this) {
  22. self::PROJECT => Project::query()->allowed($id),
  23. self::TASK => Task::query()->allowed($id),
  24. self::REQUIREMENT => Requirement::query(),
  25. };
  26. }
  27. }