/* Options: Date: 2025-12-06 13:09:42 SwiftVersion: 5.0 Version: 6.110 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://etc-api.vsmlab.vn //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: FileUpload.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack /** * Upload file */ // @Route("/upload", "Post") public class FileUpload : FileUploadRequest, IReturn, IPost { public typealias Return = IResponseRequest required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } public protocol IResponseRequest { var code:Int { get set } var message:String { get set } } public protocol IHttpFile { var name:String { get set } var fileName:String { get set } var contentLength:Int { get set } var contentType:String { get set } var inputStream:Data { get set } } public enum AccessType : String, Codable { case Public case Restricted } public enum StorageStatus : String, Codable { case Draft case Permanent case Archive } public class FileUploadRequest : Codable { //fileUpload:IHttpFile ignored. Swift doesn't support interface properties public var accessType:AccessType public var storageStatus:StorageStatus required public init(){} }