export type Maybe = T | null; export type Connection = { edges: Array>; }; export type Edge = { node: T; }; export type Cart = Omit & { lines: CartItem[]; }; export type CartItem = { id: string; quantity: number; cost: { totalAmount: Money; }; merchandise: { id: string; title: string; selectedOptions: { name: string; value: string; }[]; product: Product; }; }; export type Collection = ShopifyCollection & { path: string; }; export type Image = { url: string; altText: string; width: number; height: number; }; export type Menu = { title: string; path: string; }; export type Money = { amount: string; currencyCode: string; }; export type Page = { id: string; title: string; handle: string; body: string; bodySummary: string; seo?: SEO; createdAt: string; updatedAt: string; }; export type Product = Omit & { variants: ProductVariant[]; images: Image[]; }; export type ProductOption = { id: string; name: string; values: string[]; }; export type ProductVariant = { id: string; title: string; availableForSale: boolean; selectedOptions: { name: string; value: string; }[]; price: Money; }; export type SEO = { title: string; description: string; }; export type ShopifyCart = { id: string; checkoutUrl: string; cost: { subtotalAmount: Money; totalAmount: Money; totalTaxAmount: Money; }; lines: Connection; totalQuantity: number; }; export type ShopifyCollection = { handle: string; title: string; description: string; seo: SEO; updatedAt: string; }; export type ShopifyProduct = { id: string; handle: string; availableForSale: boolean; title: string; description: string; descriptionHtml: string; options: ProductOption[]; priceRange: { maxVariantPrice: Money; minVariantPrice: Money; }; variants: Connection; featuredImage: Image; images: Connection; seo: SEO; tags: string[]; updatedAt: string; }; export type ShopifyCartOperation = { data: { cart: ShopifyCart; }; variables: { cartId: string; }; }; export type ShopifyCreateCartOperation = { data: { cartCreate: { cart: ShopifyCart } }; }; export type ShopifyAddToCartOperation = { data: { cartLinesAdd: { cart: ShopifyCart; }; }; variables: { cartId: string; lines: { merchandiseId: string; quantity: number; }[]; }; }; export type ShopifyRemoveFromCartOperation = { data: { cartLinesRemove: { cart: ShopifyCart; }; }; variables: { cartId: string; lineIds: string[]; }; }; export type ShopifyUpdateCartOperation = { data: { cartLinesUpdate: { cart: ShopifyCart; }; }; variables: { cartId: string; lines: { id: string; merchandiseId: string; quantity: number; }[]; }; }; export type ShopifyCollectionOperation = { data: { collection: ShopifyCollection; }; variables: { handle: string; }; }; export type ShopifyCollectionProductsOperation = { data: { collection: { products: Connection; }; }; variables: { handle: string; reverse?: boolean; sortKey?: string; }; }; export type ShopifyCollectionsOperation = { data: { collections: Connection; }; }; export type ShopifyMenuOperation = { data: { menu?: { items: { title: string; url: string; }[]; }; }; variables: { handle: string; }; }; export type ShopifyPageOperation = { data: { pageByHandle: Page }; variables: { handle: string }; }; export type ShopifyPagesOperation = { data: { pages: Connection; }; }; export type ShopifyProductOperation = { data: { product: ShopifyProduct }; variables: { handle: string; }; }; export type ShopifyProductRecommendationsOperation = { data: { productRecommendations: ShopifyProduct[]; }; variables: { productId: string; }; }; export type ShopifyProductsOperation = { data: { products: Connection; }; variables: { query?: string; reverse?: boolean; sortKey?: string; }; };