TicketUserServices

<back to all web services

OwnerCardsPreviewDiscountRequest

Requires Authentication
Requires any of the roles:Admin, TeamAdmin, MobileApp, Admin, TeamAdmin, MobileAppRequires any of the permissions:ReadData, ReadData
The following routes are available for this service:
POST/OrderOwnerCards/previewDiscount
import 'package:servicestack/servicestack.dart';

class LocalizedMessage implements IConvertible
{
    String? Is;
    String? en;

    LocalizedMessage({this.Is,this.en});
    LocalizedMessage.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'is': Is,
        'en': en
    };

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

class DiscountSummary implements IConvertible
{
    String? type;
    double? value;

    DiscountSummary({this.type,this.value});
    DiscountSummary.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class DiscountLineResult implements IConvertible
{
    int? ticketTypeId;
    int? count;
    bool? applied;
    double? unitBefore;
    double? unitAfter;
    double? lineBefore;
    double? lineAfter;

    DiscountLineResult({this.ticketTypeId,this.count,this.applied,this.unitBefore,this.unitAfter,this.lineBefore,this.lineAfter});
    DiscountLineResult.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ticketTypeId = json['ticketTypeId'];
        count = json['count'];
        applied = json['applied'];
        unitBefore = JsonConverters.toDouble(json['unitBefore']);
        unitAfter = JsonConverters.toDouble(json['unitAfter']);
        lineBefore = JsonConverters.toDouble(json['lineBefore']);
        lineAfter = JsonConverters.toDouble(json['lineAfter']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ticketTypeId': ticketTypeId,
        'count': count,
        'applied': applied,
        'unitBefore': unitBefore,
        'unitAfter': unitAfter,
        'lineBefore': lineBefore,
        'lineAfter': lineAfter
    };

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

class PreviewDiscountResult implements IConvertible
{
    String? status;
    String? reason;
    LocalizedMessage? message;
    int? discountCodeId;
    int? discountCodeTypeId;
    DiscountSummary? discount;
    List<DiscountLineResult>? lines;
    double? subtotalBefore;
    double? subtotalAfter;
    double? totalSavings;
    String? currency;
    int? statusCode;

    PreviewDiscountResult({this.status,this.reason,this.message,this.discountCodeId,this.discountCodeTypeId,this.discount,this.lines,this.subtotalBefore,this.subtotalAfter,this.totalSavings,this.currency,this.statusCode});
    PreviewDiscountResult.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        status = json['status'];
        reason = json['reason'];
        message = JsonConverters.fromJson(json['message'],'LocalizedMessage',context!);
        discountCodeId = json['discountCodeId'];
        discountCodeTypeId = json['discountCodeTypeId'];
        discount = JsonConverters.fromJson(json['discount'],'DiscountSummary',context!);
        lines = JsonConverters.fromJson(json['lines'],'List<DiscountLineResult>',context!);
        subtotalBefore = JsonConverters.toDouble(json['subtotalBefore']);
        subtotalAfter = JsonConverters.toDouble(json['subtotalAfter']);
        totalSavings = JsonConverters.toDouble(json['totalSavings']);
        currency = json['currency'];
        statusCode = json['statusCode'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'status': status,
        'reason': reason,
        'message': JsonConverters.toJson(message,'LocalizedMessage',context!),
        'discountCodeId': discountCodeId,
        'discountCodeTypeId': discountCodeTypeId,
        'discount': JsonConverters.toJson(discount,'DiscountSummary',context!),
        'lines': JsonConverters.toJson(lines,'List<DiscountLineResult>',context!),
        'subtotalBefore': subtotalBefore,
        'subtotalAfter': subtotalAfter,
        'totalSavings': totalSavings,
        'currency': currency,
        'statusCode': statusCode
    };

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

class OwnerCardsPreviewDiscountRequest implements IConvertible
{
    String? code;
    List<int>? ownerCardTypeIds;
    String? fullPhoneNumber;
    bool? isSubscription;

    OwnerCardsPreviewDiscountRequest({this.code,this.ownerCardTypeIds,this.fullPhoneNumber,this.isSubscription});
    OwnerCardsPreviewDiscountRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        code = json['code'];
        ownerCardTypeIds = JsonConverters.fromJson(json['ownerCardTypeIds'],'List<int>',context!);
        fullPhoneNumber = json['fullPhoneNumber'];
        isSubscription = json['isSubscription'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'code': code,
        'ownerCardTypeIds': JsonConverters.toJson(ownerCardTypeIds,'List<int>',context!),
        'fullPhoneNumber': fullPhoneNumber,
        'isSubscription': isSubscription
    };

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

TypeContext _ctx = TypeContext(library: 'stubbur_app.azurewebsites.net', types: <String, TypeInfo> {
    'LocalizedMessage': TypeInfo(TypeOf.Class, create:() => LocalizedMessage()),
    'DiscountSummary': TypeInfo(TypeOf.Class, create:() => DiscountSummary()),
    'DiscountLineResult': TypeInfo(TypeOf.Class, create:() => DiscountLineResult()),
    'PreviewDiscountResult': TypeInfo(TypeOf.Class, create:() => PreviewDiscountResult()),
    'List<DiscountLineResult>': TypeInfo(TypeOf.Class, create:() => <DiscountLineResult>[]),
    'OwnerCardsPreviewDiscountRequest': TypeInfo(TypeOf.Class, create:() => OwnerCardsPreviewDiscountRequest()),
});

Dart OwnerCardsPreviewDiscountRequest 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.

POST /OrderOwnerCards/previewDiscount HTTP/1.1 
Host: stubbur-app.azurewebsites.net 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<OwnerCardsPreviewDiscountRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/TicketUserServices.ServiceModel">
  <Code>String</Code>
  <FullPhoneNumber>String</FullPhoneNumber>
  <IsSubscription>false</IsSubscription>
  <OwnerCardTypeIds xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:int>0</d2p1:int>
  </OwnerCardTypeIds>
</OwnerCardsPreviewDiscountRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<PreviewDiscountResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/TicketUserServices.ServiceModel">
  <Currency>String</Currency>
  <Discount>
    <Type>String</Type>
    <Value>0</Value>
  </Discount>
  <DiscountCodeId>0</DiscountCodeId>
  <DiscountCodeTypeId>0</DiscountCodeTypeId>
  <Lines>
    <DiscountLineResult>
      <Applied>false</Applied>
      <Count>0</Count>
      <LineAfter>0</LineAfter>
      <LineBefore>0</LineBefore>
      <TicketTypeId>0</TicketTypeId>
      <UnitAfter>0</UnitAfter>
      <UnitBefore>0</UnitBefore>
    </DiscountLineResult>
  </Lines>
  <Message>
    <En>String</En>
    <Is>String</Is>
  </Message>
  <Reason>String</Reason>
  <Status>String</Status>
  <StatusCode>0</StatusCode>
  <SubtotalAfter>0</SubtotalAfter>
  <SubtotalBefore>0</SubtotalBefore>
  <TotalSavings>0</TotalSavings>
</PreviewDiscountResult>