/* Options: Date: 2025-10-27 22:20:52 SwiftVersion: 6.0 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://duengageapi.uat.scadsoftware.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: InitialisePaymentRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack public class InitialisePaymentRequest : IReturn, Codable { public typealias Return = InitialisePaymentResponse public var paymentType:PaymentTypeEnum? public var uuid:String? public var referenceNumber:String? public var amount:Double? public var currency:String? public var itemName:String? public var itemDescription:String? public var billingDate:Date? public var frequency:FrequencyEnum? public var cycles:Int? required public init(){} } public class InitialisePaymentResponse : ResponseBase { public var transactionId:String? public var signature:String? public var url:String? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case transactionId case signature case url } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) transactionId = try container.decodeIfPresent(String.self, forKey: .transactionId) signature = try container.decodeIfPresent(String.self, forKey: .signature) url = try container.decodeIfPresent(String.self, forKey: .url) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if transactionId != nil { try container.encode(transactionId, forKey: .transactionId) } if signature != nil { try container.encode(signature, forKey: .signature) } if url != nil { try container.encode(url, forKey: .url) } } } public enum PaymentTypeEnum : Int, Codable { case OneTime = 1 case Recurring = 2 } public enum FrequencyEnum : Int, Codable { case Daily = 1 case Weekly = 2 case Monthly = 3 case Quarterly = 4 case Biannually = 5 case Annually = 6 } public class ResponseBase : Codable { public var status:Bool? public var message:String? public var errors:[String:[String]]? required public init(){} }