POST | /v1/backorder/active | Filter Active Back Order |
---|
import Foundation
import ServiceStack
public class FilterActiveBackOrdersRequest : FilterBackOrders, IPost
{
required public init(){ super.init() }
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
}
}
public class FilterBackOrders : Codable
{
public var historical:Bool
public var backOrderCriteria:BackOrderCriteria
public var vehicleCriteria:VehicleCriteria
public var dateCriteria:DateCriteria
public var gssnIds:[String]
required public init(){}
}
public class BackOrderCriteria : Codable
{
public var source:[Int]
public var customerType:[Int]
public var commLinkedBy:[Int?]
public var vinAllocated:Bool?
public var vinAllocatedSellable:Bool?
public var vinAllocatedNotSellable:Bool?
public var specialist:Bool?
public var linkedOrder:Bool?
public var assistanceProviders:[Int]
public var copConverter:Bool?
required public init(){}
}
public class VehicleCriteria : Codable
{
public var model:[CriteriaModel]
public var colour:[String]
public var fuelType:[String]
public var transmission:[String]
public var engine:[String]
public var line:[String]
public var package:[String]
public var equipment:[String]
public var upholstery:[String]
required public init(){}
}
public class CriteriaModel : Codable
{
public var Description:String
public var id:Int
required public init(){}
}
public class DateCriteria : Codable
{
public var created:CreateUpdate
public var modified:CreateUpdate
required public init(){}
}
public class CreateUpdate : Codable
{
public var date:Date?
public var range:DayRange
required public init(){}
}
public class DayRange : Codable
{
public var min:Int?
public var max:Int?
required public init(){}
}
public class FilterBackOrdersResponse : Codable
{
public var backOrders:[BackOrder] = []
public var filteredGssn:String
public var filteredRetailer:String
required public init(){}
}
public class BackOrder : BackOrderBase
{
public var vehicle:VehicleDetail
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case vehicle
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
vehicle = try container.decodeIfPresent(VehicleDetail.self, forKey: .vehicle)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if vehicle != nil { try container.encode(vehicle, forKey: .vehicle) }
}
}
public class BackOrderBase : Codable
{
public var guid:String
public var status:Int
public var customerId:String
public var id:Int
public var reference:String
public var agent:String
public var gssn:String
public var creationDate:Date
public var maintenanceDate:Date
public var customerCriteria:String
public var agentCriteria:String
public var history:[BackOrderHistory]
public var isAllocatedToOrder:Bool
public var vin:String
public var commissionNumber:String
public var order:Order
public var source:String
public var specialist:Bool
public var outrightPurchase:Bool
public var sellable:Bool
public var mulesoftReference:String
public var additionalInformation:String
public var configCode:String
public var fleetBaseOrder:String
public var gasId:String
public var outrightPurchaseCustomerIdentifier:String
public var retailer:Retailer
public var customerMode:Int
public var canEdit:Bool
public var digitalLoungeGssnId:String
public var digitalLounge:String
public var motability:Bool
public var motabilityPricing:MotabilityPricing
public var linkedByUserType:String
public var assistanceProviderId:Int?
public var assistanceProvider:String
public var assistanceDetail:String
public var lastAssistanceMessageDate:Date?
public var lastAssistanceUser:String
public var isCOPConverter:Bool
public var isEligibleCOPConverter:Bool
public var carConfigurator:CarConfigurator
public var carConfiguratorResponse:CarConfiguratorResponse
required public init(){}
}
public class BackOrderHistory : Codable
{
public var status:Int
public var commissionNumber:String
public var vin:String
public var customerCriteria:String
public var agentCriteria:String
public var creationDate:Date
public var maintenanceDate:Date
public var gasId:String
public var sellable:Bool
public var additionalInformation:String
public var reason:String
public var configCode:String
public var fleetBaseOrder:String
public var assistanceDetail:String
public var assistanceProvider:String
public var linkedByUserType:String
public var motabilityVTN:String
public var motabilityBackOrderDropDown:String
public var motabilityValidFrom:Date?
public var motabilityValidTo:Date?
required public init(){}
}
public class Order : Codable
{
public var guid:String
public var reference:String
public var status:Int
public var customerId:String
public var mulesoftReference:String
public var gasId:String
public var orderDate:String
public var offerSnapShot:String
required public init(){}
}
public class Retailer : Codable
{
public var id:Int
public var gssnId:String
public var Description:String
public var street:String
public var city:String
public var postcode:String
public var googleMapPostcode:String
public var phone:String
public var fax:String
public var email:String
public var website:String
public var retailerGroupId:String
public var retailerGroupName:String
public var isOnline:Bool
public var isNewCarRetailer:Bool
public var isUsedCarRetailer:Bool
public var isCentralRetailer:Bool
public var chatEnabled:Bool
public var tradeInEnabled:Bool
public var smart:Bool
public var displayPhoneNumberNew:String
public var displayPhoneNumberUsed:String
public var latitude:Double
public var longitude:Double
public var smartDescription:String
public var smartWebsite:String
public var smartPhone:String
public var legacyId:String
public var agent:Bool
public var marketAreaId:Int
public var digitalLoungeParentGssnId:String
public var sendLeadsToDigitalLoungeParent:Bool
public var openingTimes:RetailerOpeningTimes
required public init(){}
}
public class RetailerOpeningTimes : Codable
{
public var `new`:[RetailerOpeningTime] = []
public var used:[RetailerOpeningTime] = []
required public init(){}
}
public class RetailerOpeningTime : Codable
{
public var day:String
public var openFrom:String
public var openTo:String
public var special:String
required public init(){}
}
public class MotabilityPricing : MotabilityPricingCsv
{
public var motabilityPricingStatus:MotabilityPricingStatus
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case motabilityPricingStatus
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
motabilityPricingStatus = try container.decodeIfPresent(MotabilityPricingStatus.self, forKey: .motabilityPricingStatus)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if motabilityPricingStatus != nil { try container.encode(motabilityPricingStatus, forKey: .motabilityPricingStatus) }
}
}
public class MotabilityPricingCsv : Codable
{
// @DataMember(Order=0)
public var id:Int
// @DataMember(Order=1)
public var criteriaBM7NST:String
// @DataMember(Order=2)
public var vtn:String
// @DataMember(Order=3)
public var backOrderDropDown:String
// @DataMember(Order=4)
public var criteriaFullModelYearCode:String
// @DataMember(Order=5)
public var criteriaValidOptionCodes:String
// @DataMember(Order=6)
public var criteriaInvalidOptionCodes:String
// @DataMember(Order=7)
public var pipNet:Double
// @DataMember(Order=8)
public var pipVat:Double
// @DataMember(Order=9)
public var pipGross:Double
// @DataMember(Order=10)
public var wpmsNet:Double
// @DataMember(Order=11)
public var wpmsVat:Double
// @DataMember(Order=12)
public var wpmsGross:Double
// @DataMember(Order=13)
public var discountNet:Double
// @DataMember(Order=14)
public var discountVat:Double
// @DataMember(Order=15)
public var discountGross:Double
// @DataMember(Order=16)
public var listPriceNet:Double
// @DataMember(Order=17)
public var listPriceVat:Double
// @DataMember(Order=18)
public var listPriceGross:Double
// @DataMember(Order=19)
public var deliveryChargeNet:Double
// @DataMember(Order=20)
public var deliveryChargeVat:Double
// @DataMember(Order=21)
public var deliveryChargeGross:Double
// @DataMember(Order=22)
public var fuelChargeNet:Double
// @DataMember(Order=23)
public var fuelChargeVat:Double
// @DataMember(Order=24)
public var fuelChargeGross:Double
// @DataMember(Order=25)
public var numberPlateFeeNet:Double
// @DataMember(Order=26)
public var numberPlateFeeVat:Double
// @DataMember(Order=27)
public var numberPlateFeeGross:Double
// @DataMember(Order=28)
public var firstRegistrationFeeNet:Double
// @DataMember(Order=29)
public var firstRegistrationFeeVat:Double
// @DataMember(Order=30)
public var firstRegistrationFeeGross:Double
// @DataMember(Order=31)
public var roadFundLicenceNet:Double
// @DataMember(Order=32)
public var roadFundLicenceVat:Double
// @DataMember(Order=33)
public var roadFundLicenceGross:Double
// @DataMember(Order=34)
public var validFrom:Date
// @DataMember(Order=35)
public var validTo:Date
required public init(){}
}
public enum MotabilityPricingStatus : String, Codable
{
case Pending
case Current
case RecentlyExpired
case Expired
}
public class CarConfigurator : Codable
{
public var id:Int
public var backOrderId:Int?
public var configuratorCode:String
public var gasId:String
public var status:Int
public var dateOfLastUpdate:Date
public var lastExceptionMessage:String
public var lastException:String
required public init(){}
}
public class CarConfiguratorResponse : Codable
{
public var name:String
public var keyInformation:KeyInformation
public var orderingOptions:OrderingOptions
public var responseStatus:ResponseStatus
public var configuratorCode:String
required public init(){}
}
public class KeyInformation : Codable
{
public var bM7NST:String
public var configurationDate:String
public var modelYear:String
public var halfYear:String
required public init(){}
}
public class OrderingOptions : Codable
{
public var interior:[String]
public var exterior:[String]
public var other:[String]
required public init(){}
}
public class VehicleDetail : VehicleBaseDetail
{
public var retailPrice_ExVAT:String
public var otr:String
public var actualPrice:String
public var totalOfferValue:String
public var isHOBackOrderAccountVehicle:Bool
public var consumptionCombined:VehicleConsumption
public var consumptionExtraUrban:VehicleConsumption
public var consumptionUrban:VehicleConsumption
public var wltpFuelConsumptionCombined:VehicleConsumption
public var wltpFuelConsumptionExtraHigh:VehicleConsumption
public var wltpFuelConsumptionHigh:VehicleConsumption
public var wltpFuelConsumptionLow:VehicleConsumption
public var wltpFuelConsumptionMedium:VehicleConsumption
public var equipmentCategories:[VehicleEquipmentCategory]
public var vehicleEnergyEfficiencyClass:VehicleEmissionClass
public var vehicleData:[VehicleAttribute]
public var integratedProducts:[VehicleIntegratedServiceCareOption] = []
public var ispVehicleCustomerDescriptions:[String]
public var colourCode:String
public var upholsteryCode:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case retailPrice_ExVAT
case otr
case actualPrice
case totalOfferValue
case isHOBackOrderAccountVehicle
case consumptionCombined
case consumptionExtraUrban
case consumptionUrban
case wltpFuelConsumptionCombined
case wltpFuelConsumptionExtraHigh
case wltpFuelConsumptionHigh
case wltpFuelConsumptionLow
case wltpFuelConsumptionMedium
case equipmentCategories
case vehicleEnergyEfficiencyClass
case vehicleData
case integratedProducts
case ispVehicleCustomerDescriptions
case colourCode
case upholsteryCode
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
retailPrice_ExVAT = try container.decodeIfPresent(String.self, forKey: .retailPrice_ExVAT)
otr = try container.decodeIfPresent(String.self, forKey: .otr)
actualPrice = try container.decodeIfPresent(String.self, forKey: .actualPrice)
totalOfferValue = try container.decodeIfPresent(String.self, forKey: .totalOfferValue)
isHOBackOrderAccountVehicle = try container.decodeIfPresent(Bool.self, forKey: .isHOBackOrderAccountVehicle)
consumptionCombined = try container.decodeIfPresent(VehicleConsumption.self, forKey: .consumptionCombined)
consumptionExtraUrban = try container.decodeIfPresent(VehicleConsumption.self, forKey: .consumptionExtraUrban)
consumptionUrban = try container.decodeIfPresent(VehicleConsumption.self, forKey: .consumptionUrban)
wltpFuelConsumptionCombined = try container.decodeIfPresent(VehicleConsumption.self, forKey: .wltpFuelConsumptionCombined)
wltpFuelConsumptionExtraHigh = try container.decodeIfPresent(VehicleConsumption.self, forKey: .wltpFuelConsumptionExtraHigh)
wltpFuelConsumptionHigh = try container.decodeIfPresent(VehicleConsumption.self, forKey: .wltpFuelConsumptionHigh)
wltpFuelConsumptionLow = try container.decodeIfPresent(VehicleConsumption.self, forKey: .wltpFuelConsumptionLow)
wltpFuelConsumptionMedium = try container.decodeIfPresent(VehicleConsumption.self, forKey: .wltpFuelConsumptionMedium)
equipmentCategories = try container.decodeIfPresent([VehicleEquipmentCategory].self, forKey: .equipmentCategories) ?? []
vehicleEnergyEfficiencyClass = try container.decodeIfPresent(VehicleEmissionClass.self, forKey: .vehicleEnergyEfficiencyClass)
vehicleData = try container.decodeIfPresent([VehicleAttribute].self, forKey: .vehicleData) ?? []
integratedProducts = try container.decodeIfPresent([VehicleIntegratedServiceCareOption].self, forKey: .integratedProducts) ?? []
ispVehicleCustomerDescriptions = try container.decodeIfPresent([String].self, forKey: .ispVehicleCustomerDescriptions) ?? []
colourCode = try container.decodeIfPresent(String.self, forKey: .colourCode)
upholsteryCode = try container.decodeIfPresent(String.self, forKey: .upholsteryCode)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if retailPrice_ExVAT != nil { try container.encode(retailPrice_ExVAT, forKey: .retailPrice_ExVAT) }
if otr != nil { try container.encode(otr, forKey: .otr) }
if actualPrice != nil { try container.encode(actualPrice, forKey: .actualPrice) }
if totalOfferValue != nil { try container.encode(totalOfferValue, forKey: .totalOfferValue) }
if isHOBackOrderAccountVehicle != nil { try container.encode(isHOBackOrderAccountVehicle, forKey: .isHOBackOrderAccountVehicle) }
if consumptionCombined != nil { try container.encode(consumptionCombined, forKey: .consumptionCombined) }
if consumptionExtraUrban != nil { try container.encode(consumptionExtraUrban, forKey: .consumptionExtraUrban) }
if consumptionUrban != nil { try container.encode(consumptionUrban, forKey: .consumptionUrban) }
if wltpFuelConsumptionCombined != nil { try container.encode(wltpFuelConsumptionCombined, forKey: .wltpFuelConsumptionCombined) }
if wltpFuelConsumptionExtraHigh != nil { try container.encode(wltpFuelConsumptionExtraHigh, forKey: .wltpFuelConsumptionExtraHigh) }
if wltpFuelConsumptionHigh != nil { try container.encode(wltpFuelConsumptionHigh, forKey: .wltpFuelConsumptionHigh) }
if wltpFuelConsumptionLow != nil { try container.encode(wltpFuelConsumptionLow, forKey: .wltpFuelConsumptionLow) }
if wltpFuelConsumptionMedium != nil { try container.encode(wltpFuelConsumptionMedium, forKey: .wltpFuelConsumptionMedium) }
if equipmentCategories != nil { try container.encode(equipmentCategories, forKey: .equipmentCategories) }
if vehicleEnergyEfficiencyClass != nil { try container.encode(vehicleEnergyEfficiencyClass, forKey: .vehicleEnergyEfficiencyClass) }
if vehicleData != nil { try container.encode(vehicleData, forKey: .vehicleData) }
if integratedProducts.count > 0 { try container.encode(integratedProducts, forKey: .integratedProducts) }
if ispVehicleCustomerDescriptions != nil { try container.encode(ispVehicleCustomerDescriptions, forKey: .ispVehicleCustomerDescriptions) }
if colourCode != nil { try container.encode(colourCode, forKey: .colourCode) }
if upholsteryCode != nil { try container.encode(upholsteryCode, forKey: .upholsteryCode) }
}
}
public class VehicleBaseDetail : Vehicle, ICommissionNumber
{
public var Description:String
public var commissionNumber:String
public var portArrivalDate:String
public var offerExpiryDate:String
public var fuel:String
public var transmission:String
public var transmissionType:String
public var colour:String
public var colourDescription:String
public var imageUrl:String
public var specialist:Bool
public var vehicleCriteriaMatch:VehicleCriteriaMatch
public var colourGroup:String
public var model:String
public var bodyStyle:String
public var brand:String
public var engine:String
public var engineDescription:String
public var line:String
public var upholstery:String
public var upholsteryDescription:String
public var packages:[String] = []
public var p11D:Double
public var prices:[Price] = []
public var vehicleClass:String
public var productRange:String
public var vehicleType:String
public var emission:Double?
public var baumuster:String
public var isSellable:Bool
public var bm7NST:String
public var electricRange:Double?
public var electricConsumption:Double?
public var isDisplayStock:Bool
public var displayRetailer_Id:Int?
public var displayRetailer:String
public var displayRetailerGssnId:String
public var retailer:Retailer
public var age:Int?
public var modelYearCode:String
public var halfModelYearCode:String
public var fullModelYearCode:String
public var productionDate:String
public var chassisNumber:String
public var eligibleForIntegratedServiceCare:Bool
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case Description
case commissionNumber
case portArrivalDate
case offerExpiryDate
case fuel
case transmission
case transmissionType
case colour
case colourDescription
case imageUrl
case specialist
case vehicleCriteriaMatch
case colourGroup
case model
case bodyStyle
case brand
case engine
case engineDescription
case line
case upholstery
case upholsteryDescription
case packages
case p11D
case prices
case vehicleClass
case productRange
case vehicleType
case emission
case baumuster
case isSellable
case bm7NST
case electricRange
case electricConsumption
case isDisplayStock
case displayRetailer_Id
case displayRetailer
case displayRetailerGssnId
case retailer
case age
case modelYearCode
case halfModelYearCode
case fullModelYearCode
case productionDate
case chassisNumber
case eligibleForIntegratedServiceCare
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
Description = try container.decodeIfPresent(String.self, forKey: .Description)
commissionNumber = try container.decodeIfPresent(String.self, forKey: .commissionNumber)
portArrivalDate = try container.decodeIfPresent(String.self, forKey: .portArrivalDate)
offerExpiryDate = try container.decodeIfPresent(String.self, forKey: .offerExpiryDate)
fuel = try container.decodeIfPresent(String.self, forKey: .fuel)
transmission = try container.decodeIfPresent(String.self, forKey: .transmission)
transmissionType = try container.decodeIfPresent(String.self, forKey: .transmissionType)
colour = try container.decodeIfPresent(String.self, forKey: .colour)
colourDescription = try container.decodeIfPresent(String.self, forKey: .colourDescription)
imageUrl = try container.decodeIfPresent(String.self, forKey: .imageUrl)
specialist = try container.decodeIfPresent(Bool.self, forKey: .specialist)
vehicleCriteriaMatch = try container.decodeIfPresent(VehicleCriteriaMatch.self, forKey: .vehicleCriteriaMatch)
colourGroup = try container.decodeIfPresent(String.self, forKey: .colourGroup)
model = try container.decodeIfPresent(String.self, forKey: .model)
bodyStyle = try container.decodeIfPresent(String.self, forKey: .bodyStyle)
brand = try container.decodeIfPresent(String.self, forKey: .brand)
engine = try container.decodeIfPresent(String.self, forKey: .engine)
engineDescription = try container.decodeIfPresent(String.self, forKey: .engineDescription)
line = try container.decodeIfPresent(String.self, forKey: .line)
upholstery = try container.decodeIfPresent(String.self, forKey: .upholstery)
upholsteryDescription = try container.decodeIfPresent(String.self, forKey: .upholsteryDescription)
packages = try container.decodeIfPresent([String].self, forKey: .packages) ?? []
p11D = try container.decodeIfPresent(Double.self, forKey: .p11D)
prices = try container.decodeIfPresent([Price].self, forKey: .prices) ?? []
vehicleClass = try container.decodeIfPresent(String.self, forKey: .vehicleClass)
productRange = try container.decodeIfPresent(String.self, forKey: .productRange)
vehicleType = try container.decodeIfPresent(String.self, forKey: .vehicleType)
emission = try container.decodeIfPresent(Double.self, forKey: .emission)
baumuster = try container.decodeIfPresent(String.self, forKey: .baumuster)
isSellable = try container.decodeIfPresent(Bool.self, forKey: .isSellable)
bm7NST = try container.decodeIfPresent(String.self, forKey: .bm7NST)
electricRange = try container.decodeIfPresent(Double.self, forKey: .electricRange)
electricConsumption = try container.decodeIfPresent(Double.self, forKey: .electricConsumption)
isDisplayStock = try container.decodeIfPresent(Bool.self, forKey: .isDisplayStock)
displayRetailer_Id = try container.decodeIfPresent(Int.self, forKey: .displayRetailer_Id)
displayRetailer = try container.decodeIfPresent(String.self, forKey: .displayRetailer)
displayRetailerGssnId = try container.decodeIfPresent(String.self, forKey: .displayRetailerGssnId)
retailer = try container.decodeIfPresent(Retailer.self, forKey: .retailer)
age = try container.decodeIfPresent(Int.self, forKey: .age)
modelYearCode = try container.decodeIfPresent(String.self, forKey: .modelYearCode)
halfModelYearCode = try container.decodeIfPresent(String.self, forKey: .halfModelYearCode)
fullModelYearCode = try container.decodeIfPresent(String.self, forKey: .fullModelYearCode)
productionDate = try container.decodeIfPresent(String.self, forKey: .productionDate)
chassisNumber = try container.decodeIfPresent(String.self, forKey: .chassisNumber)
eligibleForIntegratedServiceCare = try container.decodeIfPresent(Bool.self, forKey: .eligibleForIntegratedServiceCare)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if Description != nil { try container.encode(Description, forKey: .Description) }
if commissionNumber != nil { try container.encode(commissionNumber, forKey: .commissionNumber) }
if portArrivalDate != nil { try container.encode(portArrivalDate, forKey: .portArrivalDate) }
if offerExpiryDate != nil { try container.encode(offerExpiryDate, forKey: .offerExpiryDate) }
if fuel != nil { try container.encode(fuel, forKey: .fuel) }
if transmission != nil { try container.encode(transmission, forKey: .transmission) }
if transmissionType != nil { try container.encode(transmissionType, forKey: .transmissionType) }
if colour != nil { try container.encode(colour, forKey: .colour) }
if colourDescription != nil { try container.encode(colourDescription, forKey: .colourDescription) }
if imageUrl != nil { try container.encode(imageUrl, forKey: .imageUrl) }
if specialist != nil { try container.encode(specialist, forKey: .specialist) }
if vehicleCriteriaMatch != nil { try container.encode(vehicleCriteriaMatch, forKey: .vehicleCriteriaMatch) }
if colourGroup != nil { try container.encode(colourGroup, forKey: .colourGroup) }
if model != nil { try container.encode(model, forKey: .model) }
if bodyStyle != nil { try container.encode(bodyStyle, forKey: .bodyStyle) }
if brand != nil { try container.encode(brand, forKey: .brand) }
if engine != nil { try container.encode(engine, forKey: .engine) }
if engineDescription != nil { try container.encode(engineDescription, forKey: .engineDescription) }
if line != nil { try container.encode(line, forKey: .line) }
if upholstery != nil { try container.encode(upholstery, forKey: .upholstery) }
if upholsteryDescription != nil { try container.encode(upholsteryDescription, forKey: .upholsteryDescription) }
if packages.count > 0 { try container.encode(packages, forKey: .packages) }
if p11D != nil { try container.encode(p11D, forKey: .p11D) }
if prices.count > 0 { try container.encode(prices, forKey: .prices) }
if vehicleClass != nil { try container.encode(vehicleClass, forKey: .vehicleClass) }
if productRange != nil { try container.encode(productRange, forKey: .productRange) }
if vehicleType != nil { try container.encode(vehicleType, forKey: .vehicleType) }
if emission != nil { try container.encode(emission, forKey: .emission) }
if baumuster != nil { try container.encode(baumuster, forKey: .baumuster) }
if isSellable != nil { try container.encode(isSellable, forKey: .isSellable) }
if bm7NST != nil { try container.encode(bm7NST, forKey: .bm7NST) }
if electricRange != nil { try container.encode(electricRange, forKey: .electricRange) }
if electricConsumption != nil { try container.encode(electricConsumption, forKey: .electricConsumption) }
if isDisplayStock != nil { try container.encode(isDisplayStock, forKey: .isDisplayStock) }
if displayRetailer_Id != nil { try container.encode(displayRetailer_Id, forKey: .displayRetailer_Id) }
if displayRetailer != nil { try container.encode(displayRetailer, forKey: .displayRetailer) }
if displayRetailerGssnId != nil { try container.encode(displayRetailerGssnId, forKey: .displayRetailerGssnId) }
if retailer != nil { try container.encode(retailer, forKey: .retailer) }
if age != nil { try container.encode(age, forKey: .age) }
if modelYearCode != nil { try container.encode(modelYearCode, forKey: .modelYearCode) }
if halfModelYearCode != nil { try container.encode(halfModelYearCode, forKey: .halfModelYearCode) }
if fullModelYearCode != nil { try container.encode(fullModelYearCode, forKey: .fullModelYearCode) }
if productionDate != nil { try container.encode(productionDate, forKey: .productionDate) }
if chassisNumber != nil { try container.encode(chassisNumber, forKey: .chassisNumber) }
if eligibleForIntegratedServiceCare != nil { try container.encode(eligibleForIntegratedServiceCare, forKey: .eligibleForIntegratedServiceCare) }
}
}
public class Vehicle : Codable
{
public var vin:String
required public init(){}
}
public class VehicleCriteriaMatch : Codable
{
public var fuel:Bool
public var transmission:Bool
public var colour:Bool
public var upholstery:Bool
public var line:Bool
public var engine:Bool
public var bodyStyle:Bool
public var packages:Bool
required public init(){}
}
public class Price : Codable
{
public var id:String
public var Description:String
public var net:Double
public var vat:Double
public var gross:Double
public var product:OfferPriceProductType
required public init(){}
}
public enum OfferPriceProductType : String, Codable
{
case LIST_PRICE
case NUMBER_PLATE_FEE
case DELIVERY_CHARGE
case FUEL_CHARGE
case MANUFACTURER_OFFER
case PERSONALISED_MONEYOFFER
case PERSONALISED_NONMONEYOFFER
case PERSONALISED_NONMONEYOFFER_NEG
case SERVICE
case SERVICE_NEG
case GOVERNMENT_GRANT
case OUTRIGHT_PURCHASE_DISCOUNT
case VIP_OFFER
case WALLBOX_OFFER
case WALLBOX_OFFER_NEG
case ROAD_FUND_LICENCE
case FIRST_REGISTRATION_FEE
case NOT_FOUND
case ACCESSORY_OFFER
case ACCESSORY_OFFER_NEG
case MOTABILITY_DISCOUNT
}
public class VehicleConsumption : Codable
{
public var id:Int
public var lkm:Double
public var mpg:Double
required public init(){}
}
public class VehicleEquipmentCategory : Codable
{
public var order:Int
public var code:String
public var Description:String
public var equipment:[Equipmentv2]
required public init(){}
}
public class Equipmentv2 : Equipment
{
public var importance:Int
public var isAdditional:Bool
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case importance
case isAdditional
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
importance = try container.decodeIfPresent(Int.self, forKey: .importance)
isAdditional = try container.decodeIfPresent(Bool.self, forKey: .isAdditional)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if importance != nil { try container.encode(importance, forKey: .importance) }
if isAdditional != nil { try container.encode(isAdditional, forKey: .isAdditional) }
}
}
public class Equipment : Codable
{
public var id:Int
public var code:String
public var Description:String
required public init(){}
}
public class VehicleEmissionClass : Codable
{
public var colour:String
public var rating:String
required public init(){}
}
public class VehicleAttribute : Codable
{
public var Description:String
public var value:String
required public init(){}
}
public class VehicleIntegratedServiceCareOption : Codable
{
public var optionCode:String
public var bM7NST:String
public var fullModelYear:String
public var integratedProductType:String
public var customerDescription:String
public var oneAgentProductType:String
required public init(){}
}
Swift FilterActiveBackOrdersRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/backorder/active HTTP/1.1
Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
Historical: False,
BackOrderCriteria:
{
Source:
[
0
],
CustomerType:
[
0
],
CommLinkedBy:
[
0
],
VinAllocated: False,
VinAllocatedSellable: False,
VinAllocatedNotSellable: False,
Specialist: False,
LinkedOrder: False,
AssistanceProviders:
[
0
],
COPConverter: False
},
VehicleCriteria:
{
Model:
[
{
Description: String,
Id: 0
}
],
Colour:
[
String
],
FuelType:
[
String
],
Transmission:
[
String
],
Engine:
[
String
],
Line:
[
String
],
Package:
[
String
],
Equipment:
[
String
],
Upholstery:
[
String
]
},
DateCriteria:
{
Created:
{
Date: 0001-01-01,
Range:
{
Min: 0,
Max: 0
}
},
Modified:
{
Date: 0001-01-01,
Range:
{
Min: 0,
Max: 0
}
}
},
GssnIds:
[
String
]
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { BackOrders: [ { Vehicle: { RetailPrice_ExVAT: String, OTR: String, ActualPrice: String, TotalOfferValue: String, IsHOBackOrderAccountVehicle: False, ConsumptionCombined: { Id: 0, Lkm: 0, Mpg: 0 }, ConsumptionExtraUrban: { Id: 0, Lkm: 0, Mpg: 0 }, ConsumptionUrban: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionCombined: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionExtraHigh: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionHigh: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionLow: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionMedium: { Id: 0, Lkm: 0, Mpg: 0 }, EquipmentCategories: [ { Order: 0, Code: String, Description: String, Equipment: [ { Importance: 0, IsAdditional: False, Id: 0, Code: String, Description: String } ] } ], VehicleEnergyEfficiencyClass: { Colour: String, Rating: String }, VehicleData: [ { Description: String, Value: String } ], IntegratedProducts: [ { OptionCode: String, BM7NST: String, FullModelYear: String, IntegratedProductType: String, CustomerDescription: String, OneAgentProductType: String } ], IspVehicleCustomerDescriptions: [ String ], ColourCode: String, UpholsteryCode: String, Description: String, CommissionNumber: String, PortArrivalDate: String, OfferExpiryDate: String, Fuel: String, Transmission: String, TransmissionType: String, Colour: String, ColourDescription: String, ImageUrl: String, Specialist: False, VehicleCriteriaMatch: { Fuel: False, Transmission: False, Colour: False, Upholstery: False, Line: False, Engine: False, BodyStyle: False, Packages: False }, ColourGroup: String, Model: String, BodyStyle: String, Brand: String, Engine: String, EngineDescription: String, Line: String, Upholstery: String, UpholsteryDescription: String, Packages: [ String ], P11D: 0, Prices: [ { Id: String, Description: String, Net: 0, VAT: 0, Gross: 0, Product: LIST_PRICE } ], VehicleClass: String, ProductRange: String, VehicleType: String, Emission: 0, Baumuster: String, IsSellable: False, Bm7NST: String, ElectricRange: 0, ElectricConsumption: 0, IsDisplayStock: False, DisplayRetailer_Id: 0, DisplayRetailer: String, DisplayRetailerGssnId: String, Retailer: { Id: 0, GssnId: String, Description: String, Street: String, City: String, Postcode: String, GoogleMapPostcode: String, Phone: String, Fax: String, Email: String, Website: String, RetailerGroupId: String, RetailerGroupName: String, IsOnline: False, IsNewCarRetailer: False, IsUsedCarRetailer: False, IsCentralRetailer: False, ChatEnabled: False, TradeInEnabled: False, smart: False, DisplayPhoneNumberNew: String, DisplayPhoneNumberUsed: String, Latitude: 0, Longitude: 0, smartDescription: String, smartWebsite: String, smartPhone: String, LegacyId: String, Agent: False, MarketAreaId: 0, DigitalLoungeParentGssnId: String, SendLeadsToDigitalLoungeParent: False, OpeningTimes: { New: [ { Day: String, OpenFrom: String, OpenTo: String, Special: String } ], Used: [ { Day: String, OpenFrom: String, OpenTo: String, Special: String } ] } }, Age: 0, ModelYearCode: String, HalfModelYearCode: String, FullModelYearCode: String, ProductionDate: String, ChassisNumber: String, EligibleForIntegratedServiceCare: False, Vin: String }, Guid: String, Status: 0, CustomerId: String, Id: 0, Reference: String, Agent: String, Gssn: String, CreationDate: 0001-01-01, MaintenanceDate: 0001-01-01, CustomerCriteria: String, AgentCriteria: String, History: [ { Status: 0, CommissionNumber: String, VIN: String, CustomerCriteria: String, AgentCriteria: String, CreationDate: 0001-01-01, MaintenanceDate: 0001-01-01, GasId: String, Sellable: False, AdditionalInformation: String, Reason: String, ConfigCode: String, FleetBaseOrder: String, AssistanceDetail: String, AssistanceProvider: String, LinkedByUserType: String, MotabilityVTN: String, MotabilityBackOrderDropDown: String, MotabilityValidFrom: 0001-01-01, MotabilityValidTo: 0001-01-01 } ], IsAllocatedToOrder: False, Vin: String, CommissionNumber: String, Order: { Guid: 00000000000000000000000000000000, Reference: String, Status: 0, CustomerId: String, MulesoftReference: String, GasId: String, OrderDate: String, OfferSnapShot: String }, Source: String, Specialist: False, OutrightPurchase: False, Sellable: False, MulesoftReference: String, AdditionalInformation: String, ConfigCode: String, FleetBaseOrder: String, GasId: String, OutrightPurchaseCustomerIdentifier: String, Retailer: { Id: 0, GssnId: String, Description: String, Street: String, City: String, Postcode: String, GoogleMapPostcode: String, Phone: String, Fax: String, Email: String, Website: String, RetailerGroupId: String, RetailerGroupName: String, IsOnline: False, IsNewCarRetailer: False, IsUsedCarRetailer: False, IsCentralRetailer: False, ChatEnabled: False, TradeInEnabled: False, smart: False, DisplayPhoneNumberNew: String, DisplayPhoneNumberUsed: String, Latitude: 0, Longitude: 0, smartDescription: String, smartWebsite: String, smartPhone: String, LegacyId: String, Agent: False, MarketAreaId: 0, DigitalLoungeParentGssnId: String, SendLeadsToDigitalLoungeParent: False, OpeningTimes: { New: [ { Day: String, OpenFrom: String, OpenTo: String, Special: String } ], Used: [ { Day: String, OpenFrom: String, OpenTo: String, Special: String } ] } }, CustomerMode: 0, CanEdit: False, DigitalLoungeGssnId: String, DigitalLounge: String, Motability: False, MotabilityPricing: { MotabilityPricingStatus: Pending, Id: 0, CriteriaBM7NST: String, VTN: String, BackOrderDropDown: String, CriteriaFullModelYearCode: String, CriteriaValidOptionCodes: String, CriteriaInvalidOptionCodes: String, PIPNet: 0, PIPVat: 0, PIPGross: 0, WPMSNet: 0, WPMSVat: 0, WPMSGross: 0, DiscountNet: 0, DiscountVat: 0, DiscountGross: 0, ListPriceNet: 0, ListPriceVat: 0, ListPriceGross: 0, DeliveryChargeNet: 0, DeliveryChargeVat: 0, DeliveryChargeGross: 0, FuelChargeNet: 0, FuelChargeVat: 0, FuelChargeGross: 0, NumberPlateFeeNet: 0, NumberPlateFeeVat: 0, NumberPlateFeeGross: 0, FirstRegistrationFeeNet: 0, FirstRegistrationFeeVat: 0, FirstRegistrationFeeGross: 0, RoadFundLicenceNet: 0, RoadFundLicenceVat: 0, RoadFundLicenceGross: 0, ValidFrom: 0001-01-01, ValidTo: 0001-01-01 }, LinkedByUserType: String, AssistanceProviderId: 0, AssistanceProvider: String, AssistanceDetail: String, LastAssistanceMessageDate: 0001-01-01, LastAssistanceUser: String, IsCOPConverter: False, IsEligibleCOPConverter: False, CarConfigurator: { Id: 0, BackOrderId: 0, ConfiguratorCode: String, GasId: String, Status: 0, DateOfLastUpdate: 0001-01-01, LastExceptionMessage: String, LastException: String }, CarConfiguratorResponse: { Name: String, KeyInformation: { BM7NST: String, ConfigurationDate: String, ModelYear: String, HalfYear: String }, OrderingOptions: { Interior: [ String ], Exterior: [ String ], Other: [ String ] }, ResponseStatus: { ErrorCode: String, Message: String, StackTrace: String, Errors: [ { ErrorCode: String, FieldName: String, Message: String, Meta: { String: String } } ], Meta: { String: String } }, ConfiguratorCode: String } } ], FilteredGssn: String, FilteredRetailer: String }