<?php

namespace App\Models\Enums;

use App\Models\Asset;
use App\Models\Container;
use App\Models\Plan;
use App\Models\Project;
use App\Models\Requirement;
use App\Models\Task;
use App\Services\History\Detector\AssetDetector;
use App\Services\History\Detector\ContainerContentDetector;
use App\Services\History\Detector\ContainerDetector;
use App\Services\History\Detector\ProjectDetector;
use App\Services\History\Detector\RequirementDetector;
use App\Services\History\Detector\TaskDetector;

enum ApprovalFlowObjectType: string
{
    case PROJECT = "project";

    public function modelBuilder(): \Illuminate\Database\Eloquent\Builder
    {
        return match ($this) {
            self::PROJECT => Project::query(),
        };
    }

    public function modelBuilderAllowed(string $id = null): \Illuminate\Database\Eloquent\Builder
    {
        return match ($this) {
            self::PROJECT => Project::query()->allowed($id),
        };
    }
}