/* Options: Date: 2024-12-22 12:13:49 Version: 8.51 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://techstacks.io //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: QueryPosts.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } // @DataContract export class QueryBase { // @DataMember(Order=1) public skip?: number; // @DataMember(Order=2) public take?: number; // @DataMember(Order=3) public orderBy: string; // @DataMember(Order=4) public orderByDesc: string; // @DataMember(Order=5) public include: string; // @DataMember(Order=6) public fields: string; // @DataMember(Order=7) public meta: { [index:string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class QueryDb extends QueryBase { public constructor(init?: Partial>) { super(init); (Object as any).assign(this, init); } } export enum PostType { Announcement = 'Announcement', Post = 'Post', Showcase = 'Showcase', Question = 'Question', Request = 'Request', } export class Post { public id: number; public organizationId: number; public userId: number; public type: PostType; public categoryId: number; public title: string; public slug: string; public url: string; public imageUrl: string; // @StringLength(2147483647) public content: string; // @StringLength(2147483647) public contentHtml: string; public pinCommentId?: number; public technologyIds: number[]; public fromDate?: string; public toDate?: string; public location: string; public metaType: string; public meta: string; public approved: boolean; public upVotes: number; public downVotes: number; public points: number; public views: number; public favorites: number; public subscribers: number; public replyCount: number; public commentsCount: number; public wordCount: number; public reportCount: number; public linksCount: number; public linkedToCount: number; public score: number; public rank: number; public labels: string[]; public refUserIds: number[]; public refLinks: string[]; public muteUserIds: number[]; public lastCommentDate?: string; public lastCommentId?: number; public lastCommentUserId?: number; public deleted?: string; public deletedBy: string; public locked?: string; public lockedBy: string; public hidden?: string; public hiddenBy: string; public status: string; public statusDate?: string; public statusBy: string; public archived: boolean; public bumped?: string; public created: string; public createdBy: string; public modified: string; public modifiedBy: string; public refId?: number; public refSource: string; public refUrn: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class QueryResponse { // @DataMember(Order=1) public offset: number; // @DataMember(Order=2) public total: number; // @DataMember(Order=3) public results: Post[]; // @DataMember(Order=4) public meta: { [index:string]: string; }; // @DataMember(Order=5) public responseStatus: ResponseStatus; public constructor(init?: Partial>) { (Object as any).assign(this, init); } } // @Route("/posts", "GET") export class QueryPosts extends QueryDb implements IReturn> { public ids: number[]; public organizationId?: number; public organizationIds: number[]; public types: string[]; public anyTechnologyIds: number[]; public is: string[]; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } public getTypeName() { return 'QueryPosts'; } public getMethod() { return 'GET'; } public createResponse() { return new QueryResponse(); } }