|string> */ public function rules(): array { $rules = [ "name" => "required|max:50", "nodes" => [ 'required', 'array', 'min:1', ], "nodes.*.name" => "required", "nodes.*.approval_users" => "required|array", "nodes.*.level" => "required|numeric", "nodes.*.approval_mode" => [ 'required', new Enum(ApprovalMode::class), ] ]; if ($this->method() == "POST") { $rules = [ ...$rules, "type" => [ "required", new Enum(ApprovalFlowType::class), ], "object_type" => [ new Enum(ApprovalFlowObjectType::class), ], "object_id" => [ function ($attribute, $value, $fail) { $exist = ApprovalFlowObjectType::from($this->get("object_type")) ->modelBuilderAllowed($value) ->where("company_id", Auth::user()->company_id) ->where('id', $value) ->count(); if (! $exist) { $fail('Resources without permission to access.'); } } ], ]; } return $rules; } }