public function rules(): array 	{ 		return [ 			'name' => ['required', 'string', 'max:50'], 			'lastname' => ['required', 'string', 'max:50'], 			'email' => ['required', 'email', 'max:50'], 			'phone' => ['required', 'string', 'max:20'], 			'company_address' => ['nullable', 'required_with:vat', 'string', 'max:100'], 			'company_name' => ['nullable', 'required_with:vat', 'string', 'max:50'], 			'vat' => ['nullable', 'required_with:company_name', 'string', 'max:20'], 			'note' => ['nullable', 'string', 'max:500'], 			'lang' => ['required', 'string', new Enum(Language::class)], 			'domain' => ['required', 'string', 'exists:' . Domain::class . ',domain'], 			'payment_type' => ['required', 'integer', new Enum(PaymentType::class)],  			'delivery_address' => ['required', 'string', 'max:50'], 			'delivery_city' => ['required', 'string', 'max:50'], 			'delivery_zip_code' => ['required', 'string', 'max:20'], 			'delivery_country' => ['bail', 'required', 'string', 'uppercase', 'size:2'],  			'billing_address' => ['nullable', 'string', 'max:50'], 			'billing_city' => ['nullable', 'string', 'max:50'], 			'billing_zip_code' => ['nullable', 'string', 'max:20'], 			'billing_country' => ['bail', 'nullable', 'string', 'uppercase', 'size:2'],  			'products' => ['required', 'array'], 			'products.*.product_id' => ['required', 'uuid', 'distinct'], 			'products.*.quantity' => ['required', 'integer', 'min:1'], 		]; 	}