import type { Cart, OrdercloudCart, OrdercloudLineItem } from '../../types/cart' export function formatCart( cart: OrdercloudCart, lineItems: OrdercloudLineItem[] ): Cart { return { id: cart.ID, customerId: cart.FromUserID, email: cart.FromUser.Email, createdAt: cart.DateCreated, currency: { code: cart.FromUser?.xp?.currency ?? 'USD', }, taxesIncluded: cart.TaxCost === 0, lineItems: lineItems.map((lineItem) => ({ id: lineItem.ID, variantId: lineItem.Variant ? String(lineItem.Variant.ID) : '', productId: lineItem.ProductID, name: lineItem.Product.Name, quantity: lineItem.Quantity, discounts: [], path: lineItem.ProductID, variant: { id: lineItem.Variant ? String(lineItem.Variant.ID) : '', sku: lineItem.ID, name: lineItem.Product.Name, image: { url: lineItem.Product.xp?.Images?.[0]?.url, }, requiresShipping: Boolean(lineItem.ShippingAddress), price: lineItem.UnitPrice, listPrice: lineItem.UnitPrice, }, })), lineItemsSubtotalPrice: cart.Subtotal, subtotalPrice: cart.Subtotal, totalPrice: cart.Total, discounts: [], } }