BackofficeApi

<back to all web services

GetSubscriptionPlansRequest

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

library BackofficeApi;
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: 'BackofficeApi', 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 .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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: backoffice-api.brovs.com 
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"subscriptionPlans":[{"id":0,"canBeSelectedByClient":false,"slug":"String","subscriptionPlanDetails":{"freeUntil":{"stopAt":"0001-01-01T00:00:00.0000000Z"},"invoice":{"period":"Monthly","amount":0,"currency":"String"},"monthlyStripe":{"amount":0,"currency":"String","freeStartUpMonths":0},"freeOnClaim":{"months":0}}}]}