/** * Generated by API Builder - https://www.apibuilder.io * Service version: 1.0.1 * User agent: apibuilder app.apibuilder.io/gilt/gilt-public-api/1.0.1/http4s_0_15 */ package com.gilt.public.api.models { /** * @param name Product name * @param product URL to product object * @param id Unique identifier for product * @param brand Brand name * @param url Link to product detail page where item can be purchased * @param categories A list of categories to which this product belongs. * @param imageUrls A map of key/value pairs with the key being the image resolution WIDTHxHEIGHT * and the value being an array of image objects. * @param skus List of Skus */ final case class Product( name: String, product: String, id: Long, brand: String, url: String, content: com.gilt.public.api.models.ProductContent, categories: Seq[String], imageUrls: Map[String, _root_.io.circe.Json], skus: Seq[com.gilt.public.api.models.Sku] ) /** * @param categories A list of categories to which this product belongs. */ final case class ProductCategories( categories: Seq[String] ) /** * @param description Product description. * @param fitNotes Sizing information. * @param material Materials list. * @param careInstructions Additional care information. * @param origin Place of manufacture. */ final case class ProductContent( description: _root_.scala.Option[String] = None, fitNotes: _root_.scala.Option[String] = None, material: _root_.scala.Option[String] = None, careInstructions: _root_.scala.Option[String] = None, origin: _root_.scala.Option[String] = None ) /** * @param name Sale name * @param sale URL to single sale object * @param saleKey unique identifier for sale * @param store Store key * @param description A description of the sale's theme or brand * @param saleUrl Permalink to sale website * @param begins ISO8601-formatted time for beginning of sale * @param ends ISO-8601-formatted time for end of sale * @param imageUrls A map of key/value pairs with the key being the image resolution WIDTHxHEIGHT * and the value being an array of image objects. * @param products List of URLs to individual product objects (not available if sale is upcoming or * sold out) */ final case class SaleDetail( name: String, sale: String, saleKey: String, store: com.gilt.public.api.models.Store, description: _root_.scala.Option[String] = None, saleUrl: String, begins: _root_.java.time.Instant, ends: _root_.scala.Option[_root_.java.time.Instant] = None, imageUrls: Map[String, _root_.io.circe.Json], products: _root_.scala.Option[Seq[String]] = None ) /** * @param sales List of sales. */ final case class SaleList( sales: Seq[com.gilt.public.api.models.SaleDetail] ) /** * @param id The SKU unique identifier * @param inventoryStatus Describes product availability. One of: sold out, for sale or reserved. * @param msrpPrice MSRP price of SKU in US Dollars. * @param salePrice Sale price of SKU in US Dollars. * @param shippingSurcharge If absent, standard Gilt.com shipping policy and any resulting charges apply. If * present, standard shipping charge is overridden by amount listed here in US * Dollars. * @param attributes SKU attributes like color and size. */ final case class Sku( id: Long, inventoryStatus: String, msrpPrice: BigDecimal, salePrice: BigDecimal, shippingSurcharge: _root_.scala.Option[BigDecimal] = None, attributes: Seq[Map[String, _root_.io.circe.Json]] ) /** * Gilt.com is divided into stores. Currently there are four stores exposed by the * API: Women, Men, Baby & Kids and Home. */ sealed trait Store extends _root_.scala.Product with _root_.scala.Serializable object Store { case object Women extends Store { override def toString = "women" } case object Men extends Store { override def toString = "men" } case object Kids extends Store { override def toString = "kids" } case object Home extends Store { override def toString = "home" } /** * UNDEFINED captures values that are sent either in error or * that were added by the server after this library was * generated. We want to make it easy and obvious for users of * this library to handle this case gracefully. * * We use all CAPS for the variable name to avoid collisions * with the camel cased values above. */ final case class UNDEFINED(override val toString: String) extends Store /** * all returns a list of all the valid, known values. We use * lower case to avoid collisions with the camel cased values * above. */ val all: scala.List[Store] = scala.List(Women, Men, Kids, Home) private val byName: Map[String, Store] = all.map(x => x.toString.toLowerCase -> x).toMap def apply(value: String): Store = fromString(value).getOrElse(UNDEFINED(value)) def fromString(value: String): _root_.scala.Option[Store] = byName.get(value.toLowerCase) } }