/* Options: Date: 2025-05-10 02:38:16 SwiftVersion: 5.0 Version: 8.40 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://active-ewebservice.biz/aeservices30/api //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: GetCustomerHistoryRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack /** * GetCustomerHistoryRequires active-e Customer Service. */ // @Route("/GetCustomerHistory", "POST, GET") // @DataContract public class GetCustomerHistoryRequest : BaseSecureRequest, IReturn { public typealias Return = GetCustomerHistoryResponse // @DataMember public var getInvoices:Bool? // @DataMember public var getTickets:Bool? // @DataMember public var getProposals:Bool? // @DataMember public var getContracts:Bool? // @DataMember public var getOrders:Bool? // @DataMember public var getShortTermRentals:Bool? // @DataMember public var getWebPayments:Bool? // @DataMember public var showClosed:Bool? // @DataMember public var getPaymentsDue:Bool? // @DataMember public var dateFrom:String // @DataMember public var dateTo:String // @DataMember public var acct:Int? // @DataMember public var getMemberships:Bool? // @DataMember public var getPendingWebOrders:Bool? // @DataMember public var getFutureTeeTimes:Bool? // @DataMember public var getStationReservations:Bool? // @DataMember public var getPendingWebRentals:Bool? // @DataMember public var getValuePacks:Bool? // @DataMember public var includeUninvoicedScheduling:Bool? // @DataMember public var includeOnHold:Bool? // @DataMember public var getConsignments:Bool? // @DataMember public var getRecurringHeaderInfo:Bool? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case getInvoices case getTickets case getProposals case getContracts case getOrders case getShortTermRentals case getWebPayments case showClosed case getPaymentsDue case dateFrom case dateTo case acct case getMemberships case getPendingWebOrders case getFutureTeeTimes case getStationReservations case getPendingWebRentals case getValuePacks case includeUninvoicedScheduling case includeOnHold case getConsignments case getRecurringHeaderInfo } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) getInvoices = try container.decodeIfPresent(Bool.self, forKey: .getInvoices) getTickets = try container.decodeIfPresent(Bool.self, forKey: .getTickets) getProposals = try container.decodeIfPresent(Bool.self, forKey: .getProposals) getContracts = try container.decodeIfPresent(Bool.self, forKey: .getContracts) getOrders = try container.decodeIfPresent(Bool.self, forKey: .getOrders) getShortTermRentals = try container.decodeIfPresent(Bool.self, forKey: .getShortTermRentals) getWebPayments = try container.decodeIfPresent(Bool.self, forKey: .getWebPayments) showClosed = try container.decodeIfPresent(Bool.self, forKey: .showClosed) getPaymentsDue = try container.decodeIfPresent(Bool.self, forKey: .getPaymentsDue) dateFrom = try container.decodeIfPresent(String.self, forKey: .dateFrom) dateTo = try container.decodeIfPresent(String.self, forKey: .dateTo) acct = try container.decodeIfPresent(Int.self, forKey: .acct) getMemberships = try container.decodeIfPresent(Bool.self, forKey: .getMemberships) getPendingWebOrders = try container.decodeIfPresent(Bool.self, forKey: .getPendingWebOrders) getFutureTeeTimes = try container.decodeIfPresent(Bool.self, forKey: .getFutureTeeTimes) getStationReservations = try container.decodeIfPresent(Bool.self, forKey: .getStationReservations) getPendingWebRentals = try container.decodeIfPresent(Bool.self, forKey: .getPendingWebRentals) getValuePacks = try container.decodeIfPresent(Bool.self, forKey: .getValuePacks) includeUninvoicedScheduling = try container.decodeIfPresent(Bool.self, forKey: .includeUninvoicedScheduling) includeOnHold = try container.decodeIfPresent(Bool.self, forKey: .includeOnHold) getConsignments = try container.decodeIfPresent(Bool.self, forKey: .getConsignments) getRecurringHeaderInfo = try container.decodeIfPresent(Bool.self, forKey: .getRecurringHeaderInfo) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if getInvoices != nil { try container.encode(getInvoices, forKey: .getInvoices) } if getTickets != nil { try container.encode(getTickets, forKey: .getTickets) } if getProposals != nil { try container.encode(getProposals, forKey: .getProposals) } if getContracts != nil { try container.encode(getContracts, forKey: .getContracts) } if getOrders != nil { try container.encode(getOrders, forKey: .getOrders) } if getShortTermRentals != nil { try container.encode(getShortTermRentals, forKey: .getShortTermRentals) } if getWebPayments != nil { try container.encode(getWebPayments, forKey: .getWebPayments) } if showClosed != nil { try container.encode(showClosed, forKey: .showClosed) } if getPaymentsDue != nil { try container.encode(getPaymentsDue, forKey: .getPaymentsDue) } if dateFrom != nil { try container.encode(dateFrom, forKey: .dateFrom) } if dateTo != nil { try container.encode(dateTo, forKey: .dateTo) } if acct != nil { try container.encode(acct, forKey: .acct) } if getMemberships != nil { try container.encode(getMemberships, forKey: .getMemberships) } if getPendingWebOrders != nil { try container.encode(getPendingWebOrders, forKey: .getPendingWebOrders) } if getFutureTeeTimes != nil { try container.encode(getFutureTeeTimes, forKey: .getFutureTeeTimes) } if getStationReservations != nil { try container.encode(getStationReservations, forKey: .getStationReservations) } if getPendingWebRentals != nil { try container.encode(getPendingWebRentals, forKey: .getPendingWebRentals) } if getValuePacks != nil { try container.encode(getValuePacks, forKey: .getValuePacks) } if includeUninvoicedScheduling != nil { try container.encode(includeUninvoicedScheduling, forKey: .includeUninvoicedScheduling) } if includeOnHold != nil { try container.encode(includeOnHold, forKey: .includeOnHold) } if getConsignments != nil { try container.encode(getConsignments, forKey: .getConsignments) } if getRecurringHeaderInfo != nil { try container.encode(getRecurringHeaderInfo, forKey: .getRecurringHeaderInfo) } } } // @DataContract public class GetCustomerHistoryResponse : BaseResponse { // @DataMember public var customerHistory:[CustomerHistoryGeneric] = [] required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case customerHistory } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) customerHistory = try container.decodeIfPresent([CustomerHistoryGeneric].self, forKey: .customerHistory) ?? [] } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if customerHistory.count > 0 { try container.encode(customerHistory, forKey: .customerHistory) } } } // @DataContract public class BaseRequest : Codable { /** * This is your AIM API Key provided by Tri-Tech */ // @DataMember // @ApiMember(DataType="string", Description="This is your AIM API Key provided by Tri-Tech", IsRequired=true, Name="ApiKey", ParameterType="header") public var apiKey:String // @DataMember // @ApiMember(DataType="string", Name="OAuthToken", ParameterType="header") public var oAuthToken:String required public init(){} } // @DataContract public class BaseSecureRequest : BaseRequest { /** * */ // @DataMember // @ApiMember(DataType="string", Description="", Name="Token", ParameterType="Header") public var token:String /** * */ // @DataMember // @ApiMember(DataType="string", Description="", Name="DeviceId", ParameterType="Header") public var deviceId:String /** * */ // @DataMember // @ApiMember(DataType="string", Description="", IsRequired=true, Name="AppId", ParameterType="Header") public var appId:String required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case token case deviceId case appId } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) token = try container.decodeIfPresent(String.self, forKey: .token) deviceId = try container.decodeIfPresent(String.self, forKey: .deviceId) appId = try container.decodeIfPresent(String.self, forKey: .appId) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if token != nil { try container.encode(token, forKey: .token) } if deviceId != nil { try container.encode(deviceId, forKey: .deviceId) } if appId != nil { try container.encode(appId, forKey: .appId) } } } // @DataContract public class CustomerHistoryGeneric : Codable { // @DataMember public var date:Date // @DataMember public var dateStr:String // @DataMember public var ref:String // @DataMember public var desc:String // @DataMember public var amount:Double // @DataMember public var origAmount:Double // @DataMember public var late:Bool // @DataMember public var refType:String // @DataMember public var po:String // @DataMember public var estReceivedDate:Date? required public init(){} } // @DataContract public class BaseResponse : Codable { /** * */ // @DataMember // @ApiMember(DataType="BaseResponseResult", Description="", Name="Status", ParameterType="body") public var status:BaseResponseResult required public init(){} }