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

export class RefreshmentsKpis
{
    public revenue?: number;
    public refunded?: number;
    public units?: number;
    public orders?: number;
    public aov?: number;
    public unitsPerOrder?: number;
    public attendance?: number;
    public perCap?: number;

    public constructor(init?: Partial<RefreshmentsKpis>) { (Object as any).assign(this, init); }
}

export class KpiDelta
{
    public abs?: number;
    public pct?: number;
    public dir?: string;

    public constructor(init?: Partial<KpiDelta>) { (Object as any).assign(this, init); }
}

export class RefreshmentsDeltas
{
    public revenue?: KpiDelta;
    public refunded?: KpiDelta;
    public units?: KpiDelta;
    public orders?: KpiDelta;
    public aov?: KpiDelta;
    public perCap?: KpiDelta;

    public constructor(init?: Partial<RefreshmentsDeltas>) { (Object as any).assign(this, init); }
}

export class SalesTrendBucket
{
    public bucket?: string;
    public revenue?: number;
    public tickets?: number;

    public constructor(init?: Partial<SalesTrendBucket>) { (Object as any).assign(this, init); }
}

export class RefreshmentsProduct
{
    public ticketTypeId?: number;
    public name?: string;
    public units?: number;
    public revenue?: number;
    public orders?: number;
    public lastSoldAt?: string;

    public constructor(init?: Partial<RefreshmentsProduct>) { (Object as any).assign(this, init); }
}

export class RefreshmentsEventRow
{
    public eventId?: number;
    public eventName?: string;
    public eventDate?: string;
    public revenue?: number;
    public units?: number;
    public orders?: number;
    public attendance?: number;
    public perCap?: number;

    public constructor(init?: Partial<RefreshmentsEventRow>) { (Object as any).assign(this, init); }
}

export class SalesHourBucket
{
    public hour?: number;
    public revenue?: number;
    public orders?: number;
    public tickets?: number;

    public constructor(init?: Partial<SalesHourBucket>) { (Object as any).assign(this, init); }
}

export class SalesDowBucket
{
    public dow?: number;
    public revenue?: number;
    public orders?: number;
    public tickets?: number;

    public constructor(init?: Partial<SalesDowBucket>) { (Object as any).assign(this, init); }
}

export class RefreshmentsPaymentMethodRow
{
    public paymentMethodId?: string;
    public revenue?: number;
    public units?: number;
    public orders?: number;

    public constructor(init?: Partial<RefreshmentsPaymentMethodRow>) { (Object as any).assign(this, init); }
}

export class RefreshmentsRecentOrder
{
    public ticketId?: number;
    public createdAt?: string;
    public eventName?: string;
    public amount?: number;
    public units?: number;
    public paymentMethodId?: string;

    public constructor(init?: Partial<RefreshmentsRecentOrder>) { (Object as any).assign(this, init); }
}

export class RefreshmentsOverviewResult
{
    public current?: RefreshmentsKpis;
    public previous?: RefreshmentsKpis;
    public delta?: RefreshmentsDeltas;
    public trend?: SalesTrendBucket[];
    public previousTrend?: SalesTrendBucket[];
    public products?: RefreshmentsProduct[];
    public events?: RefreshmentsEventRow[];
    public byHourOfDay?: SalesHourBucket[];
    public byDayOfWeek?: SalesDowBucket[];
    public byPaymentMethod?: RefreshmentsPaymentMethodRow[];
    public recentOrders?: RefreshmentsRecentOrder[];
    public hasAnyDataEver?: boolean;
    public bucket?: string;
    public freshnessUtc?: string;
    public statusCode?: number;
    public message?: string;

    public constructor(init?: Partial<RefreshmentsOverviewResult>) { (Object as any).assign(this, init); }
}

export class RefreshmentsOverviewRequest
{
    public ownerId?: number;
    public seriesId?: number;
    public fromUtc?: string;
    public toUtc?: string;
    public compareFromUtc?: string;
    public compareToUtc?: string;
    public bucket?: string;
    public topEventsLimit?: number;
    public recentOrdersLimit?: number;

    public constructor(init?: Partial<RefreshmentsOverviewRequest>) { (Object as any).assign(this, init); }
}

TypeScript RefreshmentsOverviewRequest DTOs

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

HTTP + JSV

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: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	ownerId: 0,
	seriesId: 0,
	fromUtc: 0001-01-01,
	toUtc: 0001-01-01,
	compareFromUtc: 0001-01-01,
	compareToUtc: 0001-01-01,
	bucket: String,
	topEventsLimit: 0,
	recentOrdersLimit: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	current: 
	{
		revenue: 0,
		refunded: 0,
		units: 0,
		orders: 0,
		aov: 0,
		unitsPerOrder: 0,
		attendance: 0,
		perCap: 0
	},
	previous: 
	{
		revenue: 0,
		refunded: 0,
		units: 0,
		orders: 0,
		aov: 0,
		unitsPerOrder: 0,
		attendance: 0,
		perCap: 0
	},
	delta: 
	{
		revenue: 
		{
			abs: 0,
			pct: 0,
			dir: String
		},
		refunded: 
		{
			abs: 0,
			pct: 0,
			dir: String
		},
		units: 
		{
			abs: 0,
			pct: 0,
			dir: String
		},
		orders: 
		{
			abs: 0,
			pct: 0,
			dir: String
		},
		aov: 
		{
			abs: 0,
			pct: 0,
			dir: String
		},
		perCap: 
		{
			abs: 0,
			pct: 0,
			dir: String
		}
	},
	trend: 
	[
		{
			bucket: 0001-01-01,
			revenue: 0,
			tickets: 0
		}
	],
	previousTrend: 
	[
		{
			bucket: 0001-01-01,
			revenue: 0,
			tickets: 0
		}
	],
	products: 
	[
		{
			ticketTypeId: 0,
			name: String,
			units: 0,
			revenue: 0,
			orders: 0,
			lastSoldAt: 0001-01-01
		}
	],
	events: 
	[
		{
			eventId: 0,
			eventName: String,
			eventDate: 0001-01-01,
			revenue: 0,
			units: 0,
			orders: 0,
			attendance: 0,
			perCap: 0
		}
	],
	byHourOfDay: 
	[
		{
			hour: 0,
			revenue: 0,
			orders: 0,
			tickets: 0
		}
	],
	byDayOfWeek: 
	[
		{
			dow: 0,
			revenue: 0,
			orders: 0,
			tickets: 0
		}
	],
	byPaymentMethod: 
	[
		{
			paymentMethodId: String,
			revenue: 0,
			units: 0,
			orders: 0
		}
	],
	recentOrders: 
	[
		{
			ticketId: 0,
			createdAt: 0001-01-01,
			eventName: String,
			amount: 0,
			units: 0,
			paymentMethodId: String
		}
	],
	hasAnyDataEver: False,
	bucket: String,
	freshnessUtc: 0001-01-01,
	statusCode: 0,
	message: String
}