/* Options: Date: 2024-04-29 04:29:14 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: QueryPostComments.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/posts/comment", "GET") public class QueryPostComments : QueryDb, IReturn { public typealias Return = QueryResponse public var id:Int? public var userId:Int? public var postId:Int? public var contentContains:String public var upVotesAbove:Int? public var upVotesBelow:Int? public var downVotesAbove:Int? public var downVotes:Int? public var favoritesAbove:Int? public var favoritesBelow:Int? public var wordCountAbove:Int? public var wordCountBelow:Int? public var reportCountAbove:Int? public var reportCountBelow:Int? // @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 id case userId case postId case contentContains case upVotesAbove case upVotesBelow case downVotesAbove case downVotes case favoritesAbove case favoritesBelow case wordCountAbove case wordCountBelow case reportCountAbove case reportCountBelow 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) id = try container.decodeIfPresent(Int.self, forKey: .id) userId = try container.decodeIfPresent(Int.self, forKey: .userId) postId = try container.decodeIfPresent(Int.self, forKey: .postId) contentContains = try container.decodeIfPresent(String.self, forKey: .contentContains) upVotesAbove = try container.decodeIfPresent(Int.self, forKey: .upVotesAbove) upVotesBelow = try container.decodeIfPresent(Int.self, forKey: .upVotesBelow) downVotesAbove = try container.decodeIfPresent(Int.self, forKey: .downVotesAbove) downVotes = try container.decodeIfPresent(Int.self, forKey: .downVotes) favoritesAbove = try container.decodeIfPresent(Int.self, forKey: .favoritesAbove) favoritesBelow = try container.decodeIfPresent(Int.self, forKey: .favoritesBelow) wordCountAbove = try container.decodeIfPresent(Int.self, forKey: .wordCountAbove) wordCountBelow = try container.decodeIfPresent(Int.self, forKey: .wordCountBelow) reportCountAbove = try container.decodeIfPresent(Int.self, forKey: .reportCountAbove) reportCountBelow = try container.decodeIfPresent(Int.self, forKey: .reportCountBelow) 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 id != nil { try container.encode(id, forKey: .id) } if userId != nil { try container.encode(userId, forKey: .userId) } if postId != nil { try container.encode(postId, forKey: .postId) } if contentContains != nil { try container.encode(contentContains, forKey: .contentContains) } if upVotesAbove != nil { try container.encode(upVotesAbove, forKey: .upVotesAbove) } if upVotesBelow != nil { try container.encode(upVotesBelow, forKey: .upVotesBelow) } if downVotesAbove != nil { try container.encode(downVotesAbove, forKey: .downVotesAbove) } if downVotes != nil { try container.encode(downVotes, forKey: .downVotes) } if favoritesAbove != nil { try container.encode(favoritesAbove, forKey: .favoritesAbove) } if favoritesBelow != nil { try container.encode(favoritesBelow, forKey: .favoritesBelow) } if wordCountAbove != nil { try container.encode(wordCountAbove, forKey: .wordCountAbove) } if wordCountBelow != nil { try container.encode(wordCountBelow, forKey: .wordCountBelow) } if reportCountAbove != nil { try container.encode(reportCountAbove, forKey: .reportCountAbove) } if reportCountBelow != nil { try container.encode(reportCountBelow, forKey: .reportCountBelow) } 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 PostComment : Codable { public var id:Int public var postId:Int public var userId:Int public var replyId:Int? // @StringLength(Int32.max) public var content:String // @StringLength(Int32.max) public var contentHtml:String public var score:Int public var rank:Int public var upVotes:Int public var downVotes:Int public var favorites:Int public var wordCount:Int public var reportCount:Int public var deleted:Date? public var hidden:Date? public var modified:Date public var created:Date public var createdBy:String public var refId:Int? public var refSource:String public var refUrn:String required public init(){} }