/* Options: Date: 2026-10-08 22:18:30 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: ResSummaryRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/v2/reservation/summary/{Query}", "GET") // @Route("/v2/reservation/summary/{Query}/{CendynPropertyId}", "GET") public class ResSummaryRequest : IReturn, Codable { public typealias Return = ResSummaryResponse public var cendynPropertyId:String? public var query:ReservationQueryType? public var id:String? public var firstName:String? public var lastName: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 ResSummaryResponse : CenResResponse { public var records:[ReservationSummary] = [] 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([ReservationSummary].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 ReservationQueryType : String, Codable { case ResId case ProfileId case Name case LastUpdated case ArrivalDate case DepartureDate case StayDate case DatePMSResUpdated } public class ReservationSummary : Codable { public var firstName:String? public var lastName:String? public var externalProfileId:String? public var externalProfileId2:String? public var externalResID1:String? public var externalResID2:String? public var cendynPropertyId:String? public var propertyName:String? public var resTypeCode:String? public var resStatusCode:String? public var confirmationNum:String? public var centralResNum:String? public var resArriveDate:Date? public var resDepartDate:Date? public var numRooms:Int? public var roomTypeCode:String? public var roomNumber:String? public var rateCode:String? public var marketSegmentCode:String? public var marketCodeCategory:String? public var marketRegionCode:String? public var companyName:String? public var numAdults:Int? public var numYouths:Int? public var numChildren:Int? public var totalRoomNights:Int? public var cancellationID:String? public var cancellationDate:Date? public var totalOtherRevenue:Double? public var totalRoomRevenue:Double? public var totalTax:Double? public var totalRevenue:Double? public var lastUpdated:Date? required public init(){} } 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(){} }