/* Options: Date: 2024-12-03 09:31:37 SwiftVersion: 5.0 Version: 6.00 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://resourcelibrary.api.ashcompanies.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: ResourceItemSearchRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/searchResults", "GET") public class ResourceItemSearchRequest : BasicResourceLibraryRequest, IReturn { public typealias Return = ResourceItemSearchResponse public var request:String? public var tags:[String] = [] public var categoryId:String? public var offset:Int? public var limit:Int? public var digitalFitness:Bool? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case request case tags case categoryId case offset case limit case digitalFitness } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) request = try container.decodeIfPresent(String.self, forKey: .request) tags = try container.decodeIfPresent([String].self, forKey: .tags) ?? [] categoryId = try container.decodeIfPresent(String.self, forKey: .categoryId) offset = try container.decodeIfPresent(Int.self, forKey: .offset) limit = try container.decodeIfPresent(Int.self, forKey: .limit) digitalFitness = try container.decodeIfPresent(Bool.self, forKey: .digitalFitness) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if request != nil { try container.encode(request, forKey: .request) } if tags.count > 0 { try container.encode(tags, forKey: .tags) } if categoryId != nil { try container.encode(categoryId, forKey: .categoryId) } if offset != nil { try container.encode(offset, forKey: .offset) } if limit != nil { try container.encode(limit, forKey: .limit) } if digitalFitness != nil { try container.encode(digitalFitness, forKey: .digitalFitness) } } } public class ResourceItemSearchResponse : Codable { public var searchResults:SearchResult? required public init(){} } public class BasicResourceLibraryRequest : Codable { public var resourceLibraryMemberId:Int? required public init(){} } public class Tag : Codable { public var id:String? public var title:String? required public init(){} } public class SearchResult : Codable { public var id:String? public var resourceItems:[ResourceItemForSearch] = [] public var searchItems:[ResourceItemForSearch] = [] public var tags:[Tag] = [] public var itemCount:Int? required public init(){} } public class ResourceItemForSearch : Codable { public var id:String? public var type:String? public var categories:[String] = [] public var categoryIndexes:[String] = [] public var title:String? public var Description:String? public var descriptionSummary:String? public var content:String? public var tags:[String] = [] public var isComplete:Bool? public var isFavorite:Bool? public var isImplicitlyComplete:Bool? public var transcript:String? public var thumbnail:String? public var difficulty:String? public var duration:String? public var mediaPath:String? required public init(){} }