public function rules(): array 	{ 		return [ 			'code' => ['nullable', 'string', 'max:250'], 			'class' => ['required', 'integer', new Enum(QuestionClass::class)], 			'category_id' => ['nullable', 'required_if:class,' . QuestionClass::Basic->value, 'prohibited_if:class,' . QuestionClass::categoryIdProhibitedCases(), 'uuid', 'exists:categories,id'], 			'client_survey_id' => ['nullable', 'required_if:class,' . QuestionClass::Additional->value, 'prohibited_if:class,' . QuestionClass::clientSurveyIdProhibitedCases(), 'uuid', 'exists:client_surveys,id'], 			'title_en' => ['required', 'string', 'max:250'], 			'description_en' => ['nullable', 'string', 'max:250'], 			'title_hr' => ['nullable', 'string', 'max:250'], 			'description_hr' => ['nullable', 'string', 'max:250'], 			'title_bs' => ['nullable', 'string', 'max:250'], 			'description_bs' => ['nullable', 'string', 'max:250'], 			'title_mk' => ['nullable', 'string', 'max:250'], 			'description_mk' => ['nullable', 'string', 'max:250'], 			'title_sl' => ['nullable', 'string', 'max:250'], 			'description_sl' => ['nullable', 'string', 'max:250'], 			'title_sr' => ['nullable', 'string', 'max:250'], 			'description_sr' => ['nullable', 'string', 'max:250'], 			'title_fr' => ['nullable', 'string', 'max:250'], 			'description_fr' => ['nullable', 'string', 'max:250'], 			'title_de' => ['nullable', 'string', 'max:250'], 			'description_de' => ['nullable', 'string', 'max:250'], 			'available_answers_en' => ['sometimes', 'prohibited_unless:type,' . QuestionType::CustomRadio->value . ',' . QuestionType::Checkbox->value, 'array', Rule::requiredIf(function () { 				return $this->title_en && (((int) $this->type === QuestionType::CustomRadio->value) || ((int) $this->type === QuestionType::Checkbox->value)); 			})], 			'available_answers_en.*' => ['nullable', 'string', 'max:250'], 			'available_answers_hr' => ['sometimes', 'prohibited_unless:type,' . QuestionType::CustomRadio->value . ',' . QuestionType::Checkbox->value, 'array', Rule::requiredIf(function () { 				return $this->title_hr && (((int) $this->type === QuestionType::CustomRadio->value) || ((int) $this->type === QuestionType::Checkbox->value)); 			})], 			'available_answers_hr.*' => ['nullable', 'string', 'max:250', new MatchFieldCount([count($this->available_answers_hr ?? [])], count($this->available_answers_en ?? []))], 			'available_answers_bs' => ['sometimes', 'prohibited_unless:type,' . QuestionType::CustomRadio->value . ',' . QuestionType::Checkbox->value, 'array', Rule::requiredIf(function () { 				return $this->title_bs && (((int) $this->type === QuestionType::CustomRadio->value) || ((int) $this->type === QuestionType::Checkbox->value)); 			})], 			'available_answers_bs.*' => ['nullable', 'string', 'max:250', new MatchFieldCount([count($this->available_answers_bs ?? [])], count($this->available_answers_en ?? []))], 			'available_answers_mk' => ['sometimes', 'prohibited_unless:type,' . QuestionType::CustomRadio->value . ',' . QuestionType::Checkbox->value, 'array', Rule::requiredIf(function () { 				return $this->title_mk && (((int) $this->type === QuestionType::CustomRadio->value) || ((int) $this->type === QuestionType::Checkbox->value)); 			})], 			'available_answers_mk.*' => ['nullable', 'string', 'max:250', new MatchFieldCount([count($this->available_answers_mk ?? [])], count($this->available_answers_en ?? []))], 			'available_answers_sl' => ['sometimes', 'prohibited_unless:type,' . QuestionType::CustomRadio->value . ',' . QuestionType::Checkbox->value, 'array', Rule::requiredIf(function () { 				return $this->title_sl && (((int) $this->type === QuestionType::CustomRadio->value) || ((int) $this->type === QuestionType::Checkbox->value)); 			})], 			'available_answers_sl.*' => ['nullable', 'string', 'max:250', new MatchFieldCount([count($this->available_answers_sl ?? [])], count($this->available_answers_en ?? []))], 			'available_answers_sr' => ['sometimes', 'prohibited_unless:type,' . QuestionType::CustomRadio->value . ',' . QuestionType::Checkbox->value, 'array', Rule::requiredIf(function () { 				return $this->title_sr && (((int) $this->type === QuestionType::CustomRadio->value) || ((int) $this->type === QuestionType::Checkbox->value)); 			})], 			'available_answers_sr.*' => ['nullable', 'string', 'max:250', new MatchFieldCount([count($this->available_answers_sr ?? [])], count($this->available_answers_en ?? []))], 			'available_answers_fr' => ['sometimes', 'prohibited_unless:type,' . QuestionType::CustomRadio->value . ',' . QuestionType::Checkbox->value, 'array', Rule::requiredIf(function () { 				return $this->title_fr && (((int) $this->type === QuestionType::CustomRadio->value) || ((int) $this->type === QuestionType::Checkbox->value)); 			})], 			'available_answers_fr.*' => ['nullable', 'string', 'max:250', new MatchFieldCount([count($this->available_answers_fr ?? [])], count($this->available_answers_en ?? []))], 			'available_answers_de' => ['sometimes', 'prohibited_unless:type,' . QuestionType::CustomRadio->value . ',' . QuestionType::Checkbox->value, 'array', Rule::requiredIf(function () { 				return $this->title_de && (((int) $this->type === QuestionType::CustomRadio->value) || ((int) $this->type === QuestionType::Checkbox->value)); 			})], 			'available_answers_de.*' => ['nullable', 'string', 'max:250', new MatchFieldCount([count($this->available_answers_de ?? [])], count($this->available_answers_en ?? []))], 			'allowed_comments' => ['boolean'], 			'ordering' => ['nullable', 'integer', 'min:0', 'max:65535'], 			'required' => ['boolean'], 			'type' => ['required', 'numeric', new Enum(QuestionType::class)], 		]; 	}