/* Options: Date: 2025-11-26 15:55:51 Version: 8.101 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: //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export interface IReturnVoid { createResponse(): void; } export interface IHasSessionId { sessionId?: string; } export interface IHasBearerToken { bearerToken?: string; } export interface IGet { } export interface IPost { } export interface IPut { } export interface IDelete { } // @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_1 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; // @Ignore() public userProfileUrl: string; 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); } } export enum ReportAction { Dismiss = 'Dismiss', Delete = 'Delete', } export enum FlagType { Violation = 'Violation', Spam = 'Spam', Abusive = 'Abusive', Confidential = 'Confidential', OffTopic = 'OffTopic', Other = 'Other', } export enum Frequency { Daily = 1, Weekly = 7, Monthly = 30, Quarterly = 90, } export class QueryDb_2 extends QueryBase { public constructor(init?: Partial>) { super(init); (Object as any).assign(this, init); } } export enum TechnologyTier { ProgrammingLanguage = 'ProgrammingLanguage', Client = 'Client', Http = 'Http', Server = 'Server', Data = 'Data', SoftwareInfrastructure = 'SoftwareInfrastructure', OperatingSystem = 'OperatingSystem', HardwareInfrastructure = 'HardwareInfrastructure', ThirdPartyServices = 'ThirdPartyServices', } export class TechnologyBase { public id?: number; public name: string; public vendorName: string; public vendorUrl: string; public productUrl: string; public logoUrl: string; public description: string; public created?: string; public createdBy: string; public lastModified?: string; public lastModifiedBy: string; public ownerId: string; public slug: string; public logoApproved?: boolean; public isLocked?: boolean; public tier?: TechnologyTier; public lastStatusUpdate?: string; public organizationId?: number; public commentsPostId?: number; public viewCount?: number; public favCount?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Technology extends TechnologyBase { public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class TechnologyView { public id?: number; public name: string; public vendorName: string; public vendorUrl: string; public productUrl: string; public logoUrl: string; public description: string; public created?: string; public createdBy: string; public lastModified?: string; public lastModifiedBy: string; public ownerId: string; public slug: string; public logoApproved?: boolean; public isLocked?: boolean; public tier?: TechnologyTier; public lastStatusUpdate?: string; public organizationId?: number; public commentsPostId?: number; public viewCount?: number; public favCount?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export interface IRegisterStats { } export class TechnologyStackBase { public id?: number; public name: string; public vendorName: string; public description: string; public appUrl: string; public screenshotUrl: string; public created?: string; public createdBy: string; public lastModified?: string; public lastModifiedBy: string; public isLocked?: boolean; public ownerId: string; public slug: string; // @StringLength(2147483647) public details: string; // @StringLength(2147483647) public detailsHtml: string; public lastStatusUpdate?: string; public organizationId?: number; public commentsPostId?: number; public viewCount?: number; public favCount?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class TechnologyStack extends TechnologyStackBase { public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class TechnologyStackView { public id?: number; public name: string; public vendorName: string; public description: string; public appUrl: string; public screenshotUrl: string; public created?: string; public createdBy: string; public lastModified?: string; public lastModifiedBy: string; public isLocked?: boolean; public ownerId: string; public slug: string; public details: string; public detailsHtml: string; public lastStatusUpdate?: string; public organizationId?: number; public commentsPostId?: number; public viewCount?: number; public favCount?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PostComment { public id?: number; public postId?: number; public userId?: number; // @Ignore() public userProfileUrl: string; public replyId?: number; // @StringLength(2147483647) public content: string; // @StringLength(2147483647) public contentHtml: string; public score?: number; public rank?: number; public upVotes?: number; public downVotes?: number; public favorites?: number; public wordCount?: number; public reportCount?: number; public deleted?: string; public hidden?: string; public modified?: string; public created?: string; public createdBy: string; public refId?: number; public refSource: string; public refUrn: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class ResponseError { // @DataMember(Order=1) public errorCode: string; // @DataMember(Order=2) public fieldName: string; // @DataMember(Order=3) public message: string; // @DataMember(Order=4) public meta?: { [index:string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class ResponseStatus { // @DataMember(Order=1) public errorCode: string; // @DataMember(Order=2) public message?: string; // @DataMember(Order=3) public stackTrace?: string; // @DataMember(Order=4) public errors?: ResponseError[]; // @DataMember(Order=5) public meta?: { [index:string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Organization { public id?: number; public name: string; public slug: string; public description: string; public descriptionHtml: string; public color: string; public textColor: string; public linkColor: string; public backgroundColor: string; public backgroundUrl: string; public logoUrl: string; public heroUrl: string; public lang: string; public defaultPostType: string; public defaultSubscriptionPostTypes: string[] = []; public postTypes: string[] = []; public moderatorPostTypes: string[] = []; public deletePostsWithReportCount?: number; public disableInvites?: boolean; public upVotes?: number; public downVotes?: number; public views?: number; public favorites?: number; public subscribers?: number; public commentsCount?: number; public postsCount?: number; public score?: number; public rank?: number; public refId?: number; public refSource: string; public hidden?: string; public hiddenBy: string; public locked?: string; public lockedBy: string; public deleted?: string; public deletedBy: string; public created?: string; public createdBy: string; public modified?: string; public modifiedBy: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class OrganizationLabel { public slug: string; public organizationId?: number; public description: string; public color: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Category { public id?: number; public organizationId?: number; public name: string; public slug: string; public description: string; public color: string; public technologyIds: number[] = []; public commentsCount?: number; public postsCount?: number; public score?: number; public rank?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class OrganizationMember { public id?: number; public organizationId?: number; public userId?: number; public userName: string; public isOwner?: boolean; public isModerator?: boolean; public denyAll?: boolean; public denyPosts?: boolean; public denyComments?: boolean; public notes: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class OrganizationMemberInvite { public id?: number; public organizationId?: number; public userId?: number; public userName: string; public dismissed?: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PostReportInfo { public id?: number; public organizationId?: number; public postId?: number; public userId?: number; public userName: string; public flagType?: FlagType; public reportNotes: string; public created?: string; public acknowledged?: string; public acknowledgedBy: string; public dismissed?: string; public dismissedBy: string; public title: string; public reportCount?: number; public createdBy: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PostCommentReportInfo { public id?: number; public organizationId?: number; public postId?: number; public postCommentId?: number; public userId?: number; public userName: string; public flagType?: FlagType; public reportNotes: string; public created?: string; public acknowledged?: string; public acknowledgedBy: string; public dismissed?: string; public dismissedBy: string; public contentHtml: string; public reportCount?: number; public createdBy: 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: T[] = []; // @DataMember(Order=4) public meta?: { [index:string]: string; }; // @DataMember(Order=5) public responseStatus?: ResponseStatus; public constructor(init?: Partial>) { (Object as any).assign(this, init); } } export class UserRef { public id?: number; public userName: string; public email: string; public refId?: number; public refSource: string; public refUrn: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class OrganizationSubscription { public id?: number; public organizationId?: number; public userId?: number; public userName: string; public postTypes: string[] = []; public frequencyDays?: number; public lastSyncedId?: number; public lastSynced?: string; public created?: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class UserActivity { public id?: number; public userName: string; public karma?: number; public technologyCount?: number; public techStacksCount?: number; public postsCount?: number; public postUpVotes?: number; public postDownVotes?: number; public commentUpVotes?: number; public commentDownVotes?: number; public postCommentsCount?: number; public pinnedCommentCount?: number; public postReportCount?: number; public postCommentReportCount?: number; public created?: string; public modified?: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class TechnologyHistory extends TechnologyBase { public technologyId?: number; public operation: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class TechnologyStackHistory extends TechnologyStackBase { public technologyStackId?: number; public operation: string; public technologyIds: number[] = []; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class UserInfo { public userName: string; public avatarUrl: string; public stacksCount?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class TechnologyInfo { public tier?: TechnologyTier; public slug: string; public name: string; public logoUrl: string; public stacksCount?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class TechnologyInStack extends TechnologyBase { public technologyId?: number; public technologyStackId?: number; public justification: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class TechStackDetails extends TechnologyStackBase { public technologyChoices: TechnologyInStack[] = []; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class LabelInfo { public slug: string; public color: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CategoryInfo { public id?: number; public name: string; public slug: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class OrganizationInfo { public id?: number; public name: string; public slug: string; public refId?: number; public refSource: string; public upVotes?: number; public downVotes?: number; public membersCount?: number; public rank?: number; public disableInvites?: boolean; public lang: string; public postTypes: string[] = []; public moderatorPostTypes: string[] = []; public locked?: string; public labels: LabelInfo[] = []; public categories: CategoryInfo[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class Option { // @DataMember(Name="name") public name: string; // @DataMember(Name="title") public title: string; // @DataMember(Name="value") public value?: TechnologyTier; public constructor(init?: Partial