/* Options: Date: 2025-09-08 01:40:24 Version: 8.81 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://account.servicestack.net //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: QuerySubscriptions.* //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); } } // @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 enum SkuType { Product = 'Product', PerDev = 'PerDev', PerCore = 'PerCore', Site = 'Site', Support = 'Support', Training = 'Training', Register = 'Register', Payment = 'Payment', } export enum LicenseType { Free = 'Free', FreeIndividual = 'FreeIndividual', FreeOpenSource = 'FreeOpenSource', Indie = 'Indie', Business = 'Business', Enterprise = 'Enterprise', TextIndie = 'TextIndie', TextBusiness = 'TextBusiness', OrmLiteIndie = 'OrmLiteIndie', OrmLiteBusiness = 'OrmLiteBusiness', RedisIndie = 'RedisIndie', RedisBusiness = 'RedisBusiness', AwsIndie = 'AwsIndie', AwsBusiness = 'AwsBusiness', Trial = 'Trial', Site = 'Site', TextSite = 'TextSite', RedisSite = 'RedisSite', OrmLiteSite = 'OrmLiteSite', } export class LicenseKey { public ref: string; public name: string; public type: LicenseType; public meta: number; public hash: string; public halg: string; public expiry: 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 Subscription { public id: number; public customerId: number; public email: string; public skuId: number; public skuName: string; public skuType: SkuType; public code: string; public quantity: number; public supportQuantity: number; public total: number; public isPlan: boolean; public isRenewal: boolean; public subscriptionDurationDays: number; public renewalDate?: string; public licenseRef: string; public licenseName: string; public licenseAddress: string; public licenseType: LicenseType; public expiryDate: string; public licenseKey: LicenseKey; public licenseKeyText: string; public createdDate: string; public modifiedDate: string; public cancelledDate?: string; public stripeSubscriptionId: string; public emailId?: number; public emailRenewalId?: number; public emailExpiredId?: number; public renewalSubscriptionId?: number; public externalRef: string; public notes: string; public error: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/query/subscriptions") // @ValidateRequest(Validator="IsAdmin") // @AutoQueryViewer(DefaultSearchField="Email", DefaultSearchType="Contains", IconUrl="material-icons:person_outline", Title="Subscriptions") export class QuerySubscriptions extends QueryDb implements IReturn> { public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } public getTypeName() { return 'QuerySubscriptions'; } public getMethod() { return 'GET'; } public createResponse() { return new QueryResponse(); } }