/* Options: Date: 2026-07-03 06:38:06 Version: 6.10 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://stubbur-app.azurewebsites.net //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: SalesOverviewRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class SalesKpis implements IConvertible { double? grossNet; double? refunded; int? ticketsAllReal; int? ticketsPaid; int? orders; double? aov; SalesKpis({this.grossNet,this.refunded,this.ticketsAllReal,this.ticketsPaid,this.orders,this.aov}); SalesKpis.fromJson(Map json) { fromMap(json); } fromMap(Map json) { grossNet = JsonConverters.toDouble(json['grossNet']); refunded = JsonConverters.toDouble(json['refunded']); ticketsAllReal = json['ticketsAllReal']; ticketsPaid = json['ticketsPaid']; orders = json['orders']; aov = JsonConverters.toDouble(json['aov']); return this; } Map toJson() => { 'grossNet': grossNet, 'refunded': refunded, 'ticketsAllReal': ticketsAllReal, 'ticketsPaid': ticketsPaid, 'orders': orders, 'aov': aov }; getTypeName() => "SalesKpis"; TypeContext? context = _ctx; } class KpiDelta implements IConvertible { double? abs; double? pct; String? dir; KpiDelta({this.abs,this.pct,this.dir}); KpiDelta.fromJson(Map json) { fromMap(json); } fromMap(Map json) { abs = JsonConverters.toDouble(json['abs']); pct = JsonConverters.toDouble(json['pct']); dir = json['dir']; return this; } Map toJson() => { 'abs': abs, 'pct': pct, 'dir': dir }; getTypeName() => "KpiDelta"; TypeContext? context = _ctx; } class SalesDeltas implements IConvertible { KpiDelta? grossNet; KpiDelta? refunded; KpiDelta? ticketsAllReal; KpiDelta? ticketsPaid; KpiDelta? orders; KpiDelta? aov; SalesDeltas({this.grossNet,this.refunded,this.ticketsAllReal,this.ticketsPaid,this.orders,this.aov}); SalesDeltas.fromJson(Map json) { fromMap(json); } fromMap(Map json) { grossNet = JsonConverters.fromJson(json['grossNet'],'KpiDelta',context!); refunded = JsonConverters.fromJson(json['refunded'],'KpiDelta',context!); ticketsAllReal = JsonConverters.fromJson(json['ticketsAllReal'],'KpiDelta',context!); ticketsPaid = JsonConverters.fromJson(json['ticketsPaid'],'KpiDelta',context!); orders = JsonConverters.fromJson(json['orders'],'KpiDelta',context!); aov = JsonConverters.fromJson(json['aov'],'KpiDelta',context!); return this; } Map toJson() => { 'grossNet': JsonConverters.toJson(grossNet,'KpiDelta',context!), 'refunded': JsonConverters.toJson(refunded,'KpiDelta',context!), 'ticketsAllReal': JsonConverters.toJson(ticketsAllReal,'KpiDelta',context!), 'ticketsPaid': JsonConverters.toJson(ticketsPaid,'KpiDelta',context!), 'orders': JsonConverters.toJson(orders,'KpiDelta',context!), 'aov': JsonConverters.toJson(aov,'KpiDelta',context!) }; getTypeName() => "SalesDeltas"; TypeContext? context = _ctx; } class SalesTrendBucket implements IConvertible { DateTime? bucket; double? revenue; int? tickets; SalesTrendBucket({this.bucket,this.revenue,this.tickets}); SalesTrendBucket.fromJson(Map json) { fromMap(json); } fromMap(Map json) { bucket = JsonConverters.fromJson(json['bucket'],'DateTime',context!); revenue = JsonConverters.toDouble(json['revenue']); tickets = json['tickets']; return this; } Map toJson() => { 'bucket': JsonConverters.toJson(bucket,'DateTime',context!), 'revenue': revenue, 'tickets': tickets }; getTypeName() => "SalesTrendBucket"; TypeContext? context = _ctx; } class SalesTopEvent implements IConvertible { int? eventId; String? eventName; DateTime? eventDate; double? grossNet; int? paidTickets; int? realTickets; int? orders; SalesTopEvent({this.eventId,this.eventName,this.eventDate,this.grossNet,this.paidTickets,this.realTickets,this.orders}); SalesTopEvent.fromJson(Map json) { fromMap(json); } fromMap(Map json) { eventId = json['eventId']; eventName = json['eventName']; eventDate = JsonConverters.fromJson(json['eventDate'],'DateTime',context!); grossNet = JsonConverters.toDouble(json['grossNet']); paidTickets = json['paidTickets']; realTickets = json['realTickets']; orders = json['orders']; return this; } Map toJson() => { 'eventId': eventId, 'eventName': eventName, 'eventDate': JsonConverters.toJson(eventDate,'DateTime',context!), 'grossNet': grossNet, 'paidTickets': paidTickets, 'realTickets': realTickets, 'orders': orders }; getTypeName() => "SalesTopEvent"; TypeContext? context = _ctx; } class SalesRecentOrder implements IConvertible { int? ticketId; DateTime? createdAt; String? eventName; double? amount; int? ticketCount; String? buyerName; SalesRecentOrder({this.ticketId,this.createdAt,this.eventName,this.amount,this.ticketCount,this.buyerName}); SalesRecentOrder.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ticketId = json['ticketId']; createdAt = JsonConverters.fromJson(json['createdAt'],'DateTime',context!); eventName = json['eventName']; amount = JsonConverters.toDouble(json['amount']); ticketCount = json['ticketCount']; buyerName = json['buyerName']; return this; } Map toJson() => { 'ticketId': ticketId, 'createdAt': JsonConverters.toJson(createdAt,'DateTime',context!), 'eventName': eventName, 'amount': amount, 'ticketCount': ticketCount, 'buyerName': buyerName }; getTypeName() => "SalesRecentOrder"; 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 json) { fromMap(json); } fromMap(Map json) { hour = json['hour']; revenue = JsonConverters.toDouble(json['revenue']); orders = json['orders']; tickets = json['tickets']; return this; } Map 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 json) { fromMap(json); } fromMap(Map json) { dow = json['dow']; revenue = JsonConverters.toDouble(json['revenue']); orders = json['orders']; tickets = json['tickets']; return this; } Map toJson() => { 'dow': dow, 'revenue': revenue, 'orders': orders, 'tickets': tickets }; getTypeName() => "SalesDowBucket"; TypeContext? context = _ctx; } class SalesProduct implements IConvertible { String? ticketName; int? tickets; double? revenue; int? orders; SalesProduct({this.ticketName,this.tickets,this.revenue,this.orders}); SalesProduct.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ticketName = json['ticketName']; tickets = json['tickets']; revenue = JsonConverters.toDouble(json['revenue']); orders = json['orders']; return this; } Map toJson() => { 'ticketName': ticketName, 'tickets': tickets, 'revenue': revenue, 'orders': orders }; getTypeName() => "SalesProduct"; TypeContext? context = _ctx; } class SalesOverviewResult implements IConvertible { SalesKpis? current; SalesKpis? previous; SalesDeltas? delta; List? trend; List? previousTrend; List? topEvents; List? recentOrders; List? byHourOfDay; List? byDayOfWeek; List? topProducts; bool? hasAnyDataEver; List? owners; String? bucket; DateTime? freshnessUtc; int? statusCode; String? message; SalesOverviewResult({this.current,this.previous,this.delta,this.trend,this.previousTrend,this.topEvents,this.recentOrders,this.byHourOfDay,this.byDayOfWeek,this.topProducts,this.hasAnyDataEver,this.owners,this.bucket,this.freshnessUtc,this.statusCode,this.message}); SalesOverviewResult.fromJson(Map json) { fromMap(json); } fromMap(Map json) { current = JsonConverters.fromJson(json['current'],'SalesKpis',context!); previous = JsonConverters.fromJson(json['previous'],'SalesKpis',context!); delta = JsonConverters.fromJson(json['delta'],'SalesDeltas',context!); trend = JsonConverters.fromJson(json['trend'],'List',context!); previousTrend = JsonConverters.fromJson(json['previousTrend'],'List',context!); topEvents = JsonConverters.fromJson(json['topEvents'],'List',context!); recentOrders = JsonConverters.fromJson(json['recentOrders'],'List',context!); byHourOfDay = JsonConverters.fromJson(json['byHourOfDay'],'List',context!); byDayOfWeek = JsonConverters.fromJson(json['byDayOfWeek'],'List',context!); topProducts = JsonConverters.fromJson(json['topProducts'],'List',context!); hasAnyDataEver = json['hasAnyDataEver']; owners = JsonConverters.fromJson(json['owners'],'List',context!); bucket = json['bucket']; freshnessUtc = JsonConverters.fromJson(json['freshnessUtc'],'DateTime',context!); statusCode = json['statusCode']; message = json['message']; return this; } Map toJson() => { 'current': JsonConverters.toJson(current,'SalesKpis',context!), 'previous': JsonConverters.toJson(previous,'SalesKpis',context!), 'delta': JsonConverters.toJson(delta,'SalesDeltas',context!), 'trend': JsonConverters.toJson(trend,'List',context!), 'previousTrend': JsonConverters.toJson(previousTrend,'List',context!), 'topEvents': JsonConverters.toJson(topEvents,'List',context!), 'recentOrders': JsonConverters.toJson(recentOrders,'List',context!), 'byHourOfDay': JsonConverters.toJson(byHourOfDay,'List',context!), 'byDayOfWeek': JsonConverters.toJson(byDayOfWeek,'List',context!), 'topProducts': JsonConverters.toJson(topProducts,'List',context!), 'hasAnyDataEver': hasAnyDataEver, 'owners': JsonConverters.toJson(owners,'List',context!), 'bucket': bucket, 'freshnessUtc': JsonConverters.toJson(freshnessUtc,'DateTime',context!), 'statusCode': statusCode, 'message': message }; getTypeName() => "SalesOverviewResult"; TypeContext? context = _ctx; } // @Route("/sales/overview", "POST") class SalesOverviewRequest implements IReturn, IConvertible { int? eventOwnerId; List? additionalOwnerIds; int? eventId; DateTime? fromUtc; DateTime? toUtc; DateTime? compareFromUtc; DateTime? compareToUtc; String? bucket; int? topEventsLimit; int? recentOrdersLimit; SalesOverviewRequest({this.eventOwnerId,this.additionalOwnerIds,this.eventId,this.fromUtc,this.toUtc,this.compareFromUtc,this.compareToUtc,this.bucket,this.topEventsLimit,this.recentOrdersLimit}); SalesOverviewRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { eventOwnerId = json['eventOwnerId']; additionalOwnerIds = JsonConverters.fromJson(json['additionalOwnerIds'],'List',context!); eventId = json['eventId']; 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 toJson() => { 'eventOwnerId': eventOwnerId, 'additionalOwnerIds': JsonConverters.toJson(additionalOwnerIds,'List',context!), 'eventId': eventId, '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 }; createResponse() => SalesOverviewResult(); getResponseTypeName() => "SalesOverviewResult"; getTypeName() => "SalesOverviewRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'stubbur_app.azurewebsites.net', types: { 'SalesKpis': TypeInfo(TypeOf.Class, create:() => SalesKpis()), 'KpiDelta': TypeInfo(TypeOf.Class, create:() => KpiDelta()), 'SalesDeltas': TypeInfo(TypeOf.Class, create:() => SalesDeltas()), 'SalesTrendBucket': TypeInfo(TypeOf.Class, create:() => SalesTrendBucket()), 'SalesTopEvent': TypeInfo(TypeOf.Class, create:() => SalesTopEvent()), 'SalesRecentOrder': TypeInfo(TypeOf.Class, create:() => SalesRecentOrder()), 'SalesHourBucket': TypeInfo(TypeOf.Class, create:() => SalesHourBucket()), 'SalesDowBucket': TypeInfo(TypeOf.Class, create:() => SalesDowBucket()), 'SalesProduct': TypeInfo(TypeOf.Class, create:() => SalesProduct()), 'SalesOverviewResult': TypeInfo(TypeOf.Class, create:() => SalesOverviewResult()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'SalesOverviewRequest': TypeInfo(TypeOf.Class, create:() => SalesOverviewRequest()), });