public function rules(): array 	{ 		return MediaStorage::mergeValidationRules([  			'name' => ['required', 'string', 'max:80'], 			'name_en' => ['nullable', 'string', 'max:80'], 			'extra_name' => ['nullable', 'string', 'max:200'], 			'extra_name_en' => ['nullable', 'string', 'max:200'], 			'description' => ['nullable', 'max:5000', 'string'], 			'description_en' => ['nullable', 'string', 'max:5000'], 			'short_description' => ['nullable', 'max:80', 'string'], 			'short_description_en' => ['nullable', 'string', 'max:80'], 			'active' => ['boolean'], 			'gratis' => ['boolean'], 			'price' => ['required', 'numeric', 'min:0'], 			'price_per_unit_of_measure' => ['nullable', 'numeric', 'min:0'], 			'unavailable' => ['boolean'], 			'sync_stock' => ['boolean'], 			'is_free_after_certain_quantity' => ['boolean'], 			'sort_number' => ['integer', 'min:0', 'max:100'], 			'harvest' => ['nullable', 'string', 'min:0', 'max:10'], 			'categories' => ['array'], 			'categories.*' => ['uuid', 'exists:categories,id'], 			'images' => ['array'], 			'images.*' => ['image', 'max:' . setting('max_upload_size') / 1024, new SafeWebp], 			'nutrition' => ['array'], 			'nutrition.*' => ['image', 'max:' . setting('max_upload_size') / 1024, new SafeWebp], 			'filters' => ['array'], 			'filters.*' => ['nullable', 'bail', new ValidateFilter], 			'filters_en' => ['array'], 			'filters_en.*' => ['nullable', 'string', 'max:300'], 			'piktograms' => ['array'], 			// 'variants' => ['array', 'required_with:variants_price,variants_measure, variants_en, variant_ids, variants_weight'], 			// 'variants.*' => ['required', 'string', 'max:100'], 			// 'variants_price' => ['array', 'required_with:variants,variants_measure, variants_en, variants_id, variants_weight'], 			// 'variants_price.*' => ['required', 'numeric', 'min:0'], 			// 'variants_measure' => ['array', 'required_with:variants_price,variants, variants_en, variant_ids, variants_weight'], 			// 'variants_measure.*' => ['required', 'numeric', 'min:0'], 			// 'variants_weight' => ['array', 'required_with:variants_price,variants, variants_en, variant_ids, variants_measure'], 			// 'variants_weight.*' => ['required', 'numeric', 'min:0'], 			// 'variants_en' => ['array', 'required_with:variants_price,variants_measure, variants, variants_ids, variants_weight'], 			// 'variant_ids' => ['array', 'required_with:variants_price,variants_measure, variants, variants_en, variants_weight'], 			// 'variants_ids.*' => ['required'], 			// 'variants_en.*' => ['required', 'string', 'max:100'], 			// 'variant_label' => ['nullable', 'string', 'max:50'], 			'vat_category' => ['required', 'uuid', 'in_array:categories.*'], 			'tags' => ['nullable', 'string'], 			'tags_en' => ['nullable', /* 'required_with:tags', */ 'string'/* new CheckForTheSameNumberOfItemsInTwoFields($this->tags) */], 			'quantity' => ['required', 'numeric'], 			'weight' => ['required', 'numeric', 'min:0'], 			'unit_of_measure' => 'required', 'integer', Rule::in(array_keys(Product::MEASURE_UNITS)), 			'alternative_unit_of_measure' => 'nullable', 'integer', Rule::in(array_keys(Product::ALTERNATIVE_MEASURE_UNITS)), 			'conversion_to_quantity' => ['nullable', 'numeric', 'min:0'], 			'code' => ['nullable', 'string', 'max:30'], 			'seo_name' => ['nullable', 'string', 'max:200'], 			'seo_description' => ['nullable', 'string', 'max:1000'], 			'seo_name_en' => ['nullable', 'string', 'max:200'], 			'seo_description_en' => ['nullable', 'string', 'max:1000'],  		]); 	}