/* Options: Date: 2024-09-19 22:45:23 SwiftVersion: 5.0 Version: 8.30 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://initiation-pen.sirva.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: ClientDownloadRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/documents/download", "POST, PUT") public class ClientDownloadRequest : DocumentRequestBase, IReturn { public typealias Return = ClientDownloadResponse public var fileName:String /** * Month */ // @ApiMember(Description="Month", ExcludeInSchema=true, IsRequired=true, ParameterType="path") public var month:Int /** * Day */ // @ApiMember(Description="Day", ExcludeInSchema=true, IsRequired=true, ParameterType="path") public var day:Int required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case fileName case month case day } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) fileName = try container.decodeIfPresent(String.self, forKey: .fileName) month = try container.decodeIfPresent(Int.self, forKey: .month) day = try container.decodeIfPresent(Int.self, forKey: .day) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if fileName != nil { try container.encode(fileName, forKey: .fileName) } if month != nil { try container.encode(month, forKey: .month) } if day != nil { try container.encode(day, forKey: .day) } } } public class ClientDownloadResponse : ResponseBase { public var fileName:String public var stream:Data required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case fileName case stream } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) fileName = try container.decodeIfPresent(String.self, forKey: .fileName) stream = try container.decodeIfPresent(Data.self, forKey: .stream) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if fileName != nil { try container.encode(fileName, forKey: .fileName) } if stream != nil { try container.encode(stream, forKey: .stream) } } } public class DocumentRequestBase : Codable { /** * ExternalID */ // @ApiMember(Description="ExternalID", ExcludeInSchema=true, IsRequired=true, ParameterType="path") public var externalId:String required public init(){} } public class ResponseBase : Codable { public var message:String public var isSuccess:Bool required public init(){} }