/* Options: Date: 2026-10-08 22:17:25 SwiftVersion: 5.0 Version: 6.21 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://cert.cendyn.com/CenResServiceR2Test //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: TransactionRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/v2/transaction/{Query}", "GET") // @Route("/v2/transaction/{Query}/{CendynPropertyId}", "GET") public class TransactionRequest : IReturn, Codable { public typealias Return = TransactionResponse public var cendynPropertyId:String? public var transactionSource:String? public var query:TransactionQueryType? public var id:String? public var startDate:Date? public var endDate:Date? // @DataMember(Name="Limit") public var pageSize:Int? // @DataMember(Name="Page") public var pageNumber:Int? required public init(){} } public class TransactionResponse : CenResResponse { public var records:[Transaction] = [] required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case records } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) records = try container.decodeIfPresent([Transaction].self, forKey: .records) ?? [] } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if records.count > 0 { try container.encode(records, forKey: .records) } } } public enum TransactionQueryType : String, Codable { case TransactionId case LastUpdated case TransactionDate } public enum RequestStatus : String, Codable { case Success case Warning case Error case NotAuthorized case Failure } public class CenResResponse : Codable { public var status:RequestStatus? public var statusMessage:String? public var recordsReturned:Int? public var recordsAvailable:Int? public var pageNumber:Int? public var pageSize:Int? required public init(){} } public class Transaction : Codable { public var cendynPropertyID:String? public var sourcePropertyID:String? public var externalResID1:String? public var externalProfileID:String? public var externalRefType:String? public var externalRefID:String? public var transactionSource:String? public var transactionID:String? public var transactionGroup:String? public var transactionDate:Date? public var folioID:String? public var folioGroupingID:String? public var transactionCode:String? public var Description:String? public var creditAmount:Double? public var debitAmount:Double? public var netAmount:Double? public var displayOnInvoice:Bool? public var ledgerAccountNum:String? public var ccTransactionType:String? public var roomNumber:String? public var transferType:String? public var transferredResID:String? public var referenceNum:String? public var postedNights:Int? public var itemQty:Int? public var userID:String? public var currencyCode:String? public var decimals:Int? public var customValue1:Double? public var customValue2:Double? required public init(){} }