/* Options: Date: 2025-05-06 14:28:38 SwiftVersion: 5.0 Version: 6.10 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://stubbur-autoupdates-live.smartnewapis.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: GetTicketRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/ticketOrder/get", "GET POST") public class GetTicketRequest : IReturn, Codable { public typealias Return = TicketOrderResult public var phoneVerificationNumber:String? public var deviceId:String? public var ticketTokenId:String? public var requestUnixUTCTimeStamp:Int? public var signature:RequestSignature? required public init(){} } public class TicketOrderResult : Codable { public var ticketAndDetails:EventTicketWithDetails? public var statusCode:Int? public var message:String? required public init(){} } public class RequestSignature : Codable { public var systemId:String? public var systemSecret:String? public var signature:String? required public init(){} } public class Ticket : Codable { public var id:Int? public var userId:Int? public var userAuthId:Int? public var eventId:Int? public var timestampBought:Date? public var timestampActivated:Date? public var timeStampOrdered:Date? public var deviceId:String? public var phoneVerificationId:Int? public var paymentMethodId:String? public var paymentReference:String? public var ticketStatus:String? public var phoneVerificationNumber:String? public var ticketTokenId:String? public var paymentPhoneNumber:String? public var ticketTransferredFrom:Int? public var originalPhoneVerificationNumber:String? public var teamPassId:Int? public var paymentId:String? public var isFree:Bool? public var freeTicketFromId:String? public var freeTicketFromTypeId:String? public var freeTicketCardTypeId:String? public var freeTicketCardId:Int? public var totalPaidForTicket:Double? public var seatsReservationId:String? public var timeStampLastStatusChange:Date? public var lastTicketStatus:String? public var scanCode:String? public var scanCodeType:String? public var scanCodeNotActive:Bool? public var multipleScanCodes:Bool? public var currency:String? public var ticketHasExpired:Bool? required public init(){} } public class TicketDetails : Codable { public var id:Int? public var ticketId:Int? public var eventSeriesTicketType:Int? public var eventSeriesOwnerTicketType:Int? public var ticketPrice:Double? public var totalPrice:Double? public var count:Int? public var ticketColor:String? public var showUsedTickets:Bool? public var ticketName:String? public var ticketDisplayString:String? public var ticketDetailsTransferredFrom:Int? public var teamPassId:Int? public var isSpecialTicket:Bool? public var specialTicketId:String? public var justChangedBySQL:Bool? public var sqlJustChangedTimeStamp:Date? public var currency:String? required public init(){} } public class EventTicketWithDetails : Codable { public var eventTicket:Ticket? public var eventTicketDetails:[TicketDetailsInfo] = [] public var eventInfo:EventDetails? public var eventIsToday:Bool? public var eventisLive:Bool? public var minutesToEvent:Int? required public init(){} } public class TicketHolderInfo : Codable { public var name:String? public var fullPhoneNumber:String? public var holderId:String? public var seatId:Int? public var seatDisplayString:String? required public init(){} } public class TicketDetailsInfo : TicketDetails { public var holderInfoRequired:Bool? public var blockTransfer:Bool? public var ticketTypeImageUrl:String? public var ticketHolders:[TicketHolderInfo] = [] public var gateAccessCodes:[ExternalGateAccessCodeInfo] = [] required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case holderInfoRequired case blockTransfer case ticketTypeImageUrl case ticketHolders case gateAccessCodes } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) holderInfoRequired = try container.decodeIfPresent(Bool.self, forKey: .holderInfoRequired) blockTransfer = try container.decodeIfPresent(Bool.self, forKey: .blockTransfer) ticketTypeImageUrl = try container.decodeIfPresent(String.self, forKey: .ticketTypeImageUrl) ticketHolders = try container.decodeIfPresent([TicketHolderInfo].self, forKey: .ticketHolders) ?? [] gateAccessCodes = try container.decodeIfPresent([ExternalGateAccessCodeInfo].self, forKey: .gateAccessCodes) ?? [] } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if holderInfoRequired != nil { try container.encode(holderInfoRequired, forKey: .holderInfoRequired) } if blockTransfer != nil { try container.encode(blockTransfer, forKey: .blockTransfer) } if ticketTypeImageUrl != nil { try container.encode(ticketTypeImageUrl, forKey: .ticketTypeImageUrl) } if ticketHolders.count > 0 { try container.encode(ticketHolders, forKey: .ticketHolders) } if gateAccessCodes.count > 0 { try container.encode(gateAccessCodes, forKey: .gateAccessCodes) } } } public class ExternalGateAccessCodeInfo : Codable { public var code:String? public var codeType:String? public var codeUrl:String? public var validFrom:Date? public var validTo:Date? required public init(){} } public class EventDetails : Codable { public var id:Int? public var name:String? public var Description:String? public var externalReference:String? public var timeOfEvent:Date? public var eventLocationId:Int? public var eventSeriesId:Int? public var eventOwnerId:Int? public var eventActive:Bool? public var eventOwnerName:String? public var externalOwnerId:String? public var teamAwayId:String? public var teamAwayName:String? public var eventSeriesName:String? public var eventLocationName:String? public var latitude:Double? public var longitude:Double? public var defaultValues:String? public var externalReferenceType:String? public var eventSeriesActive:Bool? public var allowedKsiCard:String? public var seriesId:String? public var seriesShowByDefault:Bool? public var postponedNoDate:Bool? public var awayTeamExternalId:String? public var sportGenderId:String? public var externalIdType:String? public var seriesEventSaleSuspended:Bool? public var seriesSaleSuspensionEventStartDate:Date? public var seriesSaleSuspensionEventEndDate:Date? public var saleIsActive:Bool? public var hideEvent:Bool? public var imageUrl2:String? public var directAccessCode:String? public var imageUrl:String? public var detailedDescription:String? public var ownerImageUrl:String? public var ownerImageUrl2:String? public var ownerCardsNotAllowed:Bool? public var seatingImageUrl:String? public var endOfEvent:Date? public var endOfEventUTC:Date? public var timeZone:String? public var timeOfEventUTC:Date? required public init(){} }