ServiceStack Home (Live)

<back to all web services

Product

The following routes are available for this service:
GET/Product
GET/Product/{Id}
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<LicenseFeature> 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<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> 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<String, dynamic> 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 Product implements IConvertible
{
    int? id;
    String? name;
    DateTime? createdDate;
    DateTime? modifiedDate;
    List<Sku>? skus;
    bool? active;

    Product({this.id,this.name,this.createdDate,this.modifiedDate,this.skus,this.active});
    Product.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        name = json['name'];
        createdDate = JsonConverters.fromJson(json['createdDate'],'DateTime',context!);
        modifiedDate = JsonConverters.fromJson(json['modifiedDate'],'DateTime',context!);
        skus = JsonConverters.fromJson(json['skus'],'List<Sku>',context!);
        active = json['active'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'name': name,
        'createdDate': JsonConverters.toJson(createdDate,'DateTime',context!),
        'modifiedDate': JsonConverters.toJson(modifiedDate,'DateTime',context!),
        'skus': JsonConverters.toJson(skus,'List<Sku>',context!),
        'active': active
    };

    getTypeName() => "Product";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'account.servicestack.net', types: <String, TypeInfo> {
    '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()),
    'Product': TypeInfo(TypeOf.Class, create:() => Product()),
    'List<Sku>': TypeInfo(TypeOf.Class, create:() => <Sku>[]),
});

Dart Product DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /Product HTTP/1.1 
Host: account.servicestack.net 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<Product xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/MyApp.ServiceModel">
  <Active>false</Active>
  <CreatedDate>0001-01-01T00:00:00</CreatedDate>
  <Id>0</Id>
  <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
  <Name>String</Name>
  <Skus>
    <Sku>
      <Active>false</Active>
      <Code>String</Code>
      <CoresQty>0</CoresQty>
      <CreatedDate>0001-01-01T00:00:00</CreatedDate>
      <DiscountLabelOff>String</DiscountLabelOff>
      <DiscountOff>0</DiscountOff>
      <ExpiryDurationDays>0</ExpiryDurationDays>
      <Feature>None</Feature>
      <Id>0</Id>
      <IsPlan>false</IsPlan>
      <IsRenewal>false</IsRenewal>
      <LicenseType>Free</LicenseType>
      <MaxQty>0</MaxQty>
      <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
      <Name>String</Name>
      <Notes>String</Notes>
      <Plan>String</Plan>
      <Price>0</Price>
      <ProductId>0</ProductId>
      <SubscriptionDurationDays>0</SubscriptionDurationDays>
      <SupportQty>0</SupportQty>
      <TrialPeriodDays>0</TrialPeriodDays>
      <Type>Product</Type>
    </Sku>
  </Skus>
</Product>