/* * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* Copyright (c) 2017 Mobify Research & Development Inc. All rights reserved. */
/* * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* OCC No description provided (generated by Swagger Codegen
* https://github.com/swagger-api/swagger-codegen)
*
* OpenAPI spec version: v2
*
*
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git Do not edit the class
* manually.
*
*/
import ApiClient from '../ApiClient'
import Address from './Address'
import DeliveryMode from './DeliveryMode'
import DeliveryOrderEntryGroup from './DeliveryOrderEntryGroup'
import OrderEntry from './OrderEntry'
import PaymentDetails from './PaymentDetails'
import PickupOrderEntryGroup from './PickupOrderEntryGroup'
import Price from './Price'
import Principal from './Principal'
import PromotionResult from './PromotionResult'
import Voucher from './Voucher'
/**
* The Cart model module.
* @module models/Cart
* @version v2
*/
export default class Cart {
/**
* Constructs a new <code>Cart</code>.
* @alias module:models/Cart
* @class
*/
constructor() {
/**
*
* @member {Number} totalUnitCount
*/
this.totalUnitCount = undefined
/**
*
* @member {Array.<module:models/PromotionResult>}
* potentialOrderPromotions
*/
this.potentialOrderPromotions = undefined
/**
*
* @member {Array.<module:models/PromotionResult>}
* potentialProductPromotions
*/
this.potentialProductPromotions = undefined
/**
*
* @member {String} name
*/
this.name = undefined
/**
*
* @member {String} description
*/
this.description = undefined
/**
*
* @member {String} expirationTime
*/
this.expirationTime = undefined
/**
*
* @member {String} saveTime
*/
this.saveTime = undefined
/**
* @member {module:models/Principal} savedBy
*/
this.savedBy = undefined
/**
*
* @member {String} code
*/
this.code = undefined
/**
*
* @member {Boolean} net
*/
this.net = undefined
/**
* @member {module:models/Price} totalPriceWithTax
*/
this.totalPriceWithTax = undefined
/**
* @member {module:models/Price} totalPrice
*/
this.totalPrice = undefined
/**
* @member {module:models/Price} totalTax
*/
this.totalTax = undefined
/**
* @member {module:models/Price} subTotal
*/
this.subTotal = undefined
/**
* @member {module:models/Price} deliveryCost
*/
this.deliveryCost = undefined
/**
*
* @member {Array.<module:models/OrderEntry>} entries
*/
this.entries = undefined
/**
*
* @member {Number} totalItems
*/
this.totalItems = undefined
/**
* @member {module:models/DeliveryMode} deliveryMode
*/
this.deliveryMode = undefined
/**
* @member {module:models/Address} deliveryAddress
*/
this.deliveryAddress = undefined
/**
* @member {module:models/PaymentDetails} paymentInfo
*/
this.paymentInfo = undefined
/**
*
* @member {Array.<module:models/PromotionResult>}
* appliedOrderPromotions
*/
this.appliedOrderPromotions = undefined
/**
*
* @member {Array.<module:models/PromotionResult>}
* appliedProductPromotions
*/
this.appliedProductPromotions = undefined
/**
* @member {module:models/Price} productDiscounts
*/
this.productDiscounts = undefined
/**
* @member {module:models/Price} orderDiscounts
*/
this.orderDiscounts = undefined
/**
* @member {module:models/Price} totalDiscounts
*/
this.totalDiscounts = undefined
/**
*
* @member {String} site
*/
this.site = undefined
/**
*
* @member {String} store
*/
this.store = undefined
/**
*
* @member {String} guid
*/
this.guid = undefined
/**
*
* @member {Boolean} calculated
*/
this.calculated = undefined
/**
*
* @member {Array.<module:models/Voucher>} appliedVouchers
*/
this.appliedVouchers = undefined
/**
* @member {module:models/Principal} user
*/
this.user = undefined
/**
*
* @member {Array.<module:models/PickupOrderEntryGroup>}
* pickupOrderGroups
*/
this.pickupOrderGroups = undefined
/**
*
* @member {Array.<module:models/DeliveryOrderEntryGroup>}
* deliveryOrderGroups
*/
this.deliveryOrderGroups = undefined
/**
*
* @member {Number} pickupItemsQuantity
*/
this.pickupItemsQuantity = undefined
/**
*
* @member {Number} deliveryItemsQuantity
*/
this.deliveryItemsQuantity = undefined
}
/**
* Constructs a <code>Cart</code> from a plain JavaScript object,
* optionally creating a new instance. Copies all relevant properties from
* <code>data</code> to <code>obj</code> if supplied or a new instance if
* not.
* @param {Object} data The plain JavaScript object bearing properties of
* interest.
* @param {module:models/Cart} obj Optional instance to populate.
* @return {module:models/Cart} The populated <code>Cart</code>
* instance.
*/
static constructFromObject(data, obj) {
if (data) {
obj = obj || new Cart()
if (data.hasOwnProperty('totalUnitCount')) {
obj.totalUnitCount = ApiClient.convertToType(data.totalUnitCount, 'Number')
}
if (data.hasOwnProperty('potentialOrderPromotions')) {
obj.potentialOrderPromotions = ApiClient.convertToType(data.potentialOrderPromotions, [PromotionResult])
}
if (data.hasOwnProperty('potentialProductPromotions')) {
obj.potentialProductPromotions = ApiClient.convertToType(data.potentialProductPromotions, [PromotionResult])
}
if (data.hasOwnProperty('name')) {
obj.name = ApiClient.convertToType(data.name, 'String')
}
if (data.hasOwnProperty('description')) {
obj.description = ApiClient.convertToType(data.description, 'String')
}
if (data.hasOwnProperty('expirationTime')) {
obj.expirationTime = ApiClient.convertToType(data.expirationTime, 'String')
}
if (data.hasOwnProperty('saveTime')) {
obj.saveTime = ApiClient.convertToType(data.saveTime, 'String')
}
if (data.hasOwnProperty('savedBy')) {
obj.savedBy = Principal.constructFromObject(data.savedBy)
}
if (data.hasOwnProperty('code')) {
obj.code = ApiClient.convertToType(data.code, 'String')
}
if (data.hasOwnProperty('net')) {
obj.net = ApiClient.convertToType(data.net, 'Boolean')
}
if (data.hasOwnProperty('totalPriceWithTax')) {
obj.totalPriceWithTax = Price.constructFromObject(data.totalPriceWithTax)
}
if (data.hasOwnProperty('totalPrice')) {
obj.totalPrice = Price.constructFromObject(data.totalPrice)
}
if (data.hasOwnProperty('totalTax')) {
obj.totalTax = Price.constructFromObject(data.totalTax)
}
if (data.hasOwnProperty('subTotal')) {
obj.subTotal = Price.constructFromObject(data.subTotal)
}
if (data.hasOwnProperty('deliveryCost')) {
obj.deliveryCost = Price.constructFromObject(data.deliveryCost)
}
if (data.hasOwnProperty('entries')) {
obj.entries = ApiClient.convertToType(data.entries, [OrderEntry])
}
if (data.hasOwnProperty('totalItems')) {
obj.totalItems = ApiClient.convertToType(data.totalItems, 'Number')
}
if (data.hasOwnProperty('deliveryMode')) {
obj.deliveryMode = DeliveryMode.constructFromObject(data.deliveryMode)
}
if (data.hasOwnProperty('deliveryAddress')) {
obj.deliveryAddress = Address.constructFromObject(data.deliveryAddress)
}
if (data.hasOwnProperty('paymentInfo')) {
obj.paymentInfo = PaymentDetails.constructFromObject(data.paymentInfo)
}
if (data.hasOwnProperty('appliedOrderPromotions')) {
obj.appliedOrderPromotions = ApiClient.convertToType(data.appliedOrderPromotions, [PromotionResult])
}
if (data.hasOwnProperty('appliedProductPromotions')) {
obj.appliedProductPromotions = ApiClient.convertToType(data.appliedProductPromotions, [PromotionResult])
}
if (data.hasOwnProperty('productDiscounts')) {
obj.productDiscounts = Price.constructFromObject(data.productDiscounts)
}
if (data.hasOwnProperty('orderDiscounts')) {
obj.orderDiscounts = Price.constructFromObject(data.orderDiscounts)
}
if (data.hasOwnProperty('totalDiscounts')) {
obj.totalDiscounts = Price.constructFromObject(data.totalDiscounts)
}
if (data.hasOwnProperty('site')) {
obj.site = ApiClient.convertToType(data.site, 'String')
}
if (data.hasOwnProperty('store')) {
obj.store = ApiClient.convertToType(data.store, 'String')
}
if (data.hasOwnProperty('guid')) {
obj.guid = ApiClient.convertToType(data.guid, 'String')
}
if (data.hasOwnProperty('calculated')) {
obj.calculated = ApiClient.convertToType(data.calculated, 'Boolean')
}
if (data.hasOwnProperty('appliedVouchers')) {
obj.appliedVouchers = ApiClient.convertToType(data.appliedVouchers, [Voucher])
}
if (data.hasOwnProperty('user')) {
obj.user = Principal.constructFromObject(data.user)
}
if (data.hasOwnProperty('pickupOrderGroups')) {
obj.pickupOrderGroups = ApiClient.convertToType(data.pickupOrderGroups, [PickupOrderEntryGroup])
}
if (data.hasOwnProperty('deliveryOrderGroups')) {
obj.deliveryOrderGroups = ApiClient.convertToType(data.deliveryOrderGroups, [DeliveryOrderEntryGroup])
}
if (data.hasOwnProperty('pickupItemsQuantity')) {
obj.pickupItemsQuantity = ApiClient.convertToType(data.pickupItemsQuantity, 'Number')
}
if (data.hasOwnProperty('deliveryItemsQuantity')) {
obj.deliveryItemsQuantity = ApiClient.convertToType(data.deliveryItemsQuantity, 'Number')
}
}
return obj
}
}