public function rules(): array 	{ 		// Input is disabled when updating so type is instead extracted from route model bound Question 		$question_type = $this->id?->type; 		$current_domain = auth()->user()->user->getActiveDomain();  		foreach (DomainLanguages::cases() as $language) { 			$lang = $language->value; 			$required = ($lang === $current_domain->main_language);  			$validation_rule_builder['title_' . $lang] = [$required ? 'required' : 'nullable', 'string', 'max:250']; 			$validation_rule_builder['description_' . $lang] = ['nullable', 'string', 'max:250'];  			$validation_rule_builder['answer_groups.*.title_' . $lang] = ['nullable', 'string', 'max:250']; 		}  		$condition = (((int) $question_type === QuestionType::CustomRadio->value) || ((int) $question_type === QuestionType::Checkbox->value) || ((int) $question_type === QuestionType::CheckboxLimitedAnswers->value) || ((int) $question_type === QuestionType::CheckboxWithCustomAnswer->value));  		return array_merge($validation_rule_builder, [ 			'code' => ['nullable', 'string', 'max:250'], 			'ordering' => ['required', 'integer', 'min:0', 'max:65535'], 			'available_answers_en' => ['sometimes', 'array'], 			'available_answers_en.*' => ['nullable', 'string', 'max:250', new MatchFieldCountPPI([count($this->available_answers_hr ?? [])], count($this->available_answers_en ?? []), $this->title_en)], 			'available_answers_hr' => ['sometimes', 'array'], 			'available_answers_hr.*' => ['nullable', 'string', 'max:250', new MatchFieldCountPPI([count($this->available_answers_hr ?? [])], count($this->available_answers_en ?? []), $this->title_en)], 			'available_answers_bs' => ['sometimes', 'array'], 			'available_answers_bs.*' => ['nullable', 'string', 'max:250', new MatchFieldCountPPI([count($this->available_answers_bs ?? [])], count($this->available_answers_en ?? []), $this->title_en)], 			'available_answers_mk' => ['sometimes', 'array'], 			'available_answers_mk.*' => ['nullable', 'string', 'max:250', new MatchFieldCountPPI([count($this->available_answers_mk ?? [])], count($this->available_answers_en ?? []), $this->title_en)], 			'available_answers_sl' => ['sometimes', 'array'], 			'available_answers_sl.*' => ['nullable', 'string', 'max:250', new MatchFieldCountPPI([count($this->available_answers_sl ?? [])], count($this->available_answers_en ?? []), $this->title_en)], 			'available_answers_sr' => ['sometimes', 'array'], 			'available_answers_sr.*' => ['nullable', 'string', 'max:250', new MatchFieldCountPPI([count($this->available_answers_sr ?? [])], count($this->available_answers_en ?? []), $this->title_en)], 			'available_answers_fr' => ['sometimes', 'array'], 			'available_answers_fr.*' => ['nullable', 'string', 'max:250', new MatchFieldCountPPI([count($this->available_answers_fr ?? [])], count($this->available_answers_en ?? []), $this->title_en)], 			'available_answers_de' => ['sometimes', 'array'], 			'available_answers_de.*' => ['nullable', 'string', 'max:250', new MatchFieldCountPPI([count($this->available_answers_de ?? [])], count($this->available_answers_en ?? []), $this->title_en)],  			'required' => ['boolean'],  			'category_id' => ['prohibited'], 			'client_survey_id' => ['prohibited'], 			'type' => ['prohibited'], 			'class' => ['prohibited'],  			'question_id' => ['nullable', 'uuid', 'prohibits:profession_id'], 			'questions_answer' => ['nullable', 'string', 'max:250', 'prohibits:profession_id', 'required_with:question_id'], 			'profession_ids' => ['array'], 			'profession_ids.*' => ['nullable', 'uuid', 'exists:' . Profession::class . ',id', 'prohibits:question_id,questions_answer'],  			'question_group_id' => ['nullable', 'uuid', 'exists:' . QuestionGroup::class . ',id'],  			'answer_groups' => ['array'], 			'answer_groups.*.answer_values' => ['array'], 			'answer_groups.*.answer_values.*' => ['required', 'integer', 'distinct'], 		]); 	}