<?php

namespace App\ModelFilters;

use EloquentFilter\ModelFilter;
use Illuminate\Support\Facades\Auth;

class TaskFilter extends ModelFilter
{
    /**
    * Related Models that have ModelFilters as well as the method on the ModelFilter
    * As [relationMethod => [input_key1, input_key2]].
    *
    * @var array
    */
    public $relations = [];

    public function project(string $project): TaskFilter
    {
        return $this->where("tasks.project_id", $project);
    }

    public function status(string $status): TaskFilter
    {
        return $this->where("status", $status);
    }

    public function asset(string $asset): TaskFilter
    {
        return $this->where("asset_id", $asset);
    }

    public function requirementGroup(string $group): TaskFilter
    {
        return $this->where("requirement_group_id", $group);
    }

    public function my(string $my): TaskFilter
    {
        return $my == "yes" ? $this->where("assign", Auth::id()) : $this;
    }

    public function linkRequirement($link): TaskFilter
    {
        return match($link) {
            "yes" => $this->where("requirement_id", ">", 0),
            "no" => $this->where("requirement_id", "=", 0),
            default => $this,
        };
    }
}