public function rules(): array 	{ 		return [ 			'search' => ['nullable', 'string', 'max:50'], 			'lang' => ['nullable', 'string', 'size:2', Rule::in(config('custom.supported_languages'))],  			'sort_by' => ['nullable', 'string', 'in:asc,desc'], 			'sort_by_field' => ['nullable', 'string', 'in:name,price,created_at'], 			'price_min' => ['nullable', 'required_with:price_max', 'integer', 'lt:price_max', 'min:1'], 			'price_max' => ['nullable', 'required_with:price_min', 'integer', 'gt:price_min', 'min:1'], 			'category' => ['nullable', 'uuid', 'exists:categories,id'], 			'filters' => ['array'], 			'filters.*' => [new ValidateFilter($this->lang)], 			'products' => ['array'], 			'products.*' => ['required', 'uuid', 'distinct', 'exists:' . Product::class . ',id'], 		]; 	}