/* Options: Date: 2024-04-30 16:05:55 SwiftVersion: 5.0 Version: 8.13 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://techstacks.io //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: QueryPosts.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/posts", "GET") public class QueryPosts : QueryDb, IReturn { public typealias Return = QueryResponse public var ids:[Int] = [] public var organizationId:Int? public var organizationIds:[Int] public var types:[String] public var anyTechnologyIds:[Int] public var `is`:[String] = [] // @DataMember(Order=1) public var skip:Int? // @DataMember(Order=2) public var take:Int? // @DataMember(Order=3) public var orderBy:String // @DataMember(Order=4) public var orderByDesc:String // @DataMember(Order=5) public var include:String // @DataMember(Order=6) public var fields:String // @DataMember(Order=7) public var meta:[String:String] required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case ids case organizationId case organizationIds case types case anyTechnologyIds case `is` case skip case take case orderBy case orderByDesc case include case fields case meta } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) ids = try container.decodeIfPresent([Int].self, forKey: .ids) ?? [] organizationId = try container.decodeIfPresent(Int.self, forKey: .organizationId) organizationIds = try container.decodeIfPresent([Int].self, forKey: .organizationIds) ?? [] types = try container.decodeIfPresent([String].self, forKey: .types) ?? [] anyTechnologyIds = try container.decodeIfPresent([Int].self, forKey: .anyTechnologyIds) ?? [] `is` = try container.decodeIfPresent([String].self, forKey: .`is`) ?? [] skip = try container.decodeIfPresent(Int.self, forKey: .skip) take = try container.decodeIfPresent(Int.self, forKey: .take) orderBy = try container.decodeIfPresent(String.self, forKey: .orderBy) orderByDesc = try container.decodeIfPresent(String.self, forKey: .orderByDesc) include = try container.decodeIfPresent(String.self, forKey: .include) fields = try container.decodeIfPresent(String.self, forKey: .fields) meta = try container.decodeIfPresent([String:String].self, forKey: .meta) ?? [:] } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if ids.count > 0 { try container.encode(ids, forKey: .ids) } if organizationId != nil { try container.encode(organizationId, forKey: .organizationId) } if organizationIds.count > 0 { try container.encode(organizationIds, forKey: .organizationIds) } if types.count > 0 { try container.encode(types, forKey: .types) } if anyTechnologyIds.count > 0 { try container.encode(anyTechnologyIds, forKey: .anyTechnologyIds) } if `is`.count > 0 { try container.encode(`is`, forKey: .`is`) } if skip != nil { try container.encode(skip, forKey: .skip) } if take != nil { try container.encode(take, forKey: .take) } if orderBy != nil { try container.encode(orderBy, forKey: .orderBy) } if orderByDesc != nil { try container.encode(orderByDesc, forKey: .orderByDesc) } if include != nil { try container.encode(include, forKey: .include) } if fields != nil { try container.encode(fields, forKey: .fields) } if meta.count > 0 { try container.encode(meta, forKey: .meta) } } } public class Post : Codable { public var id:Int public var organizationId:Int public var userId:Int public var type:PostType public var categoryId:Int public var title:String public var slug:String public var url:String public var imageUrl:String // @StringLength(Int32.max) public var content:String // @StringLength(Int32.max) public var contentHtml:String public var pinCommentId:Int? public var technologyIds:[Int] = [] public var fromDate:Date? public var toDate:Date? public var location:String public var metaType:String public var meta:String public var approved:Bool public var upVotes:Int public var downVotes:Int public var points:Int public var views:Int public var favorites:Int public var subscribers:Int public var replyCount:Int public var commentsCount:Int public var wordCount:Int public var reportCount:Int public var linksCount:Int public var linkedToCount:Int public var score:Int public var rank:Int public var labels:[String] = [] public var refUserIds:[Int] = [] public var refLinks:[String] = [] public var muteUserIds:[Int] = [] public var lastCommentDate:Date? public var lastCommentId:Int? public var lastCommentUserId:Int? public var deleted:Date? public var deletedBy:String public var locked:Date? public var lockedBy:String public var hidden:Date? public var hiddenBy:String public var status:String public var statusDate:Date? public var statusBy:String public var archived:Bool public var bumped:Date? public var created:Date public var createdBy:String public var modified:Date public var modifiedBy:String public var refId:Int? public var refSource:String public var refUrn:String required public init(){} } public enum PostType : String, Codable { case Announcement case Post case Showcase case Question case Request }