/* Options: Date: 2026-10-01 15:38:22 SwiftVersion: 5.0 Version: 6.10 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://stubbur-app.azurewebsites.net //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: OwnerCardsOrderRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/OrderOwnerCards", "POST") public class OwnerCardsOrderRequest : IReturn, Codable { public typealias Return = OwnerCardsOrderResult public var ownerCardTypeIds:[Int] = [] public var paymentMethodId:String? public var cardInfo:PaymentRequestCreditCard? public var applePayInfo:BorgunApplePayFinalInfo? public var borgun3DFinalInfo:Borgun3DFinalRequest? public var paymentPhoneNumber:String? public var appMetaData:String? public var holderId:String? public var holderName:String? public var holderEmail:String? public var returnCards:Bool? public var phoneVerificationNumber:String? public var deviceId:String? public var discountCode:String? public var tenders:[OrderTender] = [] public var idempotencyKey:String? public var isSubscription:Bool? public var donationAmount:Int? public var requestUnixUTCTimeStamp:Int? public var signature:RequestSignature? required public init(){} } public class OwnerCardsOrderResult : GeneralOrderResponse { public var cards:[OwnerCards] = [] public var orderReference:String? public var isSubscription:Bool? public var monthlyPrice:Double? public var transactionFee:Double? public var months:Int? public var paymentTokenId:String? public var subscriptionTokenMissing:Bool? public var priceTotal:Int? public var discountAmount:Int? public var giftCardAmount:Int? public var donationAmount:Int? public var chargedAmount:Int? public var reason:String? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case cards case orderReference case isSubscription case monthlyPrice case transactionFee case months case paymentTokenId case subscriptionTokenMissing case priceTotal case discountAmount case giftCardAmount case donationAmount case chargedAmount case reason } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) cards = try container.decodeIfPresent([OwnerCards].self, forKey: .cards) ?? [] orderReference = try container.decodeIfPresent(String.self, forKey: .orderReference) isSubscription = try container.decodeIfPresent(Bool.self, forKey: .isSubscription) monthlyPrice = try container.decodeIfPresent(Double.self, forKey: .monthlyPrice) transactionFee = try container.decodeIfPresent(Double.self, forKey: .transactionFee) months = try container.decodeIfPresent(Int.self, forKey: .months) paymentTokenId = try container.decodeIfPresent(String.self, forKey: .paymentTokenId) subscriptionTokenMissing = try container.decodeIfPresent(Bool.self, forKey: .subscriptionTokenMissing) priceTotal = try container.decodeIfPresent(Int.self, forKey: .priceTotal) discountAmount = try container.decodeIfPresent(Int.self, forKey: .discountAmount) giftCardAmount = try container.decodeIfPresent(Int.self, forKey: .giftCardAmount) donationAmount = try container.decodeIfPresent(Int.self, forKey: .donationAmount) chargedAmount = try container.decodeIfPresent(Int.self, forKey: .chargedAmount) reason = try container.decodeIfPresent(String.self, forKey: .reason) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if cards.count > 0 { try container.encode(cards, forKey: .cards) } if orderReference != nil { try container.encode(orderReference, forKey: .orderReference) } if isSubscription != nil { try container.encode(isSubscription, forKey: .isSubscription) } if monthlyPrice != nil { try container.encode(monthlyPrice, forKey: .monthlyPrice) } if transactionFee != nil { try container.encode(transactionFee, forKey: .transactionFee) } if months != nil { try container.encode(months, forKey: .months) } if paymentTokenId != nil { try container.encode(paymentTokenId, forKey: .paymentTokenId) } if subscriptionTokenMissing != nil { try container.encode(subscriptionTokenMissing, forKey: .subscriptionTokenMissing) } if priceTotal != nil { try container.encode(priceTotal, forKey: .priceTotal) } if discountAmount != nil { try container.encode(discountAmount, forKey: .discountAmount) } if giftCardAmount != nil { try container.encode(giftCardAmount, forKey: .giftCardAmount) } if donationAmount != nil { try container.encode(donationAmount, forKey: .donationAmount) } if chargedAmount != nil { try container.encode(chargedAmount, forKey: .chargedAmount) } if reason != nil { try container.encode(reason, forKey: .reason) } } } public class RequestSignature : Codable { public var systemId:String? public var systemSecret:String? public var signature:String? required public init(){} } public class Borgun3DFinalRequest : Codable { public var transactionType:String? public var amount:Int? public var currency:String? public var transactionDate:Date? public var orderId:String? public var paymentMethod:Borgun3DFinalPaymentMethodInfo? public var threeDSecure:Borgun3DFinal3DSecureInfo? required public init(){} } public class OrderTender : Codable { public var kind:String? public var code:String? public var amountMinor:Int? public var idempotencyKey:String? public var holdId:Int? public var appliedMinor:Int? required public init(){} } public class PaymentRequestCreditCard : Codable { public var paymentMethod:PaymentMethodCreditCardInfo? public var amount:Double? public var currency:String? public var orderId:String? public var transActionDate:Date? public var saveCardToToken:Bool? required public init(){} } public class BorgunApplePayFinalInfo : Codable { public var orderId:String? public var threeDSecure:BorgunApplePayThreeDSecureInfo? required public init(){} } public class OwnerCards : Codable { public var id:Int? public var ownerId:Int? public var ownerCardTypeId:Int? public var phoneVerificationId:Int? public var initialMaxTickets:Int? public var currentAvailableTickets:Int? public var timeStampCreatedUTC:Date? public var timeStampLastChangedUTC:Date? public var timeStampBoughtUTC:Date? public var timeStampOrderedUTC:Date? public var cardValidFromUTC:Date? public var cardValidToUTC:Date? public var hasStoreCredit:Bool? public var cardPrice:Double? public var pricePaid:Double? public var initialStoreCredit:Double? public var currentStoreCredit:Double? public var phoneFullVerificationNumber:String? public var holderId:String? public var holderName:String? public var holderEmail:String? public var cardPriceCurrency:String? public var pricePaidCurrency:String? public var deviceId:String? public var paymentMethodId:String? public var paymentReference:String? public var phoneVerificationNumber:String? public var paymentPhoneNumber:String? public var paymentId:String? public var paymentStatus:String? public var paymentTokenId:String? public var maxTicketsPerEvent:Int? public var multiplePaymentsId:String? public var imageUrl:String? public var backgroundImageUrl:String? public var orderReference:String? public var upgradedFromOwnerCardId:Int? required public init(){} } public class GeneralOrderResponse : Codable { public var statusCode:Int? public var message:String? public var success:Bool? public var paymentIsPending:Bool? public var orderTokenId:String? required public init(){} } public class Borgun3DFinalPaymentMethodInfo : Codable { public var paymentType:String? public var token:String? public var virtualNumber:String? public var expYear:String? public var expMonth:String? public var panLastFour:String? required public init(){} } public class Borgun3DFinal3DSecureInfo : Codable { public var dataType:String? public var mpiToken:String? required public init(){} } public class PaymentMethodCreditCardInfo : Codable { public var paymentType:String? public var token:String? public var pan:String? public var expYear:String? public var expMonth:String? public var cvc:String? required public init(){} } public class BorgunApplePayThreeDSecureInfo : Codable { public var dataType:String? public var securityLevelInd:String? public var cavv:String? public var ucaf:String? required public init(){} }