/* Options: Date: 2025-09-07 09:47:00 Version: 8.81 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://account.servicestack.net //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: Buy.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; enum SkuType { Product, PerDev, PerCore, Site, Support, Training, Register, Payment, } // @flags() class LicenseFeature { static const LicenseFeature None = const LicenseFeature._(0); static const LicenseFeature Free = const LicenseFeature._(0); static const LicenseFeature Premium = const LicenseFeature._(1); static const LicenseFeature Text = const LicenseFeature._(2); static const LicenseFeature Client = const LicenseFeature._(4); static const LicenseFeature Common = const LicenseFeature._(8); static const LicenseFeature Redis = const LicenseFeature._(16); static const LicenseFeature RedisSku = const LicenseFeature._(18); static const LicenseFeature OrmLite = const LicenseFeature._(32); static const LicenseFeature OrmLiteSku = const LicenseFeature._(34); static const LicenseFeature ServiceStack = const LicenseFeature._(64); static const LicenseFeature Server = const LicenseFeature._(128); static const LicenseFeature Razor = const LicenseFeature._(256); static const LicenseFeature Admin = const LicenseFeature._(512); static const LicenseFeature Aws = const LicenseFeature._(1024); static const LicenseFeature AwsSku = const LicenseFeature._(1026); static const LicenseFeature All = const LicenseFeature._(2047); final int _value; const LicenseFeature._(this._value); int get value => _value; static List get values => const [None,Free,Premium,Text,Client,Common,Redis,RedisSku,OrmLite,OrmLiteSku,ServiceStack,Server,Razor,Admin,Aws,AwsSku,All]; } enum LicenseType { Free, FreeIndividual, FreeOpenSource, Indie, Business, Enterprise, TextIndie, TextBusiness, OrmLiteIndie, OrmLiteBusiness, RedisIndie, RedisBusiness, AwsIndie, AwsBusiness, Trial, Site, TextSite, RedisSite, OrmLiteSite, } class Sku implements IConvertible { int? id; int? productId; SkuType? type; LicenseFeature? feature; String? code; String? name; String? notes; // @ignore() int? minQty; int? maxQty; int? price; String? plan; int? discountOff; String? discountLabelOff; int? actualPrice; bool? isPlan; bool? isRenewal; int? subscriptionDurationDays; int? expiryDurationDays; int? trialPeriodDays; int? supportQty; int? coresQty; DateTime? createdDate; DateTime? modifiedDate; LicenseType? licenseType; bool? active; Sku({this.id,this.productId,this.type,this.feature,this.code,this.name,this.notes,this.minQty,this.maxQty,this.price,this.plan,this.discountOff,this.discountLabelOff,this.actualPrice,this.isPlan,this.isRenewal,this.subscriptionDurationDays,this.expiryDurationDays,this.trialPeriodDays,this.supportQty,this.coresQty,this.createdDate,this.modifiedDate,this.licenseType,this.active}); Sku.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; productId = json['productId']; type = JsonConverters.fromJson(json['type'],'SkuType',context!); feature = JsonConverters.fromJson(json['feature'],'LicenseFeature',context!); code = json['code']; name = json['name']; notes = json['notes']; minQty = json['minQty']; maxQty = json['maxQty']; price = json['price']; plan = json['plan']; discountOff = json['discountOff']; discountLabelOff = json['discountLabelOff']; actualPrice = json['actualPrice']; isPlan = json['isPlan']; isRenewal = json['isRenewal']; subscriptionDurationDays = json['subscriptionDurationDays']; expiryDurationDays = json['expiryDurationDays']; trialPeriodDays = json['trialPeriodDays']; supportQty = json['supportQty']; coresQty = json['coresQty']; createdDate = JsonConverters.fromJson(json['createdDate'],'DateTime',context!); modifiedDate = JsonConverters.fromJson(json['modifiedDate'],'DateTime',context!); licenseType = JsonConverters.fromJson(json['licenseType'],'LicenseType',context!); active = json['active']; return this; } Map toJson() => { 'id': id, 'productId': productId, 'type': JsonConverters.toJson(type,'SkuType',context!), 'feature': JsonConverters.toJson(feature,'LicenseFeature',context!), 'code': code, 'name': name, 'notes': notes, 'minQty': minQty, 'maxQty': maxQty, 'price': price, 'plan': plan, 'discountOff': discountOff, 'discountLabelOff': discountLabelOff, 'actualPrice': actualPrice, 'isPlan': isPlan, 'isRenewal': isRenewal, 'subscriptionDurationDays': subscriptionDurationDays, 'expiryDurationDays': expiryDurationDays, 'trialPeriodDays': trialPeriodDays, 'supportQty': supportQty, 'coresQty': coresQty, 'createdDate': JsonConverters.toJson(createdDate,'DateTime',context!), 'modifiedDate': JsonConverters.toJson(modifiedDate,'DateTime',context!), 'licenseType': JsonConverters.toJson(licenseType,'LicenseType',context!), 'active': active }; getTypeName() => "Sku"; TypeContext? context = _ctx; } class QuoteResponse implements IConvertible { int? skuId; String? code; int? customerId; bool? modifyingExistingSubscription; bool? changingSubscriptions; bool? switchingLicensingModels; bool? replacesExistingQuantity; int? existingSubscriptionQuantity; int? newSubscriptionQuantity; String? unusedAmount; bool? manualProrating; int? unusedDays; int? quantity; int? minQuantity; int? maxQuantity; String? subtotal; String? discountDescription; String? discountReceived; String? discount; String? total; String? expiryDate; String? renewalDate; bool? isReferrer; ResponseStatus? responseStatus; QuoteResponse({this.skuId,this.code,this.customerId,this.modifyingExistingSubscription,this.changingSubscriptions,this.switchingLicensingModels,this.replacesExistingQuantity,this.existingSubscriptionQuantity,this.newSubscriptionQuantity,this.unusedAmount,this.manualProrating,this.unusedDays,this.quantity,this.minQuantity,this.maxQuantity,this.subtotal,this.discountDescription,this.discountReceived,this.discount,this.total,this.expiryDate,this.renewalDate,this.isReferrer,this.responseStatus}); QuoteResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { skuId = json['skuId']; code = json['code']; customerId = json['customerId']; modifyingExistingSubscription = json['modifyingExistingSubscription']; changingSubscriptions = json['changingSubscriptions']; switchingLicensingModels = json['switchingLicensingModels']; replacesExistingQuantity = json['replacesExistingQuantity']; existingSubscriptionQuantity = json['existingSubscriptionQuantity']; newSubscriptionQuantity = json['newSubscriptionQuantity']; unusedAmount = json['unusedAmount']; manualProrating = json['manualProrating']; unusedDays = json['unusedDays']; quantity = json['quantity']; minQuantity = json['minQuantity']; maxQuantity = json['maxQuantity']; subtotal = json['subtotal']; discountDescription = json['discountDescription']; discountReceived = json['discountReceived']; discount = json['discount']; total = json['total']; expiryDate = json['expiryDate']; renewalDate = json['renewalDate']; isReferrer = json['isReferrer']; responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!); return this; } Map toJson() => { 'skuId': skuId, 'code': code, 'customerId': customerId, 'modifyingExistingSubscription': modifyingExistingSubscription, 'changingSubscriptions': changingSubscriptions, 'switchingLicensingModels': switchingLicensingModels, 'replacesExistingQuantity': replacesExistingQuantity, 'existingSubscriptionQuantity': existingSubscriptionQuantity, 'newSubscriptionQuantity': newSubscriptionQuantity, 'unusedAmount': unusedAmount, 'manualProrating': manualProrating, 'unusedDays': unusedDays, 'quantity': quantity, 'minQuantity': minQuantity, 'maxQuantity': maxQuantity, 'subtotal': subtotal, 'discountDescription': discountDescription, 'discountReceived': discountReceived, 'discount': discount, 'total': total, 'expiryDate': expiryDate, 'renewalDate': renewalDate, 'isReferrer': isReferrer, 'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!) }; getTypeName() => "QuoteResponse"; TypeContext? context = _ctx; } class BuyResponse implements IConvertible { String? coupon; String? renewalRef; String? upgradeRef; Sku? sku; QuoteResponse? quote; ResponseStatus? responseStatus; BuyResponse({this.coupon,this.renewalRef,this.upgradeRef,this.sku,this.quote,this.responseStatus}); BuyResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { coupon = json['coupon']; renewalRef = json['renewalRef']; upgradeRef = json['upgradeRef']; sku = JsonConverters.fromJson(json['sku'],'Sku',context!); quote = JsonConverters.fromJson(json['quote'],'QuoteResponse',context!); responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!); return this; } Map toJson() => { 'coupon': coupon, 'renewalRef': renewalRef, 'upgradeRef': upgradeRef, 'sku': JsonConverters.toJson(sku,'Sku',context!), 'quote': JsonConverters.toJson(quote,'QuoteResponse',context!), 'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!) }; getTypeName() => "BuyResponse"; TypeContext? context = _ctx; } // @Route("/buy/{Id}") // @Route("/buy/{Id}/{Quantity}") // @Route("/Buy", "GET") // @Route("/Buy/{Id}", "GET") class Buy implements IReturn, IGet, IConvertible { String? id; String? coupon; int? quantity; String? renewalRef; String? upgradeRef; Buy({this.id,this.coupon,this.quantity,this.renewalRef,this.upgradeRef}); Buy.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; coupon = json['coupon']; quantity = json['quantity']; renewalRef = json['renewalRef']; upgradeRef = json['upgradeRef']; return this; } Map toJson() => { 'id': id, 'coupon': coupon, 'quantity': quantity, 'renewalRef': renewalRef, 'upgradeRef': upgradeRef }; createResponse() => BuyResponse(); getResponseTypeName() => "BuyResponse"; getTypeName() => "Buy"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'account.servicestack.net', types: { 'SkuType': TypeInfo(TypeOf.Enum, enumValues:SkuType.values), 'LicenseFeature': TypeInfo(TypeOf.Enum, enumValues:LicenseFeature.values), 'LicenseType': TypeInfo(TypeOf.Enum, enumValues:LicenseType.values), 'Sku': TypeInfo(TypeOf.Class, create:() => Sku()), 'QuoteResponse': TypeInfo(TypeOf.Class, create:() => QuoteResponse()), 'BuyResponse': TypeInfo(TypeOf.Class, create:() => BuyResponse()), 'Buy': TypeInfo(TypeOf.Class, create:() => Buy()), });