TicketUserServices

<back to all web services

RefreshmentsOverviewRequest

Requires Authentication
Requires any of the roles:Admin, TeamAdminRequired permission:Sales.Total
The following routes are available for this service:
POST/sales/refreshments/overview
import 'package:servicestack/servicestack.dart';

class RefreshmentsKpis implements IConvertible
{
    double? revenue;
    double? refunded;
    int? units;
    int? orders;
    double? aov;
    double? unitsPerOrder;
    int? attendance;
    double? perCap;

    RefreshmentsKpis({this.revenue,this.refunded,this.units,this.orders,this.aov,this.unitsPerOrder,this.attendance,this.perCap});
    RefreshmentsKpis.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        revenue = JsonConverters.toDouble(json['revenue']);
        refunded = JsonConverters.toDouble(json['refunded']);
        units = json['units'];
        orders = json['orders'];
        aov = JsonConverters.toDouble(json['aov']);
        unitsPerOrder = JsonConverters.toDouble(json['unitsPerOrder']);
        attendance = json['attendance'];
        perCap = JsonConverters.toDouble(json['perCap']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'revenue': revenue,
        'refunded': refunded,
        'units': units,
        'orders': orders,
        'aov': aov,
        'unitsPerOrder': unitsPerOrder,
        'attendance': attendance,
        'perCap': perCap
    };

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

class KpiDelta implements IConvertible
{
    double? abs;
    double? pct;
    String? dir;

    KpiDelta({this.abs,this.pct,this.dir});
    KpiDelta.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'abs': abs,
        'pct': pct,
        'dir': dir
    };

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

class RefreshmentsDeltas implements IConvertible
{
    KpiDelta? revenue;
    KpiDelta? refunded;
    KpiDelta? units;
    KpiDelta? orders;
    KpiDelta? aov;
    KpiDelta? perCap;

    RefreshmentsDeltas({this.revenue,this.refunded,this.units,this.orders,this.aov,this.perCap});
    RefreshmentsDeltas.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        revenue = JsonConverters.fromJson(json['revenue'],'KpiDelta',context!);
        refunded = JsonConverters.fromJson(json['refunded'],'KpiDelta',context!);
        units = JsonConverters.fromJson(json['units'],'KpiDelta',context!);
        orders = JsonConverters.fromJson(json['orders'],'KpiDelta',context!);
        aov = JsonConverters.fromJson(json['aov'],'KpiDelta',context!);
        perCap = JsonConverters.fromJson(json['perCap'],'KpiDelta',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'revenue': JsonConverters.toJson(revenue,'KpiDelta',context!),
        'refunded': JsonConverters.toJson(refunded,'KpiDelta',context!),
        'units': JsonConverters.toJson(units,'KpiDelta',context!),
        'orders': JsonConverters.toJson(orders,'KpiDelta',context!),
        'aov': JsonConverters.toJson(aov,'KpiDelta',context!),
        'perCap': JsonConverters.toJson(perCap,'KpiDelta',context!)
    };

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

class SalesTrendBucket implements IConvertible
{
    DateTime? bucket;
    double? revenue;
    int? tickets;

    SalesTrendBucket({this.bucket,this.revenue,this.tickets});
    SalesTrendBucket.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class RefreshmentsProduct implements IConvertible
{
    int? ticketTypeId;
    String? name;
    int? units;
    double? revenue;
    int? orders;
    DateTime? lastSoldAt;

    RefreshmentsProduct({this.ticketTypeId,this.name,this.units,this.revenue,this.orders,this.lastSoldAt});
    RefreshmentsProduct.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ticketTypeId = json['ticketTypeId'];
        name = json['name'];
        units = json['units'];
        revenue = JsonConverters.toDouble(json['revenue']);
        orders = json['orders'];
        lastSoldAt = JsonConverters.fromJson(json['lastSoldAt'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ticketTypeId': ticketTypeId,
        'name': name,
        'units': units,
        'revenue': revenue,
        'orders': orders,
        'lastSoldAt': JsonConverters.toJson(lastSoldAt,'DateTime',context!)
    };

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

class RefreshmentsEventRow implements IConvertible
{
    int? eventId;
    String? eventName;
    DateTime? eventDate;
    double? revenue;
    int? units;
    int? orders;
    int? attendance;
    double? perCap;

    RefreshmentsEventRow({this.eventId,this.eventName,this.eventDate,this.revenue,this.units,this.orders,this.attendance,this.perCap});
    RefreshmentsEventRow.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        eventId = json['eventId'];
        eventName = json['eventName'];
        eventDate = JsonConverters.fromJson(json['eventDate'],'DateTime',context!);
        revenue = JsonConverters.toDouble(json['revenue']);
        units = json['units'];
        orders = json['orders'];
        attendance = json['attendance'];
        perCap = JsonConverters.toDouble(json['perCap']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'eventId': eventId,
        'eventName': eventName,
        'eventDate': JsonConverters.toJson(eventDate,'DateTime',context!),
        'revenue': revenue,
        'units': units,
        'orders': orders,
        'attendance': attendance,
        'perCap': perCap
    };

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

class SalesHourBucket implements IConvertible
{
    int? hour;
    double? revenue;
    int? orders;
    int? tickets;

    SalesHourBucket({this.hour,this.revenue,this.orders,this.tickets});
    SalesHourBucket.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        hour = json['hour'];
        revenue = JsonConverters.toDouble(json['revenue']);
        orders = json['orders'];
        tickets = json['tickets'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'hour': hour,
        'revenue': revenue,
        'orders': orders,
        'tickets': tickets
    };

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

class SalesDowBucket implements IConvertible
{
    int? dow;
    double? revenue;
    int? orders;
    int? tickets;

    SalesDowBucket({this.dow,this.revenue,this.orders,this.tickets});
    SalesDowBucket.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        dow = json['dow'];
        revenue = JsonConverters.toDouble(json['revenue']);
        orders = json['orders'];
        tickets = json['tickets'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'dow': dow,
        'revenue': revenue,
        'orders': orders,
        'tickets': tickets
    };

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

class RefreshmentsPaymentMethodRow implements IConvertible
{
    String? paymentMethodId;
    double? revenue;
    int? units;
    int? orders;

    RefreshmentsPaymentMethodRow({this.paymentMethodId,this.revenue,this.units,this.orders});
    RefreshmentsPaymentMethodRow.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        paymentMethodId = json['paymentMethodId'];
        revenue = JsonConverters.toDouble(json['revenue']);
        units = json['units'];
        orders = json['orders'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'paymentMethodId': paymentMethodId,
        'revenue': revenue,
        'units': units,
        'orders': orders
    };

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

class RefreshmentsRecentOrder implements IConvertible
{
    int? ticketId;
    DateTime? createdAt;
    String? eventName;
    double? amount;
    int? units;
    String? paymentMethodId;

    RefreshmentsRecentOrder({this.ticketId,this.createdAt,this.eventName,this.amount,this.units,this.paymentMethodId});
    RefreshmentsRecentOrder.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ticketId = json['ticketId'];
        createdAt = JsonConverters.fromJson(json['createdAt'],'DateTime',context!);
        eventName = json['eventName'];
        amount = JsonConverters.toDouble(json['amount']);
        units = json['units'];
        paymentMethodId = json['paymentMethodId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ticketId': ticketId,
        'createdAt': JsonConverters.toJson(createdAt,'DateTime',context!),
        'eventName': eventName,
        'amount': amount,
        'units': units,
        'paymentMethodId': paymentMethodId
    };

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

class RefreshmentsOverviewResult implements IConvertible
{
    RefreshmentsKpis? current;
    RefreshmentsKpis? previous;
    RefreshmentsDeltas? delta;
    List<SalesTrendBucket>? trend;
    List<SalesTrendBucket>? previousTrend;
    List<RefreshmentsProduct>? products;
    List<RefreshmentsEventRow>? events;
    List<SalesHourBucket>? byHourOfDay;
    List<SalesDowBucket>? byDayOfWeek;
    List<RefreshmentsPaymentMethodRow>? byPaymentMethod;
    List<RefreshmentsRecentOrder>? recentOrders;
    bool? hasAnyDataEver;
    String? bucket;
    DateTime? freshnessUtc;
    int? statusCode;
    String? message;

    RefreshmentsOverviewResult({this.current,this.previous,this.delta,this.trend,this.previousTrend,this.products,this.events,this.byHourOfDay,this.byDayOfWeek,this.byPaymentMethod,this.recentOrders,this.hasAnyDataEver,this.bucket,this.freshnessUtc,this.statusCode,this.message});
    RefreshmentsOverviewResult.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        current = JsonConverters.fromJson(json['current'],'RefreshmentsKpis',context!);
        previous = JsonConverters.fromJson(json['previous'],'RefreshmentsKpis',context!);
        delta = JsonConverters.fromJson(json['delta'],'RefreshmentsDeltas',context!);
        trend = JsonConverters.fromJson(json['trend'],'List<SalesTrendBucket>',context!);
        previousTrend = JsonConverters.fromJson(json['previousTrend'],'List<SalesTrendBucket>',context!);
        products = JsonConverters.fromJson(json['products'],'List<RefreshmentsProduct>',context!);
        events = JsonConverters.fromJson(json['events'],'List<RefreshmentsEventRow>',context!);
        byHourOfDay = JsonConverters.fromJson(json['byHourOfDay'],'List<SalesHourBucket>',context!);
        byDayOfWeek = JsonConverters.fromJson(json['byDayOfWeek'],'List<SalesDowBucket>',context!);
        byPaymentMethod = JsonConverters.fromJson(json['byPaymentMethod'],'List<RefreshmentsPaymentMethodRow>',context!);
        recentOrders = JsonConverters.fromJson(json['recentOrders'],'List<RefreshmentsRecentOrder>',context!);
        hasAnyDataEver = json['hasAnyDataEver'];
        bucket = json['bucket'];
        freshnessUtc = JsonConverters.fromJson(json['freshnessUtc'],'DateTime',context!);
        statusCode = json['statusCode'];
        message = json['message'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'current': JsonConverters.toJson(current,'RefreshmentsKpis',context!),
        'previous': JsonConverters.toJson(previous,'RefreshmentsKpis',context!),
        'delta': JsonConverters.toJson(delta,'RefreshmentsDeltas',context!),
        'trend': JsonConverters.toJson(trend,'List<SalesTrendBucket>',context!),
        'previousTrend': JsonConverters.toJson(previousTrend,'List<SalesTrendBucket>',context!),
        'products': JsonConverters.toJson(products,'List<RefreshmentsProduct>',context!),
        'events': JsonConverters.toJson(events,'List<RefreshmentsEventRow>',context!),
        'byHourOfDay': JsonConverters.toJson(byHourOfDay,'List<SalesHourBucket>',context!),
        'byDayOfWeek': JsonConverters.toJson(byDayOfWeek,'List<SalesDowBucket>',context!),
        'byPaymentMethod': JsonConverters.toJson(byPaymentMethod,'List<RefreshmentsPaymentMethodRow>',context!),
        'recentOrders': JsonConverters.toJson(recentOrders,'List<RefreshmentsRecentOrder>',context!),
        'hasAnyDataEver': hasAnyDataEver,
        'bucket': bucket,
        'freshnessUtc': JsonConverters.toJson(freshnessUtc,'DateTime',context!),
        'statusCode': statusCode,
        'message': message
    };

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

class RefreshmentsOverviewRequest implements IConvertible
{
    int? ownerId;
    int? seriesId;
    DateTime? fromUtc;
    DateTime? toUtc;
    DateTime? compareFromUtc;
    DateTime? compareToUtc;
    String? bucket;
    int? topEventsLimit;
    int? recentOrdersLimit;

    RefreshmentsOverviewRequest({this.ownerId,this.seriesId,this.fromUtc,this.toUtc,this.compareFromUtc,this.compareToUtc,this.bucket,this.topEventsLimit,this.recentOrdersLimit});
    RefreshmentsOverviewRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ownerId = json['ownerId'];
        seriesId = json['seriesId'];
        fromUtc = JsonConverters.fromJson(json['fromUtc'],'DateTime',context!);
        toUtc = JsonConverters.fromJson(json['toUtc'],'DateTime',context!);
        compareFromUtc = JsonConverters.fromJson(json['compareFromUtc'],'DateTime',context!);
        compareToUtc = JsonConverters.fromJson(json['compareToUtc'],'DateTime',context!);
        bucket = json['bucket'];
        topEventsLimit = json['topEventsLimit'];
        recentOrdersLimit = json['recentOrdersLimit'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ownerId': ownerId,
        'seriesId': seriesId,
        'fromUtc': JsonConverters.toJson(fromUtc,'DateTime',context!),
        'toUtc': JsonConverters.toJson(toUtc,'DateTime',context!),
        'compareFromUtc': JsonConverters.toJson(compareFromUtc,'DateTime',context!),
        'compareToUtc': JsonConverters.toJson(compareToUtc,'DateTime',context!),
        'bucket': bucket,
        'topEventsLimit': topEventsLimit,
        'recentOrdersLimit': recentOrdersLimit
    };

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

TypeContext _ctx = TypeContext(library: 'stubbur_app.azurewebsites.net', types: <String, TypeInfo> {
    'RefreshmentsKpis': TypeInfo(TypeOf.Class, create:() => RefreshmentsKpis()),
    'KpiDelta': TypeInfo(TypeOf.Class, create:() => KpiDelta()),
    'RefreshmentsDeltas': TypeInfo(TypeOf.Class, create:() => RefreshmentsDeltas()),
    'SalesTrendBucket': TypeInfo(TypeOf.Class, create:() => SalesTrendBucket()),
    'RefreshmentsProduct': TypeInfo(TypeOf.Class, create:() => RefreshmentsProduct()),
    'RefreshmentsEventRow': TypeInfo(TypeOf.Class, create:() => RefreshmentsEventRow()),
    'SalesHourBucket': TypeInfo(TypeOf.Class, create:() => SalesHourBucket()),
    'SalesDowBucket': TypeInfo(TypeOf.Class, create:() => SalesDowBucket()),
    'RefreshmentsPaymentMethodRow': TypeInfo(TypeOf.Class, create:() => RefreshmentsPaymentMethodRow()),
    'RefreshmentsRecentOrder': TypeInfo(TypeOf.Class, create:() => RefreshmentsRecentOrder()),
    'RefreshmentsOverviewResult': TypeInfo(TypeOf.Class, create:() => RefreshmentsOverviewResult()),
    'List<SalesTrendBucket>': TypeInfo(TypeOf.Class, create:() => <SalesTrendBucket>[]),
    'List<RefreshmentsProduct>': TypeInfo(TypeOf.Class, create:() => <RefreshmentsProduct>[]),
    'List<RefreshmentsEventRow>': TypeInfo(TypeOf.Class, create:() => <RefreshmentsEventRow>[]),
    'List<SalesHourBucket>': TypeInfo(TypeOf.Class, create:() => <SalesHourBucket>[]),
    'List<SalesDowBucket>': TypeInfo(TypeOf.Class, create:() => <SalesDowBucket>[]),
    'List<RefreshmentsPaymentMethodRow>': TypeInfo(TypeOf.Class, create:() => <RefreshmentsPaymentMethodRow>[]),
    'List<RefreshmentsRecentOrder>': TypeInfo(TypeOf.Class, create:() => <RefreshmentsRecentOrder>[]),
    'RefreshmentsOverviewRequest': TypeInfo(TypeOf.Class, create:() => RefreshmentsOverviewRequest()),
});

Dart RefreshmentsOverviewRequest 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 /sales/refreshments/overview HTTP/1.1 
Host: stubbur-app.azurewebsites.net 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<RefreshmentsOverviewRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/TicketUserServices.ServiceModel">
  <Bucket>String</Bucket>
  <CompareFromUtc>0001-01-01T00:00:00</CompareFromUtc>
  <CompareToUtc>0001-01-01T00:00:00</CompareToUtc>
  <FromUtc>0001-01-01T00:00:00</FromUtc>
  <OwnerId>0</OwnerId>
  <RecentOrdersLimit>0</RecentOrdersLimit>
  <SeriesId>0</SeriesId>
  <ToUtc>0001-01-01T00:00:00</ToUtc>
  <TopEventsLimit>0</TopEventsLimit>
</RefreshmentsOverviewRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<RefreshmentsOverviewResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/TicketUserServices.ServiceModel">
  <Bucket>String</Bucket>
  <ByDayOfWeek>
    <SalesDowBucket>
      <Dow>0</Dow>
      <Orders>0</Orders>
      <Revenue>0</Revenue>
      <Tickets>0</Tickets>
    </SalesDowBucket>
  </ByDayOfWeek>
  <ByHourOfDay>
    <SalesHourBucket>
      <Hour>0</Hour>
      <Orders>0</Orders>
      <Revenue>0</Revenue>
      <Tickets>0</Tickets>
    </SalesHourBucket>
  </ByHourOfDay>
  <ByPaymentMethod>
    <RefreshmentsPaymentMethodRow>
      <Orders>0</Orders>
      <PaymentMethodId>String</PaymentMethodId>
      <Revenue>0</Revenue>
      <Units>0</Units>
    </RefreshmentsPaymentMethodRow>
  </ByPaymentMethod>
  <Current>
    <Aov>0</Aov>
    <Attendance>0</Attendance>
    <Orders>0</Orders>
    <PerCap>0</PerCap>
    <Refunded>0</Refunded>
    <Revenue>0</Revenue>
    <Units>0</Units>
    <UnitsPerOrder>0</UnitsPerOrder>
  </Current>
  <Delta>
    <Aov>
      <Abs>0</Abs>
      <Dir>String</Dir>
      <Pct>0</Pct>
    </Aov>
    <Orders>
      <Abs>0</Abs>
      <Dir>String</Dir>
      <Pct>0</Pct>
    </Orders>
    <PerCap>
      <Abs>0</Abs>
      <Dir>String</Dir>
      <Pct>0</Pct>
    </PerCap>
    <Refunded>
      <Abs>0</Abs>
      <Dir>String</Dir>
      <Pct>0</Pct>
    </Refunded>
    <Revenue>
      <Abs>0</Abs>
      <Dir>String</Dir>
      <Pct>0</Pct>
    </Revenue>
    <Units>
      <Abs>0</Abs>
      <Dir>String</Dir>
      <Pct>0</Pct>
    </Units>
  </Delta>
  <Events>
    <RefreshmentsEventRow>
      <Attendance>0</Attendance>
      <EventDate>0001-01-01T00:00:00</EventDate>
      <EventId>0</EventId>
      <EventName>String</EventName>
      <Orders>0</Orders>
      <PerCap>0</PerCap>
      <Revenue>0</Revenue>
      <Units>0</Units>
    </RefreshmentsEventRow>
  </Events>
  <FreshnessUtc>0001-01-01T00:00:00</FreshnessUtc>
  <HasAnyDataEver>false</HasAnyDataEver>
  <Message>String</Message>
  <Previous>
    <Aov>0</Aov>
    <Attendance>0</Attendance>
    <Orders>0</Orders>
    <PerCap>0</PerCap>
    <Refunded>0</Refunded>
    <Revenue>0</Revenue>
    <Units>0</Units>
    <UnitsPerOrder>0</UnitsPerOrder>
  </Previous>
  <PreviousTrend>
    <SalesTrendBucket>
      <Bucket>0001-01-01T00:00:00</Bucket>
      <Revenue>0</Revenue>
      <Tickets>0</Tickets>
    </SalesTrendBucket>
  </PreviousTrend>
  <Products>
    <RefreshmentsProduct>
      <LastSoldAt>0001-01-01T00:00:00</LastSoldAt>
      <Name>String</Name>
      <Orders>0</Orders>
      <Revenue>0</Revenue>
      <TicketTypeId>0</TicketTypeId>
      <Units>0</Units>
    </RefreshmentsProduct>
  </Products>
  <RecentOrders>
    <RefreshmentsRecentOrder>
      <Amount>0</Amount>
      <CreatedAt>0001-01-01T00:00:00</CreatedAt>
      <EventName>String</EventName>
      <PaymentMethodId>String</PaymentMethodId>
      <TicketId>0</TicketId>
      <Units>0</Units>
    </RefreshmentsRecentOrder>
  </RecentOrders>
  <StatusCode>0</StatusCode>
  <Trend>
    <SalesTrendBucket>
      <Bucket>0001-01-01T00:00:00</Bucket>
      <Revenue>0</Revenue>
      <Tickets>0</Tickets>
    </SalesTrendBucket>
  </Trend>
</RefreshmentsOverviewResult>