public function rules(): array 	{ 		$lang = DomainLanguages::tryFrom($this->lang);  		return array_merge(parent::rules(), [ 			'code' => ['required', 'string', 'exists:applicants,code', Rule::exists(Applicant::class)->where(function ($query) { 				return $query->whereRaw('BINARY `code` = ?', [$this->code]) 					->where('is_offline', false) 					->where('filled', false); 			})], 			'survey_filling_started' => ['nullable', 'date', 'before:now'], 			'answer_values' => ['array', 'required', new ValidateQuestionIDs($this->comments), new ValidateDemographicQuestionsRequirement($this->code, $this->answer_values)], 			'answer_values.*' => ['required', new ValidateQuestion($lang)], 			'answer_values.*.*' => ['sometimes', new ValidateCheckboxAnswers($lang)], 			'enps_grade' => ['required', 'integer', 'min:0', 'max:10'], 			'esi_workplace_satisfaction' => ['required', 'integer', 'min:1', 'max:10'], 			'esi_workplace_expectations' => ['required', 'integer', 'min:1', 'max:10'], 			'esi_ideal_job_comparison' => ['required', 'integer', 'min:1', 'max:10'], 			'comments' => ['array'], 			'comments.*' => ['nullable', 'string', 'max:250'], 			'applicant_note' => ['nullable', 'string', 'max:500'], 			'final' => ['boolean'], 		]); 	}