/* Options: Date: 2025-09-08 02:34:15 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: Subscriptions.* //ExcludeTypes: //DefaultImports: */ export enum SkuType { Product = 'Product', PerDev = 'PerDev', PerCore = 'PerCore', Site = 'Site', Support = 'Support', Training = 'Training', Register = 'Register', Payment = 'Payment', } // @Flags() export enum LicenseFeature { None = 0, Free = 0, Premium = 1, Text = 2, Client = 4, Common = 8, Redis = 16, RedisSku = 18, OrmLite = 32, OrmLiteSku = 34, ServiceStack = 64, Server = 128, Razor = 256, Admin = 512, Aws = 1024, AwsSku = 1026, All = 2047, } 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 Sku { public id: number; public productId: number; public type: SkuType; public feature: LicenseFeature; public code: string; public name: string; public notes: string; // @Ignore() public minQty?: number; public maxQty?: number; public price: number; public plan: string; public discountOff: number; public discountLabelOff: string; public actualPrice: number; public isPlan: boolean; public isRenewal: boolean; public subscriptionDurationDays?: number; public expiryDurationDays?: number; public trialPeriodDays?: number; public supportQty: number; public coresQty?: number; public createdDate: string; public modifiedDate: string; public licenseType: LicenseType; public active: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class OrderDetail { public id: number; public orderId: number; public skuId: number; public skuType: SkuType; public price: number; public description: string; public quantity: number; public total: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class OrderAnalyticData { public productName: string; public subTotal: number; public couponId: string; public discount: number; public tax: number; public total: number; public paid: boolean; public createdDate: string; public modifiedDate: string; public modifiedBy: string; public cancelledDate?: string; public cancelledReason: string; public orderDetails: OrderDetail[]; 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 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("/account/subscription") // @Route("/Subscriptions", "GET") export class Subscriptions implements IReturn { public section: string; public success: boolean; public activated: boolean; public purchasedOrderId?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'Subscriptions'; } public getMethod() { return 'GET'; } public createResponse() { return new SubscriptionsResponse(); } } export class SubscriptionsResponse { public section: string; public supportQuantity: number; public activeSku: Sku; public activeSubscription: Subscription; public inActiveSubscriptions: Subscription[]; public purchasedOrder: OrderAnalyticData; public responseStatus: ResponseStatus; public constructor(init?: Partial) { (Object as any).assign(this, init); } }