cartService->show($tenant, $request)); } public function addItem(AddCartItemRequest $request, Tenant $tenant): JsonResponse { $result = $this->cartService->addItem( $tenant, $request, (int) $request->validated('catalog_item_id'), $request->validated('variant_id') !== null ? (int) $request->validated('variant_id') : null, (int) $request->validated('cantidad'), ); $response = CartResource::make($result['cart']) ->additional([ 'code' => 'cart.item_added', 'message' => __('api.cart.item_added'), ]) ->response(); if ($result['guest_token'] !== null) { $response->withCookie($this->cartService->makeGuestTokenCookie($result['guest_token'])); } return $response; } public function updateItemQuantity( UpdateCartItemQuantityRequest $request, Tenant $tenant, CartItem $cartItem, ): CartResource { return CartResource::make( $this->cartService->updateItemQuantity( $tenant, $request, $cartItem->getKey(), (int) $request->validated('cantidad'), ) )->additional([ 'code' => 'cart.quantity_updated', 'message' => __('api.cart.quantity_updated'), ]); } public function removeItem(Request $request, Tenant $tenant, CartItem $cartItem): CartResource { return CartResource::make( $this->cartService->removeItem($tenant, $request, $cartItem->getKey()) )->additional([ 'code' => 'cart.item_removed', 'message' => __('api.cart.item_removed'), ]); } }