/* Options: Date: 2025-06-07 18:55:50 SwiftVersion: 5.0 Version: 8.12 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://soluser-recaudo.sgsas.co //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: AMDCValidaPagoRQ.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/pago/ValidarPagosArticulo") public class AMDCValidaPagoRQ : DatosBanco, IReturn { public typealias Return = AMDCValidaPagoRS public var numeroDocumento:String public var banco:String public var sucursal:String public var usuario:String public var terminal:String required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case numeroDocumento case banco case sucursal case usuario case terminal } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) numeroDocumento = try container.decodeIfPresent(String.self, forKey: .numeroDocumento) banco = try container.decodeIfPresent(String.self, forKey: .banco) sucursal = try container.decodeIfPresent(String.self, forKey: .sucursal) usuario = try container.decodeIfPresent(String.self, forKey: .usuario) terminal = try container.decodeIfPresent(String.self, forKey: .terminal) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if numeroDocumento != nil { try container.encode(numeroDocumento, forKey: .numeroDocumento) } if banco != nil { try container.encode(banco, forKey: .banco) } if sucursal != nil { try container.encode(sucursal, forKey: .sucursal) } if usuario != nil { try container.encode(usuario, forKey: .usuario) } if terminal != nil { try container.encode(terminal, forKey: .terminal) } } } public class AMDCValidaPagoRS : CoreRes { public var listaPagosRoot:[ValidarPago] = [] public var tranId:String public var code:String public var infoMsg:String required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case listaPagosRoot case tranId case code case infoMsg } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) listaPagosRoot = try container.decodeIfPresent([ValidarPago].self, forKey: .listaPagosRoot) ?? [] tranId = try container.decodeIfPresent(String.self, forKey: .tranId) code = try container.decodeIfPresent(String.self, forKey: .code) infoMsg = try container.decodeIfPresent(String.self, forKey: .infoMsg) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if listaPagosRoot.count > 0 { try container.encode(listaPagosRoot, forKey: .listaPagosRoot) } if tranId != nil { try container.encode(tranId, forKey: .tranId) } if code != nil { try container.encode(code, forKey: .code) } if infoMsg != nil { try container.encode(infoMsg, forKey: .infoMsg) } } } public class SolicitudPago : Codable { public var idTransaccionBanco:String public var fechaTransaccionBanco:Int public var horaMinSeg:Int public var numeroDocumento:String public var idTipoImpuesto:Int public var pagoParcial:Int public var anio:Int public var pagoArticulos:[PagoArticulo] = [] required public init(){} } public class DatosBanco : Codable { public var banco:String public var sucursal:String public var usuario:String public var terminal:String required public init(){} } public class ResultadoPago : ResultadoTransaccion { public var idPago:Int public var checkSum:String public var resultado:String // @DataMember(Name="Mensaje") public var Mensaje:String public var fechaTransaccion:String required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case idPago case checkSum case resultado case Mensaje case fechaTransaccion } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) idPago = try container.decodeIfPresent(Int.self, forKey: .idPago) checkSum = try container.decodeIfPresent(String.self, forKey: .checkSum) resultado = try container.decodeIfPresent(String.self, forKey: .resultado) Mensaje = try container.decodeIfPresent(String.self, forKey: .Mensaje) fechaTransaccion = try container.decodeIfPresent(String.self, forKey: .fechaTransaccion) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if idPago != nil { try container.encode(idPago, forKey: .idPago) } if checkSum != nil { try container.encode(checkSum, forKey: .checkSum) } if resultado != nil { try container.encode(resultado, forKey: .resultado) } if Mensaje != nil { try container.encode(Mensaje, forKey: .Mensaje) } if fechaTransaccion != nil { try container.encode(fechaTransaccion, forKey: .fechaTransaccion) } } } public class CoreRes : Codable { public var tranId:String public var code:String public var infoMsg:String required public init(){} } public class ResultadoTransaccion : Codable { public var resultado:String // @DataMember(Name="Mensaje") public var Mensaje:String public var fechaTransaccion:String required public init(){} } public class ValidarPago : Codable { public var idPagoPasarela:Int public var estado:String public var requesT_PAGO:RequestPago public var responsE_PAGO:ResponsePago required public init(){} } public class PagoArticulo : Codable { public var idObligacion:Int public var monto:Double required public init(){} } public class RequestPago : Codable { public var solicitudPago:SolicitudPago required public init(){} } public class ResponsePago : Codable { public var pagoRespuesta:ResultadoPago required public init(){} }