/* Options: Date: 2025-05-05 18:12:25 SwiftVersion: 6.0 Version: 8.61 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://prod-api-agency-orch-mb-dhc.rapp-customers.co.uk //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: GetVehicleWithOptimalRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/v1/VehicleWithOptimal", "Post") public class GetVehicleWithOptimalRequest : IReturn, Codable { public typealias Return = GetVehicleWithOptimalResponse public var vehicleIdentifier:String? public var includeAllocatedToBackOrder:Bool? public var gssn:String? public var isOneAdmin:Bool? public var motabilityPricingId:Int? required public init(){} } public class GetVehicleWithOptimalResponse : GetVehicleResponse { public var optimumVehicle:VehicleDetailDto? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case optimumVehicle } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) optimumVehicle = try container.decodeIfPresent(VehicleDetailDto.self, forKey: .optimumVehicle) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if optimumVehicle != nil { try container.encode(optimumVehicle, forKey: .optimumVehicle) } } } public class VehicleDetailDto : Codable { public var bodyStyle:String? public var vin:String? public var Description:String? public var colour:String? public var colourCode:String? public var colourDescription:String? public var colourGroup:String? public var model:String? public var commissionNumber:String? public var brandId:Int? public var brand:Brand? public var engine:Engine? public var engineBadge:String? public var media:Media? public var line:String? public var upholsteryCode:String? public var upholsteryType:String? public var upholstery:String? public var upholsteryDescription:String? public var availablePackages:[String] = [] public var packages:[String] = [] public var p11D:Double? public var portArrivalDate:Date? public var prices:[Price] = [] public var transmissionType:String? public var fuelType:String? public var vehicleClass:String? public var productRange:String? public var vehicleType:String? public var emission:Double? public var isAvailableOnline:Bool? public var underOffer:Bool? public var isExcluded:Bool? public var isSellable:Bool? public var onHold:Bool? public var electricConsumption:Double? public var electricRange:Double? public var imageUrl:String? public var baumuster:String? public var retailer:Retailer? public var bm7NST:String? public var otr:Double? public var actualPrice:Double? public var isDisplayStock:Bool? public var displayRetailerId:Int? public var displayRetailer:String? public var displayRetailerGssnId:String? public var displayRetailerMarketAreaId:String? public var isSmartDisplayRetailer:Bool? public var isSpecialistCar:Bool? public var age:Int? public var secured:Bool? public var isHOBackOrderAccountVehicle:Bool? public var isAllocatedToBackOrder:Bool? public var usageCode:String? public var emissionCombined:Double? public var normalisedEmissionDirective:String? public var hasMildHybridEquipmentCode:Bool? public var retailPriceExVat:Double? public var retailPrice_IncVAT:Double? public var retailPrice_ExVAT:Double? public var modelId:Int? public var vid:String? public var productionDate:String? public var fullModelYearCode:String? public var chassisNumber:String? public var eligibleForIntegratedServiceCare:Bool? public var accountType:String? 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 equipment:[Equipmentv2]? public var equipmentCategories:[VehicleEquipmentCategory]? public var energyEfficiencyClass:VehicleEmissionClass? public var vehicleData:[VehicleAttribute]? public var integratedServiceCareOptions:[VehicleIntegratedServiceCareOption] = [] public var ispVehicleCustomerDescriptions:[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 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 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(){} } 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 class Engine : Codable { public var id:Int? public var Description:String? public var brandId:Int? public var brand:String? public var badge:String? required public init(){} } public class Brand : Codable { public var id:Int? public var Description:String? public var displayName:String? public var bodyStyles:[BodyStyle]? required public init(){} } public class Retailer : Codable { public var gssn:String? public var Description:String? public var campaignExcluded:Bool? required public init(){} } public class BodyStyle : Codable { public var id:Int? public var Description:String? public var models:[Model]? required public init(){} } public class Model : Codable { public var id:Int? public var Description:String? public var displayName:String? public var imageUrlSmall:String? public var imageUrlMedium:String? public var imageUrlLarge:String? public var specialist:Bool? public var priority:Int? public var excludeFromOnlineShowroomFilters:Bool? required public init(){} } public class Engine : Codable { public var id:Int? public var badge:String? required public init(){} } public class Media : Codable { public var noImage:Bool? public var mainImageUrl:String? 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 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 Equipment : Codable { public var id:Int? public var code:String? public var Description:String? required public init(){} } public class GetVehicleResponse : Codable { public var vehicle:VehicleDetailDto? public var errors:[VehicleError] = [] required public init(){} }