/* Options: Date: 2025-09-07 10:01:41 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: Product.* //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); } } // @Route("/Product", "GET") // @Route("/Product/{Id}", "GET") export class Product implements IReturn { public id: number; public name: string; public createdDate: string; public modifiedDate: string; public skus: Sku[]; public active: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'Product'; } public getMethod() { return 'GET'; } public createResponse() { return new Product(); } }