TicketUserServices

<back to all web services

OwnerCardsUpgradeCandidatesRequest

Requires Authentication
Requires any of the roles:Admin, TeamAdminRequires the permission:ReadData
The following routes are available for this service:
POST/OrderOwnerCards/upgrade/candidatesLive owner cards of a verified phone and the card types each may be upgraded to (rules U1-U10)
import 'package:servicestack/servicestack.dart';

class OwnerCardUpgradeResultBase implements IConvertible
{
    int? statusCode;
    String? message;
    String? reason;

    OwnerCardUpgradeResultBase({this.statusCode,this.message,this.reason});
    OwnerCardUpgradeResultBase.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'statusCode': statusCode,
        'message': message,
        'reason': reason
    };

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

class OwnerCardUpgradeTarget implements IConvertible
{
    int? ownerCardTypeId;
    String? name;
    String? description;
    String? imageUrl;
    int? price;
    int? delta;
    DateTime? validFromUTC;
    DateTime? validToUTC;

    OwnerCardUpgradeTarget({this.ownerCardTypeId,this.name,this.description,this.imageUrl,this.price,this.delta,this.validFromUTC,this.validToUTC});
    OwnerCardUpgradeTarget.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ownerCardTypeId = json['ownerCardTypeId'];
        name = json['name'];
        description = json['description'];
        imageUrl = json['imageUrl'];
        price = json['price'];
        delta = json['delta'];
        validFromUTC = JsonConverters.fromJson(json['validFromUTC'],'DateTime',context!);
        validToUTC = JsonConverters.fromJson(json['validToUTC'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ownerCardTypeId': ownerCardTypeId,
        'name': name,
        'description': description,
        'imageUrl': imageUrl,
        'price': price,
        'delta': delta,
        'validFromUTC': JsonConverters.toJson(validFromUTC,'DateTime',context!),
        'validToUTC': JsonConverters.toJson(validToUTC,'DateTime',context!)
    };

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

class OwnerCardUpgradeSource implements IConvertible
{
    int? sourceOwnerCardId;
    int? ownerId;
    int? ownerCardTypeId;
    String? typeName;
    int? pricePaid;
    int? cardPrice;
    DateTime? cardValidFromUTC;
    DateTime? cardValidToUTC;
    String? paymentStatus;
    bool? eligible;
    int? reasonCode;
    String? reason;
    List<OwnerCardUpgradeTarget>? candidates;

    OwnerCardUpgradeSource({this.sourceOwnerCardId,this.ownerId,this.ownerCardTypeId,this.typeName,this.pricePaid,this.cardPrice,this.cardValidFromUTC,this.cardValidToUTC,this.paymentStatus,this.eligible,this.reasonCode,this.reason,this.candidates});
    OwnerCardUpgradeSource.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        sourceOwnerCardId = json['sourceOwnerCardId'];
        ownerId = json['ownerId'];
        ownerCardTypeId = json['ownerCardTypeId'];
        typeName = json['typeName'];
        pricePaid = json['pricePaid'];
        cardPrice = json['cardPrice'];
        cardValidFromUTC = JsonConverters.fromJson(json['cardValidFromUTC'],'DateTime',context!);
        cardValidToUTC = JsonConverters.fromJson(json['cardValidToUTC'],'DateTime',context!);
        paymentStatus = json['paymentStatus'];
        eligible = json['eligible'];
        reasonCode = json['reasonCode'];
        reason = json['reason'];
        candidates = JsonConverters.fromJson(json['candidates'],'List<OwnerCardUpgradeTarget>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'sourceOwnerCardId': sourceOwnerCardId,
        'ownerId': ownerId,
        'ownerCardTypeId': ownerCardTypeId,
        'typeName': typeName,
        'pricePaid': pricePaid,
        'cardPrice': cardPrice,
        'cardValidFromUTC': JsonConverters.toJson(cardValidFromUTC,'DateTime',context!),
        'cardValidToUTC': JsonConverters.toJson(cardValidToUTC,'DateTime',context!),
        'paymentStatus': paymentStatus,
        'eligible': eligible,
        'reasonCode': reasonCode,
        'reason': reason,
        'candidates': JsonConverters.toJson(candidates,'List<OwnerCardUpgradeTarget>',context!)
    };

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

class OwnerCardsUpgradeCandidatesResult extends OwnerCardUpgradeResultBase implements IConvertible
{
    bool? enabled;
    List<OwnerCardUpgradeSource>? cards;

    OwnerCardsUpgradeCandidatesResult({this.enabled,this.cards});
    OwnerCardsUpgradeCandidatesResult.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        enabled = json['enabled'];
        cards = JsonConverters.fromJson(json['cards'],'List<OwnerCardUpgradeSource>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'enabled': enabled,
        'cards': JsonConverters.toJson(cards,'List<OwnerCardUpgradeSource>',context!)
    });

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

class OwnerCardsUpgradeCandidatesRequest implements IConvertible
{
    String? buyerPhone;
    int? sourceOwnerCardId;

    OwnerCardsUpgradeCandidatesRequest({this.buyerPhone,this.sourceOwnerCardId});
    OwnerCardsUpgradeCandidatesRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

TypeContext _ctx = TypeContext(library: 'stubbur_app.azurewebsites.net', types: <String, TypeInfo> {
    'OwnerCardUpgradeResultBase': TypeInfo(TypeOf.Class, create:() => OwnerCardUpgradeResultBase()),
    'OwnerCardUpgradeTarget': TypeInfo(TypeOf.Class, create:() => OwnerCardUpgradeTarget()),
    'OwnerCardUpgradeSource': TypeInfo(TypeOf.Class, create:() => OwnerCardUpgradeSource()),
    'List<OwnerCardUpgradeTarget>': TypeInfo(TypeOf.Class, create:() => <OwnerCardUpgradeTarget>[]),
    'OwnerCardsUpgradeCandidatesResult': TypeInfo(TypeOf.Class, create:() => OwnerCardsUpgradeCandidatesResult()),
    'List<OwnerCardUpgradeSource>': TypeInfo(TypeOf.Class, create:() => <OwnerCardUpgradeSource>[]),
    'OwnerCardsUpgradeCandidatesRequest': TypeInfo(TypeOf.Class, create:() => OwnerCardsUpgradeCandidatesRequest()),
});

Dart OwnerCardsUpgradeCandidatesRequest DTOs

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

HTTP + CSV

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

POST /OrderOwnerCards/upgrade/candidates HTTP/1.1 
Host: stubbur-app.azurewebsites.net 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"buyerPhone":"String","sourceOwnerCardId":0}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"enabled":false,"cards":[{"sourceOwnerCardId":0,"ownerId":0,"ownerCardTypeId":0,"typeName":"String","pricePaid":0,"cardPrice":0,"cardValidFromUTC":"0001-01-01T00:00:00.0000000","cardValidToUTC":"0001-01-01T00:00:00.0000000","paymentStatus":"String","eligible":false,"reasonCode":0,"reason":"String","candidates":[{"ownerCardTypeId":0,"name":"String","description":"String","imageUrl":"String","price":0,"delta":0,"validFromUTC":"0001-01-01T00:00:00.0000000","validToUTC":"0001-01-01T00:00:00.0000000"}]}],"statusCode":0,"message":"String","reason":"String"}