TicketUserServices

<back to all web services

SupportCustomer360Request

Requires Authentication
Requires the role:AdminRequires the permission:ReadData
The following routes are available for this service:
POST/Support/Customer360
import 'package:servicestack/servicestack.dart';

class SupportTicketRow implements IConvertible
{
    int? ticketId;
    String? ticketTokenId;
    int? eventId;
    String? event;
    DateTime? timeOfEventUTC;
    int? eventOwnerId;
    String? eventOwnerName;
    String? ticketStatus;
    String? ticketName;
    String? paymentMethodId;
    String? paymentId;
    String? paymentReference;
    DateTime? timestampBought;
    DateTime? timestampActivated;
    String? holderName;
    String? phoneVerificationNumber;
    String? paymentPhoneNumber;
    String? seatDisplayString;
    String? sectionName;
    String? rowName;
    String? seatName;
    double? totalPrice;
    int? count;
    int? ticketTransferredFrom;
    String? originalPhoneVerificationNumber;
    String? deviceId;
    bool? neverOpened;

    SupportTicketRow({this.ticketId,this.ticketTokenId,this.eventId,this.event,this.timeOfEventUTC,this.eventOwnerId,this.eventOwnerName,this.ticketStatus,this.ticketName,this.paymentMethodId,this.paymentId,this.paymentReference,this.timestampBought,this.timestampActivated,this.holderName,this.phoneVerificationNumber,this.paymentPhoneNumber,this.seatDisplayString,this.sectionName,this.rowName,this.seatName,this.totalPrice,this.count,this.ticketTransferredFrom,this.originalPhoneVerificationNumber,this.deviceId,this.neverOpened});
    SupportTicketRow.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ticketId = json['ticketId'];
        ticketTokenId = json['ticketTokenId'];
        eventId = json['eventId'];
        event = json['event'];
        timeOfEventUTC = JsonConverters.fromJson(json['timeOfEventUTC'],'DateTime',context!);
        eventOwnerId = json['eventOwnerId'];
        eventOwnerName = json['eventOwnerName'];
        ticketStatus = json['ticketStatus'];
        ticketName = json['ticketName'];
        paymentMethodId = json['paymentMethodId'];
        paymentId = json['paymentId'];
        paymentReference = json['paymentReference'];
        timestampBought = JsonConverters.fromJson(json['timestampBought'],'DateTime',context!);
        timestampActivated = JsonConverters.fromJson(json['timestampActivated'],'DateTime',context!);
        holderName = json['holderName'];
        phoneVerificationNumber = json['phoneVerificationNumber'];
        paymentPhoneNumber = json['paymentPhoneNumber'];
        seatDisplayString = json['seatDisplayString'];
        sectionName = json['sectionName'];
        rowName = json['rowName'];
        seatName = json['seatName'];
        totalPrice = JsonConverters.toDouble(json['totalPrice']);
        count = json['count'];
        ticketTransferredFrom = json['ticketTransferredFrom'];
        originalPhoneVerificationNumber = json['originalPhoneVerificationNumber'];
        deviceId = json['deviceId'];
        neverOpened = json['neverOpened'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ticketId': ticketId,
        'ticketTokenId': ticketTokenId,
        'eventId': eventId,
        'event': event,
        'timeOfEventUTC': JsonConverters.toJson(timeOfEventUTC,'DateTime',context!),
        'eventOwnerId': eventOwnerId,
        'eventOwnerName': eventOwnerName,
        'ticketStatus': ticketStatus,
        'ticketName': ticketName,
        'paymentMethodId': paymentMethodId,
        'paymentId': paymentId,
        'paymentReference': paymentReference,
        'timestampBought': JsonConverters.toJson(timestampBought,'DateTime',context!),
        'timestampActivated': JsonConverters.toJson(timestampActivated,'DateTime',context!),
        'holderName': holderName,
        'phoneVerificationNumber': phoneVerificationNumber,
        'paymentPhoneNumber': paymentPhoneNumber,
        'seatDisplayString': seatDisplayString,
        'sectionName': sectionName,
        'rowName': rowName,
        'seatName': seatName,
        'totalPrice': totalPrice,
        'count': count,
        'ticketTransferredFrom': ticketTransferredFrom,
        'originalPhoneVerificationNumber': originalPhoneVerificationNumber,
        'deviceId': deviceId,
        'neverOpened': neverOpened
    };

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

class SupportOwnerCardRow implements IConvertible
{
    int? id;
    int? ownerId;
    String? ownerName;
    int? ownerCardTypeId;
    String? ownerCardTypeName;
    String? holderName;
    String? holderEmail;
    String? phoneVerificationNumber;
    String? paymentPhoneNumber;
    String? paymentStatus;
    String? paymentMethodId;
    String? paymentId;
    String? paymentReference;
    DateTime? timeStampBoughtUTC;
    DateTime? cardValidFromUTC;
    DateTime? cardValidToUTC;
    int? initialMaxTickets;
    int? currentAvailableTickets;
    double? cardPrice;
    double? pricePaid;
    double? currentStoreCredit;

    SupportOwnerCardRow({this.id,this.ownerId,this.ownerName,this.ownerCardTypeId,this.ownerCardTypeName,this.holderName,this.holderEmail,this.phoneVerificationNumber,this.paymentPhoneNumber,this.paymentStatus,this.paymentMethodId,this.paymentId,this.paymentReference,this.timeStampBoughtUTC,this.cardValidFromUTC,this.cardValidToUTC,this.initialMaxTickets,this.currentAvailableTickets,this.cardPrice,this.pricePaid,this.currentStoreCredit});
    SupportOwnerCardRow.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        ownerId = json['ownerId'];
        ownerName = json['ownerName'];
        ownerCardTypeId = json['ownerCardTypeId'];
        ownerCardTypeName = json['ownerCardTypeName'];
        holderName = json['holderName'];
        holderEmail = json['holderEmail'];
        phoneVerificationNumber = json['phoneVerificationNumber'];
        paymentPhoneNumber = json['paymentPhoneNumber'];
        paymentStatus = json['paymentStatus'];
        paymentMethodId = json['paymentMethodId'];
        paymentId = json['paymentId'];
        paymentReference = json['paymentReference'];
        timeStampBoughtUTC = JsonConverters.fromJson(json['timeStampBoughtUTC'],'DateTime',context!);
        cardValidFromUTC = JsonConverters.fromJson(json['cardValidFromUTC'],'DateTime',context!);
        cardValidToUTC = JsonConverters.fromJson(json['cardValidToUTC'],'DateTime',context!);
        initialMaxTickets = json['initialMaxTickets'];
        currentAvailableTickets = json['currentAvailableTickets'];
        cardPrice = JsonConverters.toDouble(json['cardPrice']);
        pricePaid = JsonConverters.toDouble(json['pricePaid']);
        currentStoreCredit = JsonConverters.toDouble(json['currentStoreCredit']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'ownerId': ownerId,
        'ownerName': ownerName,
        'ownerCardTypeId': ownerCardTypeId,
        'ownerCardTypeName': ownerCardTypeName,
        'holderName': holderName,
        'holderEmail': holderEmail,
        'phoneVerificationNumber': phoneVerificationNumber,
        'paymentPhoneNumber': paymentPhoneNumber,
        'paymentStatus': paymentStatus,
        'paymentMethodId': paymentMethodId,
        'paymentId': paymentId,
        'paymentReference': paymentReference,
        'timeStampBoughtUTC': JsonConverters.toJson(timeStampBoughtUTC,'DateTime',context!),
        'cardValidFromUTC': JsonConverters.toJson(cardValidFromUTC,'DateTime',context!),
        'cardValidToUTC': JsonConverters.toJson(cardValidToUTC,'DateTime',context!),
        'initialMaxTickets': initialMaxTickets,
        'currentAvailableTickets': currentAvailableTickets,
        'cardPrice': cardPrice,
        'pricePaid': pricePaid,
        'currentStoreCredit': currentStoreCredit
    };

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

class WebshopOrderLine implements IConvertible
{
    int? id;
    int? orderId;
    int? productId;
    int? variantId;
    // @StringLength(200)
    String? productName;

    // @StringLength(50)
    String? size;

    // @StringLength(50)
    String? color;

    int? unitPriceMinor;
    int? quantity;
    int? lineTotalMinor;
    // @StringLength(20)
    String? status;

    int? legacyDetailId;
    DateTime? createdAt;

    WebshopOrderLine({this.id,this.orderId,this.productId,this.variantId,this.productName,this.size,this.color,this.unitPriceMinor,this.quantity,this.lineTotalMinor,this.status,this.legacyDetailId,this.createdAt});
    WebshopOrderLine.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        orderId = json['orderId'];
        productId = json['productId'];
        variantId = json['variantId'];
        productName = json['productName'];
        size = json['size'];
        color = json['color'];
        unitPriceMinor = json['unitPriceMinor'];
        quantity = json['quantity'];
        lineTotalMinor = json['lineTotalMinor'];
        status = json['status'];
        legacyDetailId = json['legacyDetailId'];
        createdAt = JsonConverters.fromJson(json['createdAt'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'orderId': orderId,
        'productId': productId,
        'variantId': variantId,
        'productName': productName,
        'size': size,
        'color': color,
        'unitPriceMinor': unitPriceMinor,
        'quantity': quantity,
        'lineTotalMinor': lineTotalMinor,
        'status': status,
        'legacyDetailId': legacyDetailId,
        'createdAt': JsonConverters.toJson(createdAt,'DateTime',context!)
    };

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

class SupportWebshopOrderRow implements IConvertible
{
    int? id;
    String? orderReference;
    int? ownerId;
    String? ownerName;
    String? status;
    int? totalMinor;
    int? deliveryFeeMinor;
    int? totalDiscountMinor;
    int? giftPaidMinor;
    String? currency;
    String? deliveryType;
    String? paymentMethodId;
    String? paymentId;
    String? paymentReference;
    DateTime? createdAt;
    DateTime? updatedAt;
    String? buyerName;
    String? buyerEmail;
    String? buyerPhone;
    List<WebshopOrderLine>? lines;

    SupportWebshopOrderRow({this.id,this.orderReference,this.ownerId,this.ownerName,this.status,this.totalMinor,this.deliveryFeeMinor,this.totalDiscountMinor,this.giftPaidMinor,this.currency,this.deliveryType,this.paymentMethodId,this.paymentId,this.paymentReference,this.createdAt,this.updatedAt,this.buyerName,this.buyerEmail,this.buyerPhone,this.lines});
    SupportWebshopOrderRow.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        orderReference = json['orderReference'];
        ownerId = json['ownerId'];
        ownerName = json['ownerName'];
        status = json['status'];
        totalMinor = json['totalMinor'];
        deliveryFeeMinor = json['deliveryFeeMinor'];
        totalDiscountMinor = json['totalDiscountMinor'];
        giftPaidMinor = json['giftPaidMinor'];
        currency = json['currency'];
        deliveryType = json['deliveryType'];
        paymentMethodId = json['paymentMethodId'];
        paymentId = json['paymentId'];
        paymentReference = json['paymentReference'];
        createdAt = JsonConverters.fromJson(json['createdAt'],'DateTime',context!);
        updatedAt = JsonConverters.fromJson(json['updatedAt'],'DateTime',context!);
        buyerName = json['buyerName'];
        buyerEmail = json['buyerEmail'];
        buyerPhone = json['buyerPhone'];
        lines = JsonConverters.fromJson(json['lines'],'List<WebshopOrderLine>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'orderReference': orderReference,
        'ownerId': ownerId,
        'ownerName': ownerName,
        'status': status,
        'totalMinor': totalMinor,
        'deliveryFeeMinor': deliveryFeeMinor,
        'totalDiscountMinor': totalDiscountMinor,
        'giftPaidMinor': giftPaidMinor,
        'currency': currency,
        'deliveryType': deliveryType,
        'paymentMethodId': paymentMethodId,
        'paymentId': paymentId,
        'paymentReference': paymentReference,
        'createdAt': JsonConverters.toJson(createdAt,'DateTime',context!),
        'updatedAt': JsonConverters.toJson(updatedAt,'DateTime',context!),
        'buyerName': buyerName,
        'buyerEmail': buyerEmail,
        'buyerPhone': buyerPhone,
        'lines': JsonConverters.toJson(lines,'List<WebshopOrderLine>',context!)
    };

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

class SupportGiftCardRow implements IConvertible
{
    int? id;
    String? codeLast4;
    String? codeMasked;
    String? status;
    String? scope;
    int? scopeOwnerId;
    String? scopeOwnerName;
    int? purchaseOwnerId;
    String? purchaseOwnerName;
    String? currency;
    int? initialValueMinor;
    int? currentBalanceMinor;
    DateTime? createdAt;
    DateTime? activatedAt;
    DateTime? expiresAt;
    String? purchasePaymentReference;
    String? paymentId;
    String? paymentMethodId;
    String? buyerName;
    String? buyerEmail;
    String? buyerPhone;

    SupportGiftCardRow({this.id,this.codeLast4,this.codeMasked,this.status,this.scope,this.scopeOwnerId,this.scopeOwnerName,this.purchaseOwnerId,this.purchaseOwnerName,this.currency,this.initialValueMinor,this.currentBalanceMinor,this.createdAt,this.activatedAt,this.expiresAt,this.purchasePaymentReference,this.paymentId,this.paymentMethodId,this.buyerName,this.buyerEmail,this.buyerPhone});
    SupportGiftCardRow.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        codeLast4 = json['codeLast4'];
        codeMasked = json['codeMasked'];
        status = json['status'];
        scope = json['scope'];
        scopeOwnerId = json['scopeOwnerId'];
        scopeOwnerName = json['scopeOwnerName'];
        purchaseOwnerId = json['purchaseOwnerId'];
        purchaseOwnerName = json['purchaseOwnerName'];
        currency = json['currency'];
        initialValueMinor = json['initialValueMinor'];
        currentBalanceMinor = json['currentBalanceMinor'];
        createdAt = JsonConverters.fromJson(json['createdAt'],'DateTime',context!);
        activatedAt = JsonConverters.fromJson(json['activatedAt'],'DateTime',context!);
        expiresAt = JsonConverters.fromJson(json['expiresAt'],'DateTime',context!);
        purchasePaymentReference = json['purchasePaymentReference'];
        paymentId = json['paymentId'];
        paymentMethodId = json['paymentMethodId'];
        buyerName = json['buyerName'];
        buyerEmail = json['buyerEmail'];
        buyerPhone = json['buyerPhone'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'codeLast4': codeLast4,
        'codeMasked': codeMasked,
        'status': status,
        'scope': scope,
        'scopeOwnerId': scopeOwnerId,
        'scopeOwnerName': scopeOwnerName,
        'purchaseOwnerId': purchaseOwnerId,
        'purchaseOwnerName': purchaseOwnerName,
        'currency': currency,
        'initialValueMinor': initialValueMinor,
        'currentBalanceMinor': currentBalanceMinor,
        'createdAt': JsonConverters.toJson(createdAt,'DateTime',context!),
        'activatedAt': JsonConverters.toJson(activatedAt,'DateTime',context!),
        'expiresAt': JsonConverters.toJson(expiresAt,'DateTime',context!),
        'purchasePaymentReference': purchasePaymentReference,
        'paymentId': paymentId,
        'paymentMethodId': paymentMethodId,
        'buyerName': buyerName,
        'buyerEmail': buyerEmail,
        'buyerPhone': buyerPhone
    };

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

class SupportSharedLinkRow implements IConvertible
{
    int? id;
    int? eventId;
    String? eventName;
    int? eventOwnerId;
    String? eventOwnerName;
    String? status;
    String? recipientPhone;
    String? recipientEmail;
    int? ticketCount;
    DateTime? createdAt;
    DateTime? validTo;
    DateTime? soldAt;
    int? soldTicketOrderId;

    SupportSharedLinkRow({this.id,this.eventId,this.eventName,this.eventOwnerId,this.eventOwnerName,this.status,this.recipientPhone,this.recipientEmail,this.ticketCount,this.createdAt,this.validTo,this.soldAt,this.soldTicketOrderId});
    SupportSharedLinkRow.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        eventId = json['eventId'];
        eventName = json['eventName'];
        eventOwnerId = json['eventOwnerId'];
        eventOwnerName = json['eventOwnerName'];
        status = json['status'];
        recipientPhone = json['recipientPhone'];
        recipientEmail = json['recipientEmail'];
        ticketCount = json['ticketCount'];
        createdAt = JsonConverters.fromJson(json['createdAt'],'DateTime',context!);
        validTo = JsonConverters.fromJson(json['validTo'],'DateTime',context!);
        soldAt = JsonConverters.fromJson(json['soldAt'],'DateTime',context!);
        soldTicketOrderId = json['soldTicketOrderId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'eventId': eventId,
        'eventName': eventName,
        'eventOwnerId': eventOwnerId,
        'eventOwnerName': eventOwnerName,
        'status': status,
        'recipientPhone': recipientPhone,
        'recipientEmail': recipientEmail,
        'ticketCount': ticketCount,
        'createdAt': JsonConverters.toJson(createdAt,'DateTime',context!),
        'validTo': JsonConverters.toJson(validTo,'DateTime',context!),
        'soldAt': JsonConverters.toJson(soldAt,'DateTime',context!),
        'soldTicketOrderId': soldTicketOrderId
    };

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

class SupportCustomerTotals implements IConvertible
{
    double? ticketSpend;
    double? ticketSpendLive;
    int? webshopSpendMinor;
    int? giftCardSpendMinor;

    SupportCustomerTotals({this.ticketSpend,this.ticketSpendLive,this.webshopSpendMinor,this.giftCardSpendMinor});
    SupportCustomerTotals.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ticketSpend = JsonConverters.toDouble(json['ticketSpend']);
        ticketSpendLive = JsonConverters.toDouble(json['ticketSpendLive']);
        webshopSpendMinor = json['webshopSpendMinor'];
        giftCardSpendMinor = json['giftCardSpendMinor'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ticketSpend': ticketSpend,
        'ticketSpendLive': ticketSpendLive,
        'webshopSpendMinor': webshopSpendMinor,
        'giftCardSpendMinor': giftCardSpendMinor
    };

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

class SupportCustomer360Result implements IConvertible
{
    String? phone;
    String? email;
    List<SupportTicketRow>? tickets;
    List<SupportOwnerCardRow>? ownerCards;
    List<SupportWebshopOrderRow>? webshopOrders;
    List<SupportGiftCardRow>? giftCards;
    List<SupportSharedLinkRow>? sharedTicketLinks;
    SupportCustomerTotals? totals;
    List<String>? warnings;
    int? statusCode;
    String? message;

    SupportCustomer360Result({this.phone,this.email,this.tickets,this.ownerCards,this.webshopOrders,this.giftCards,this.sharedTicketLinks,this.totals,this.warnings,this.statusCode,this.message});
    SupportCustomer360Result.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        phone = json['phone'];
        email = json['email'];
        tickets = JsonConverters.fromJson(json['tickets'],'List<SupportTicketRow>',context!);
        ownerCards = JsonConverters.fromJson(json['ownerCards'],'List<SupportOwnerCardRow>',context!);
        webshopOrders = JsonConverters.fromJson(json['webshopOrders'],'List<SupportWebshopOrderRow>',context!);
        giftCards = JsonConverters.fromJson(json['giftCards'],'List<SupportGiftCardRow>',context!);
        sharedTicketLinks = JsonConverters.fromJson(json['sharedTicketLinks'],'List<SupportSharedLinkRow>',context!);
        totals = JsonConverters.fromJson(json['totals'],'SupportCustomerTotals',context!);
        warnings = JsonConverters.fromJson(json['warnings'],'List<String>',context!);
        statusCode = json['statusCode'];
        message = json['message'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'phone': phone,
        'email': email,
        'tickets': JsonConverters.toJson(tickets,'List<SupportTicketRow>',context!),
        'ownerCards': JsonConverters.toJson(ownerCards,'List<SupportOwnerCardRow>',context!),
        'webshopOrders': JsonConverters.toJson(webshopOrders,'List<SupportWebshopOrderRow>',context!),
        'giftCards': JsonConverters.toJson(giftCards,'List<SupportGiftCardRow>',context!),
        'sharedTicketLinks': JsonConverters.toJson(sharedTicketLinks,'List<SupportSharedLinkRow>',context!),
        'totals': JsonConverters.toJson(totals,'SupportCustomerTotals',context!),
        'warnings': JsonConverters.toJson(warnings,'List<String>',context!),
        'statusCode': statusCode,
        'message': message
    };

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

class SupportCustomer360Request implements IConvertible
{
    String? phone;
    String? email;

    SupportCustomer360Request({this.phone,this.email});
    SupportCustomer360Request.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

TypeContext _ctx = TypeContext(library: 'stubbur_app.azurewebsites.net', types: <String, TypeInfo> {
    'SupportTicketRow': TypeInfo(TypeOf.Class, create:() => SupportTicketRow()),
    'SupportOwnerCardRow': TypeInfo(TypeOf.Class, create:() => SupportOwnerCardRow()),
    'WebshopOrderLine': TypeInfo(TypeOf.Class, create:() => WebshopOrderLine()),
    'SupportWebshopOrderRow': TypeInfo(TypeOf.Class, create:() => SupportWebshopOrderRow()),
    'List<WebshopOrderLine>': TypeInfo(TypeOf.Class, create:() => <WebshopOrderLine>[]),
    'SupportGiftCardRow': TypeInfo(TypeOf.Class, create:() => SupportGiftCardRow()),
    'SupportSharedLinkRow': TypeInfo(TypeOf.Class, create:() => SupportSharedLinkRow()),
    'SupportCustomerTotals': TypeInfo(TypeOf.Class, create:() => SupportCustomerTotals()),
    'SupportCustomer360Result': TypeInfo(TypeOf.Class, create:() => SupportCustomer360Result()),
    'List<SupportTicketRow>': TypeInfo(TypeOf.Class, create:() => <SupportTicketRow>[]),
    'List<SupportOwnerCardRow>': TypeInfo(TypeOf.Class, create:() => <SupportOwnerCardRow>[]),
    'List<SupportWebshopOrderRow>': TypeInfo(TypeOf.Class, create:() => <SupportWebshopOrderRow>[]),
    'List<SupportGiftCardRow>': TypeInfo(TypeOf.Class, create:() => <SupportGiftCardRow>[]),
    'List<SupportSharedLinkRow>': TypeInfo(TypeOf.Class, create:() => <SupportSharedLinkRow>[]),
    'SupportCustomer360Request': TypeInfo(TypeOf.Class, create:() => SupportCustomer360Request()),
});

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

POST /Support/Customer360 HTTP/1.1 
Host: stubbur-app.azurewebsites.net 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"phone":"String","email":"String"}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"phone":"String","email":"String","tickets":[{"ticketId":0,"ticketTokenId":"String","eventId":0,"event":"String","timeOfEventUTC":"0001-01-01T00:00:00.0000000","eventOwnerId":0,"eventOwnerName":"String","ticketStatus":"String","ticketName":"String","paymentMethodId":"String","paymentId":"String","paymentReference":"String","timestampBought":"0001-01-01T00:00:00.0000000","timestampActivated":"0001-01-01T00:00:00.0000000","holderName":"String","phoneVerificationNumber":"String","paymentPhoneNumber":"String","seatDisplayString":"String","sectionName":"String","rowName":"String","seatName":"String","totalPrice":0,"count":0,"ticketTransferredFrom":0,"originalPhoneVerificationNumber":"String","deviceId":"String","neverOpened":false}],"ownerCards":[{"id":0,"ownerId":0,"ownerName":"String","ownerCardTypeId":0,"ownerCardTypeName":"String","holderName":"String","holderEmail":"String","phoneVerificationNumber":"String","paymentPhoneNumber":"String","paymentStatus":"String","paymentMethodId":"String","paymentId":"String","paymentReference":"String","timeStampBoughtUTC":"0001-01-01T00:00:00.0000000","cardValidFromUTC":"0001-01-01T00:00:00.0000000","cardValidToUTC":"0001-01-01T00:00:00.0000000","initialMaxTickets":0,"currentAvailableTickets":0,"cardPrice":0,"pricePaid":0,"currentStoreCredit":0}],"webshopOrders":[{"id":0,"orderReference":"String","ownerId":0,"ownerName":"String","status":"String","totalMinor":0,"deliveryFeeMinor":0,"totalDiscountMinor":0,"giftPaidMinor":0,"currency":"String","deliveryType":"String","paymentMethodId":"String","paymentId":"String","paymentReference":"String","createdAt":"0001-01-01T00:00:00.0000000","updatedAt":"0001-01-01T00:00:00.0000000","buyerName":"String","buyerEmail":"String","buyerPhone":"String","lines":[{"id":0,"orderId":0,"productId":0,"variantId":0,"productName":"String","size":"String","color":"String","unitPriceMinor":0,"quantity":0,"lineTotalMinor":0,"status":"String","legacyDetailId":0,"createdAt":"0001-01-01T00:00:00.0000000"}]}],"giftCards":[{"id":0,"codeLast4":"String","codeMasked":"String","status":"String","scope":"String","scopeOwnerId":0,"scopeOwnerName":"String","purchaseOwnerId":0,"purchaseOwnerName":"String","currency":"String","initialValueMinor":0,"currentBalanceMinor":0,"createdAt":"0001-01-01T00:00:00.0000000","activatedAt":"0001-01-01T00:00:00.0000000","expiresAt":"0001-01-01T00:00:00.0000000","purchasePaymentReference":"String","paymentId":"String","paymentMethodId":"String","buyerName":"String","buyerEmail":"String","buyerPhone":"String"}],"sharedTicketLinks":[{"id":0,"eventId":0,"eventName":"String","eventOwnerId":0,"eventOwnerName":"String","status":"String","recipientPhone":"String","recipientEmail":"String","ticketCount":0,"createdAt":"0001-01-01T00:00:00.0000000","validTo":"0001-01-01T00:00:00.0000000","soldAt":"0001-01-01T00:00:00.0000000","soldTicketOrderId":0}],"totals":{"ticketSpend":0,"ticketSpendLive":0,"webshopSpendMinor":0,"giftCardSpendMinor":0},"warnings":["String"],"statusCode":0,"message":"String"}