public function rules(): array 	{ 		$lang = DomainLanguages::tryFrom($this->lang);  		return array_merge(parent::rules(), [ 			'ppi_client_survey_id' => ['required', 'uuid', Rule::exists(ClientSurvey::class, 'id')->whereNull('client_id')], 			'ba_client_survey_id' => ['nullable', 'uuid', Rule::exists(ClientSurvey::class, 'id')->whereNotNull('client_id'), 				Rule::excludeIf(!ClientSurvey::where('id', $this->ba_client_survey_id)->whereHas('professions', function ($query) { 					$query->where('professions.id', $this->profession_id); 				})->inApplicantLimits()->exists()), 			], 			'enps_grade' => ['nullable', 'required_with:ba_client_survey_id', 'integer', 'min:0', 'max:10'], 			'answer_values' => ['array', 'required', new ValidateQuestionIDs], 			'answer_values.*' => [new ValidateQuestion($lang)], 			'answer_values.*.*' => ['sometimes', new ValidateCheckboxAnswersPpi($lang)], 			'profession_id' => ['required_with:ba_client_survey_id', 'exclude_without:ba_client_survey_id', 'uuid', 'exists:' . Profession::class . ',id'], 			'new_profession_name' => ['nullable', 'string', 'max:50', Rule::when(isset($this->profession_id) || isset($this->ba_client_survey_id), ['prohibited'])], 			'company_names' => ['array', 'required', 'size:3', new ValidateCompanyChoice($lang)], 			'company_names.*' => ['required', 'string', 'max:150', 'distinct'], 			'received_ba_client_survey_id' => ['nullable', 'required_with:has_sufficient_info_for_ba_survey', 'uuid', Rule::exists(ClientSurvey::class, 'id')->whereNotNull('client_id')], 			'has_sufficient_info_for_ba_survey' => ['boolean', 'required_with:received_ba_client_survey_id'], 		]); 	}