user()->can('update', Project::find(request('id'))); } public function _rules(): array { return [ 'id' => 'required|int|exists:projects,id', 'name' => 'sometimes|required|string', 'description' => 'sometimes|required|string', 'default_priority_id' => 'sometimes|integer|exists:priorities,id', 'screenshots_state' => ['sometimes', 'required', new Enum(ScreenshotsState::class)], 'statuses' => 'sometimes|array', 'statuses.*.id' => 'required|exists:statuses,id', 'statuses.*.color' => 'sometimes|nullable|string|regex:/^#[a-f0-9]{6}$/i', 'phases' => 'sometimes|array', 'phases.*.id' => 'sometimes|required|exists:project_phases,id', 'phases.*.name' => 'required|string|min:1|max:255', 'group' => Rule::when(!is_array($this->input('group')), 'sometimes|nullable|integer|exists:project_groups,id'), 'group.id' => Rule::when(is_array($this->input('group')), 'sometimes|nullable|integer|exists:project_groups,id'), ]; } }