BusinessApi

<back to all web services

GetSubscriptionPlansRequest

Business
Requires Authentication
Required role:Business
The following routes are available for this service:
GET/subscription/get_plans

library BusinessApi;
import 'package:servicestack/servicestack.dart';

class PlanDetailsFreeUntil implements IConvertible
{
    DateTime? stopAt;

    PlanDetailsFreeUntil({this.stopAt});
    PlanDetailsFreeUntil.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        stopAt = JsonConverters.fromJson(json['stopAt'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'stopAt': JsonConverters.toJson(stopAt,'DateTime',context!)
    };

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

enum Period
{
    Monthly,
    Yearly,
}

class PlanDetailsInvoice implements IConvertible
{
    Period? period;
    double? amount;
    String? currency;

    PlanDetailsInvoice({this.period,this.amount,this.currency});
    PlanDetailsInvoice.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        period = JsonConverters.fromJson(json['period'],'Period',context!);
        amount = JsonConverters.toDouble(json['amount']);
        currency = json['currency'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'period': JsonConverters.toJson(period,'Period',context!),
        'amount': amount,
        'currency': currency
    };

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

class PlanDetailsMonthlyStripe implements IConvertible
{
    double? amount;
    String? currency;
    int? freeStartUpMonths;

    PlanDetailsMonthlyStripe({this.amount,this.currency,this.freeStartUpMonths});
    PlanDetailsMonthlyStripe.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        amount = JsonConverters.toDouble(json['amount']);
        currency = json['currency'];
        freeStartUpMonths = json['freeStartUpMonths'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'amount': amount,
        'currency': currency,
        'freeStartUpMonths': freeStartUpMonths
    };

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

class PlanDetailsFreeOnClaim implements IConvertible
{
    int? months;

    PlanDetailsFreeOnClaim({this.months});
    PlanDetailsFreeOnClaim.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        months = json['months'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'months': months
    };

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

class SubscriptionPlanDetailsUnion implements IConvertible
{
    PlanDetailsFreeUntil? freeUntil;
    PlanDetailsInvoice? invoice;
    PlanDetailsMonthlyStripe? monthlyStripe;
    PlanDetailsFreeOnClaim? freeOnClaim;

    SubscriptionPlanDetailsUnion({this.freeUntil,this.invoice,this.monthlyStripe,this.freeOnClaim});
    SubscriptionPlanDetailsUnion.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        freeUntil = JsonConverters.fromJson(json['freeUntil'],'PlanDetailsFreeUntil',context!);
        invoice = JsonConverters.fromJson(json['invoice'],'PlanDetailsInvoice',context!);
        monthlyStripe = JsonConverters.fromJson(json['monthlyStripe'],'PlanDetailsMonthlyStripe',context!);
        freeOnClaim = JsonConverters.fromJson(json['freeOnClaim'],'PlanDetailsFreeOnClaim',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'freeUntil': JsonConverters.toJson(freeUntil,'PlanDetailsFreeUntil',context!),
        'invoice': JsonConverters.toJson(invoice,'PlanDetailsInvoice',context!),
        'monthlyStripe': JsonConverters.toJson(monthlyStripe,'PlanDetailsMonthlyStripe',context!),
        'freeOnClaim': JsonConverters.toJson(freeOnClaim,'PlanDetailsFreeOnClaim',context!)
    };

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

TypeContext _ctx = TypeContext(library: 'BusinessApi', types: <String, TypeInfo> {
    'PlanDetailsFreeUntil': TypeInfo(TypeOf.Class, create:() => PlanDetailsFreeUntil()),
    'Period': TypeInfo(TypeOf.Enum, enumValues:Period.values),
    'PlanDetailsInvoice': TypeInfo(TypeOf.Class, create:() => PlanDetailsInvoice()),
    'PlanDetailsMonthlyStripe': TypeInfo(TypeOf.Class, create:() => PlanDetailsMonthlyStripe()),
    'PlanDetailsFreeOnClaim': TypeInfo(TypeOf.Class, create:() => PlanDetailsFreeOnClaim()),
    'SubscriptionPlanDetailsUnion': TypeInfo(TypeOf.Class, create:() => SubscriptionPlanDetailsUnion()),
});

Dart GetSubscriptionPlansRequest 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 /subscription/get_plans HTTP/1.1 
Host: business-api.brovs.com 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<GetSubscriptionPlansResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BusinessApi.Dto">
  <SubscriptionPlan>
    <SubscriptionPlanDto>
      <CanBeSelectedByClient>false</CanBeSelectedByClient>
      <Id>0</Id>
      <Slug>String</Slug>
      <SubscriptionPlanDetails xmlns:d4p1="http://schemas.datacontract.org/2004/07/Entities.Common">
        <d4p1:FreeOnClaim>
          <d4p1:Months>0</d4p1:Months>
        </d4p1:FreeOnClaim>
        <d4p1:FreeUntil>
          <d4p1:StopAt>0001-01-01T00:00:00</d4p1:StopAt>
        </d4p1:FreeUntil>
        <d4p1:Invoice>
          <d4p1:Amount>0</d4p1:Amount>
          <d4p1:Currency>String</d4p1:Currency>
          <d4p1:Period>Monthly</d4p1:Period>
        </d4p1:Invoice>
        <d4p1:MonthlyStripe>
          <d4p1:Amount>0</d4p1:Amount>
          <d4p1:Currency>String</d4p1:Currency>
          <d4p1:FreeStartUpMonths>0</d4p1:FreeStartUpMonths>
        </d4p1:MonthlyStripe>
      </SubscriptionPlanDetails>
    </SubscriptionPlanDto>
  </SubscriptionPlan>
</GetSubscriptionPlansResponse>