/* Options: Date: 2026-10-01 10:22:46 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: OwnerCardsUpgradeRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/OrderOwnerCards/upgrade", "POST") public class OwnerCardsUpgradeRequest : IReturn, Codable { public typealias Return = OwnerCardsUpgradeResult public var buyerPhone:String? public var sourceOwnerCardId:Int? public var targetOwnerCardTypeId:Int? public var idempotencyKey:String? public var paymentMethodId:String? public var borgun3DFinalInfo:Borgun3DFinalRequest? public var tenders:[OrderTender] = [] public var holderName:String? public var holderEmail:String? public var deviceId:String? public var returnCards:Bool? required public init(){} } public class OwnerCardsUpgradeResult : OwnerCardsOrderResult { public var sourceOwnerCardId:Int? public var sourceOwnerCardTypeId:Int? public var sourceTypeName:String? public var newOwnerCardId:Int? public var targetOwnerCardTypeId:Int? public var targetTypeName:String? public var relinkedTickets:Int? public var paymentReference:String? public var refundPending:Bool? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case sourceOwnerCardId case sourceOwnerCardTypeId case sourceTypeName case newOwnerCardId case targetOwnerCardTypeId case targetTypeName case relinkedTickets case paymentReference case refundPending } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) sourceOwnerCardId = try container.decodeIfPresent(Int.self, forKey: .sourceOwnerCardId) sourceOwnerCardTypeId = try container.decodeIfPresent(Int.self, forKey: .sourceOwnerCardTypeId) sourceTypeName = try container.decodeIfPresent(String.self, forKey: .sourceTypeName) newOwnerCardId = try container.decodeIfPresent(Int.self, forKey: .newOwnerCardId) targetOwnerCardTypeId = try container.decodeIfPresent(Int.self, forKey: .targetOwnerCardTypeId) targetTypeName = try container.decodeIfPresent(String.self, forKey: .targetTypeName) relinkedTickets = try container.decodeIfPresent(Int.self, forKey: .relinkedTickets) paymentReference = try container.decodeIfPresent(String.self, forKey: .paymentReference) refundPending = try container.decodeIfPresent(Bool.self, forKey: .refundPending) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if sourceOwnerCardId != nil { try container.encode(sourceOwnerCardId, forKey: .sourceOwnerCardId) } if sourceOwnerCardTypeId != nil { try container.encode(sourceOwnerCardTypeId, forKey: .sourceOwnerCardTypeId) } if sourceTypeName != nil { try container.encode(sourceTypeName, forKey: .sourceTypeName) } if newOwnerCardId != nil { try container.encode(newOwnerCardId, forKey: .newOwnerCardId) } if targetOwnerCardTypeId != nil { try container.encode(targetOwnerCardTypeId, forKey: .targetOwnerCardTypeId) } if targetTypeName != nil { try container.encode(targetTypeName, forKey: .targetTypeName) } if relinkedTickets != nil { try container.encode(relinkedTickets, forKey: .relinkedTickets) } if paymentReference != nil { try container.encode(paymentReference, forKey: .paymentReference) } if refundPending != nil { try container.encode(refundPending, forKey: .refundPending) } } } 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 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 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) } } }