cartService->show($tenant, $request)); } public function addItem(AddCartItemRequest $request, Tenant $tenant): JsonResponse { $result = $this->cartService->addItem( $tenant, $request, $request->mappedBuyableType(), (int) $request->validated('buyable_id'), (int) $request->validated('cantidad'), ); $response = CartResource::make($result['cart']) ->additional(['message' => 'Producto agregado al carrito.']) ->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(['message' => 'Cantidad de producto actualizada.']); } public function removeItem(Request $request, Tenant $tenant, CartItem $cartItem): CartResource { return CartResource::make( $this->cartService->removeItem($tenant, $request, $cartItem->getKey()) )->additional(['message' => 'Producto eliminado del carrito.']); } }