public function rules(): array 	{ 		$current_domain = auth()->user()?->user->getActiveDomain(); 		$main_language = $current_domain?->main_language ?? Language::getDefaultLanguage();  		$validation_rule_builder = [];  		foreach (Language::cases() as $language) { 			$lang = $language->value; 			$required = ($lang === $main_language);  			$validation_rule_builder['title_' . $lang] = [$required ? 'required' : 'nullable', 'string', 'max:100', new OpenAIModeration]; 			$validation_rule_builder['short_description_' . $lang] = ['nullable', 'string', 'max:250', new OpenAIModeration]; 			$validation_rule_builder['time_of_reading_' . $lang] = ['nullable', 'string', new OpenAIModeration]; 			$validation_rule_builder['body_' . $lang] = [$required ? 'required' : 'nullable', 'string', new OpenAIModeration]; 		}  		return MediaStorage::mergeValidationRules(array_merge($validation_rule_builder, [ 			'domain_id' => ['required', 'uuid', 'exists:' . Domain::class . ',id'], 			'category_id' => ['nullable', 'uuid', 'exists:' . Category::class . ',id'], 			'featured' => ['boolean'], 			'published_at' => ['nullable', 'date'], 			'tags' => ['nullable', 'string'], 			'recipes' => ['array'], 			'recipes.*' => ['required', 'uuid', 'distinct', 'exists:' . Recipe::class . ',id'], 			'image' => ['image', 'max:' . setting('max_upload_size') / 1024, new SafeWebp], 		])); 	}