/* Options: Date: 2025-08-04 04:32:19 SwiftVersion: 5.0 Version: 6.110 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://szallitoiportal-be.veolia.hu //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: BrowseSupplementaryByVeoliaAdmin.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/supplementary/{supplementaryid}", "GET") public class BrowseSupplementaryByVeoliaAdmin : IReturn, IGet, Codable { public typealias Return = BrowseSupplementaryResponse public var supplementaryId:Int required public init(){} } public class BrowseSupplementaryResponse : ResponseBase { public var supplementary:SupplementaryDetails required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case supplementary } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) supplementary = try container.decodeIfPresent(SupplementaryDetails.self, forKey: .supplementary) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if supplementary != nil { try container.encode(supplementary, forKey: .supplementary) } } } public class ResponseBase : Codable { public var responseStatus:ResponseStatus required public init(){} } public class SupplementaryDetails : SupplementarySimple { public var tenderId:Int public var tenderUserId:Int public var userId:Int public var tenderRoundId:Int public var viewedById:Int? public var submittedById:Int? public var meta:[String:String] = [:] public var supplementaryFiles:[SupplementaryFileDetails] = [] required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case tenderId case tenderUserId case userId case tenderRoundId case viewedById case submittedById case meta case supplementaryFiles } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) tenderId = try container.decodeIfPresent(Int.self, forKey: .tenderId) tenderUserId = try container.decodeIfPresent(Int.self, forKey: .tenderUserId) userId = try container.decodeIfPresent(Int.self, forKey: .userId) tenderRoundId = try container.decodeIfPresent(Int.self, forKey: .tenderRoundId) viewedById = try container.decodeIfPresent(Int.self, forKey: .viewedById) submittedById = try container.decodeIfPresent(Int.self, forKey: .submittedById) meta = try container.decodeIfPresent([String:String].self, forKey: .meta) ?? [:] supplementaryFiles = try container.decodeIfPresent([SupplementaryFileDetails].self, forKey: .supplementaryFiles) ?? [] } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if tenderId != nil { try container.encode(tenderId, forKey: .tenderId) } if tenderUserId != nil { try container.encode(tenderUserId, forKey: .tenderUserId) } if userId != nil { try container.encode(userId, forKey: .userId) } if tenderRoundId != nil { try container.encode(tenderRoundId, forKey: .tenderRoundId) } if viewedById != nil { try container.encode(viewedById, forKey: .viewedById) } if submittedById != nil { try container.encode(submittedById, forKey: .submittedById) } if meta.count > 0 { try container.encode(meta, forKey: .meta) } if supplementaryFiles.count > 0 { try container.encode(supplementaryFiles, forKey: .supplementaryFiles) } } } public class SupplementaryFileDetails : BrowseFileResponseBase { public var supplementaryId:Int public var supplementaryDocumentTypeId:Int public var supplementaryDocumentType:String public var direction:SupplementaryFileDirection required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case supplementaryId case supplementaryDocumentTypeId case supplementaryDocumentType case direction } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) supplementaryId = try container.decodeIfPresent(Int.self, forKey: .supplementaryId) supplementaryDocumentTypeId = try container.decodeIfPresent(Int.self, forKey: .supplementaryDocumentTypeId) supplementaryDocumentType = try container.decodeIfPresent(String.self, forKey: .supplementaryDocumentType) direction = try container.decodeIfPresent(SupplementaryFileDirection.self, forKey: .direction) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if supplementaryId != nil { try container.encode(supplementaryId, forKey: .supplementaryId) } if supplementaryDocumentTypeId != nil { try container.encode(supplementaryDocumentTypeId, forKey: .supplementaryDocumentTypeId) } if supplementaryDocumentType != nil { try container.encode(supplementaryDocumentType, forKey: .supplementaryDocumentType) } if direction != nil { try container.encode(direction, forKey: .direction) } } } public class BrowseFileResponseBase : Codable { public var id:Int public var fileContentId:Int public var fileName:String public var size:Int required public init(){} } public class SupplementarySimple : Codable { public var id:Int public var tenderUserTenderRoundId:Int public var isViewed:Bool public var viewingDateTime:Date? public var isSubmitted:Bool public var submissionDateTime:Date? required public init(){} } public enum SupplementaryFileDirection : Int, Codable { case Request = 0 case Response = 1 }