/* Options: Date: 2025-06-26 02:32:16 SwiftVersion: 5.0 Version: 6.00 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: http://webservices.mbukdatabase.co.uk/MBOnlineCreditApplicationService //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: CreateOCARequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/CreateOCA/", "PUT") // @DataContract public class CreateOCARequest : IReturn, Codable { public typealias Return = CreateOCARequestResponse // @DataMember public var username:String? // @DataMember public var timestamp:String? // @DataMember public var token:String? // @DataMember public var generalDetails:GeneralDetails? // @DataMember public var financeDetails:FinanceDetails? // @DataMember public var vehicleDetails:VehicleDetails? // @DataMember public var deliveryDetails:DeliveryDetails? // @DataMember public var existingVehicleDetails:ExistingVehicleDetails? // @DataMember public var creditApplicationIndividual:CreditApplicationIndividual? // @DataMember public var creditApplicationBusiness:CreditApplicationBusiness? // @DataMember public var paymentDetails:PaymentDetails? // @DataMember public var diPDetails:DiPDetails? required public init(){} } // @DataContract public class CreateOCARequestResponse : Codable { // @DataMember public var code:String? // @DataMember public var message:String? // @DataMember public var urn:Int? required public init(){} } public class GeneralDetails : Codable { public var ocaApprovalNumber:String? public var enquiryDateTime:String? public var brand:Int? public var customerReferenceNumber:String? public var customerType:String? public var sourceofBusiness:String? public var tagURL:String? public var requestSource:Int? public var formID:String? required public init(){} } public class FinanceDetails : Codable { public var financialProduct:String? public var duration:Int? public var paymentRentalAmount:Double? public var annualMileage:Int? public var excessMileageRate:Double? public var customerDepositContribution:Double? public var retailerDepositContribution:Double? public var manufacturerDepositContribution:Double? public var totalDepositContribution:Double? public var costForCredit:Double? public var purchaseActivationFee:Double? public var totalAmountPayable:Double? public var fixedInterestRate:Double? public var representativeAPR:Double? public var optionalPurchasePayment:Double? public var advancedRentalAmount:Double? public var paymentProfile:String? public var randMIncluded:String? public var randMLevel:String? public var productType:String? public var frequency:String? public var pauseType:String? required public init(){} } public class VehicleDetails : Codable { public var onlineCode:String? public var modelClass:String? public var modelBody:String? public var modelDerivative:String? public var totalPrice:Double? public var otrPrice:Double? public var vin:String? public var regNo:String? public var currentMileage:Int? public var firstRegistrationDate:String? public var newUsedFlag:String? public var newVehicleModelOptionDetails:[ModelOptionDetails] = [] required public init(){} } public class DeliveryDetails : Codable { public var dealerCode:String? public var deliveryPreference:String? required public init(){} } public class ExistingVehicleDetails : Codable { public var tradeInFlag:String? public var tradeInValue:Double? public var tradeInRegNo:String? public var settlementFlag:String? public var settlementValue:Double? public var settlementRegNo:String? required public init(){} } public class PaymentDetails : Codable { public var paymentDetails:[PaymentDetail] = [] required public init(){} } public class CreditApplicationIndividual : Codable { public var title:String? public var initial:String? public var firstName:String? public var surname:String? public var dateofBirth:String? public var gender:String? public var maritalStatus:String? public var residentialStatus:String? public var currentAddress:AddressWithTimeLine? public var previousAddresses:[PreviousAddress] = [] public var homePhone:String? public var mobilePhone:String? public var workPhone:String? public var email:String? public var bankSortCode:String? public var bankAccountNumber:String? public var bankAccountName:String? public var bankName:String? public var bankAddress:Address? public var doNotEmail:String? public var doNotMail:String? public var doNotPhone:String? public var doNotSMS:String? public var drivingLicenceNumber:String? public var currentEmploymentDetails:CurrentEmploymentDetails? public var previousEmploymentDetails:[PreviousEmployment] = [] required public init(){} } public class CreditApplicationBusiness : Codable { public var typeOfBusiness:String? public var businessContactPosition:String? public var title:String? public var initial:String? public var firstName:String? public var surname:String? public var currentHomeAddress:AddressWithTimeLine? public var homePhone:String? public var workPhone:String? public var mobilePhone:String? public var email:String? public var doNotEmail:String? public var doNotMail:String? public var doNotPhone:String? public var doNotSMS:String? public var companyName:String? public var companyRegistrationNumber:String? public var tradingAs:String? public var businessActivity:String? public var numberOfEmployees:Int? public var yearsTrading:Int? public var position:String? public var bankSortCode:String? public var bankAccountNumber:String? public var bankAccountName:String? public var bankName:String? public var bankAddress:Address? public var numberofPartners:Int? public var businessPartners:[BusinessPartner] = [] required public init(){} } public class DiPDetails : Codable { public var diPCustomerId:String? public var diPTimestamp:String? public var diPRequestID:String? public var diPDecisionType:String? public var diPPrimaryDecisionCode:String? public var diPDecisionDescription:String? public var dipDecisionDescriptionCode:String? public var dipPrimaryDecisionReason:String? public var diPPrimaryDecisionReasonDealerMessage:String? public var diPReasons:[DiPReasons] = [] required public init(){} } public class AddressWithTimeLine : Codable { public var addressLine1:String? public var addressLine2:String? public var addressLine3:String? public var town:String? public var county:String? public var country:String? public var postcode:String? public var duration:String? public var dateStarted:String? required public init(){} } public class Address : Codable { public var addressLine1:String? public var addressLine2:String? public var addressLine3:String? public var addressLine4:String? public var addressLine5:String? public var postcode:String? required public init(){} } public class CurrentEmploymentDetails : Codable { public var employerDetails:EmployerDetails? public var monthsAtEmployer:String? public var dateEmploymentCommenced:String? public var annualIncome:String? required public init(){} } public class EmployerDetails : Codable { public var employmentType:String? public var employersName:String? public var occupation:String? public var employersAddress:AddressWithTimeLine? required public init(){} }