public function rules(): array 	{ 		return MediaStorage::mergeValidationRules([ 			'title_en' => ['required', 'string', 'max:100', new OpenAIModeration], 			'title_hr' => ['required', 'string', 'max:100', new OpenAIModeration], 			'subtitle_en' => ['required', 'string', 'max:100', new OpenAIModeration], 			'subtitle_hr' => ['required', 'string', 'max:100', new OpenAIModeration], 			'body_en' => ['required', 'string', new OpenAIModeration], 			'body_hr' => ['required', 'string', new OpenAIModeration], 			'price' => ['required', 'numeric', 'min:0'], 			'volume' => ['required', 'numeric', 'min:0'], 			'year' => ['required', 'integer', 'min:2000', 'max:' . formatLocalTimestamp(null, 'Y')], 			'weight' => ['required', 'integer', 'min:1', 'max:5000'], 			'featured' => ['boolean'], 			'active' => ['boolean'], 			'in_stock' => ['boolean'], 			'images' => ['array'], 			'images.*' => ['required', 'image', 'max:' . setting('max_upload_size') / 1024, new SafeWebp], 			'certificates' => ['array'], 			'certificates.*' => ['required', 'image', 'max:' . setting('max_upload_size') / 1024, new SafeWebp], 		]); 	}