@munchi_oy/core 2.0.8 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/generated/api.ts CHANGED
@@ -446,6 +446,138 @@ export interface AmountDto {
446
446
  */
447
447
  'currency': string;
448
448
  }
449
+ /**
450
+ *
451
+ * @export
452
+ * @interface AnalyticsDashboardCardDto
453
+ */
454
+ export interface AnalyticsDashboardCardDto {
455
+ /**
456
+ * Which card this is, in dashboard-one\'s own words. The server keeps it as sent and never checks it against a list.
457
+ * @type {string}
458
+ * @memberof AnalyticsDashboardCardDto
459
+ */
460
+ 'id': string;
461
+ }
462
+ /**
463
+ *
464
+ * @export
465
+ * @interface AnalyticsDashboardGoalsDto
466
+ */
467
+ export interface AnalyticsDashboardGoalsDto {
468
+ /**
469
+ * The day\'s sales goal, a whole number in the minor unit of the store\'s currency (cents for EUR). Absent: no day goal.
470
+ * @type {number}
471
+ * @memberof AnalyticsDashboardGoalsDto
472
+ */
473
+ 'daySales'?: number;
474
+ /**
475
+ * The month\'s sales goal, a whole number in the minor unit of the store\'s currency (cents for EUR). Absent: no month goal.
476
+ * @type {number}
477
+ * @memberof AnalyticsDashboardGoalsDto
478
+ */
479
+ 'monthSales'?: number;
480
+ }
481
+ /**
482
+ *
483
+ * @export
484
+ * @interface AnalyticsDashboardResponseDto
485
+ */
486
+ export interface AnalyticsDashboardResponseDto {
487
+ /**
488
+ * The cards in the order they are shown, first card first
489
+ * @type {Array<AnalyticsDashboardCardDto>}
490
+ * @memberof AnalyticsDashboardResponseDto
491
+ */
492
+ 'cards': Array<AnalyticsDashboardCardDto>;
493
+ /**
494
+ *
495
+ * @type {AnalyticsDashboardResponseDtoGoals}
496
+ * @memberof AnalyticsDashboardResponseDto
497
+ */
498
+ 'goals': AnalyticsDashboardResponseDtoGoals;
499
+ /**
500
+ * When the dashboard was last saved, ISO 8601 in UTC
501
+ * @type {string}
502
+ * @memberof AnalyticsDashboardResponseDto
503
+ */
504
+ 'updatedAt': string;
505
+ /**
506
+ * The dashboard\'s version: 1 when first saved, one more on each save. Send it back as expectedVersion to save.
507
+ * @type {number}
508
+ * @memberof AnalyticsDashboardResponseDto
509
+ */
510
+ 'version': number;
511
+ /**
512
+ * The Clerk user id of the person who last saved it
513
+ * @type {string}
514
+ * @memberof AnalyticsDashboardResponseDto
515
+ */
516
+ 'updatedBy': string;
517
+ }
518
+ /**
519
+ * The sales goals, in the minor unit of the store\'s currency; a goal not set is absent
520
+ * @export
521
+ * @interface AnalyticsDashboardResponseDtoGoals
522
+ */
523
+ export interface AnalyticsDashboardResponseDtoGoals {
524
+ /**
525
+ * The day\'s sales goal, a whole number in the minor unit of the store\'s currency (cents for EUR). Absent: no day goal.
526
+ * @type {number}
527
+ * @memberof AnalyticsDashboardResponseDtoGoals
528
+ */
529
+ 'daySales'?: number;
530
+ /**
531
+ * The month\'s sales goal, a whole number in the minor unit of the store\'s currency (cents for EUR). Absent: no month goal.
532
+ * @type {number}
533
+ * @memberof AnalyticsDashboardResponseDtoGoals
534
+ */
535
+ 'monthSales'?: number;
536
+ }
537
+ /**
538
+ *
539
+ * @export
540
+ * @interface AutomaticPromotionDto
541
+ */
542
+ export interface AutomaticPromotionDto {
543
+ /**
544
+ * The Vendure promotion\'s id
545
+ * @type {number}
546
+ * @memberof AutomaticPromotionDto
547
+ */
548
+ 'id': number;
549
+ /**
550
+ * The promotion\'s name
551
+ * @type {string}
552
+ * @memberof AutomaticPromotionDto
553
+ */
554
+ 'name': string;
555
+ /**
556
+ * When the promotion starts, an ISO date-time; null when it has no start
557
+ * @type {string}
558
+ * @memberof AutomaticPromotionDto
559
+ */
560
+ 'startsAt': string | null;
561
+ /**
562
+ * When the promotion ends, an ISO date-time; null when it has no end
563
+ * @type {string}
564
+ * @memberof AutomaticPromotionDto
565
+ */
566
+ 'endsAt': string | null;
567
+ }
568
+ /**
569
+ *
570
+ * @export
571
+ * @interface AutomaticPromotionsAnswerDto
572
+ */
573
+ export interface AutomaticPromotionsAnswerDto {
574
+ /**
575
+ * The venue\'s automatic promotions in the caller\'s app that are running now, judged at the moment of the read. Empty: no promotion applies by itself, so the app need not ask for the basket\'s price unless it holds a coupon code. Read again when the venue\'s DISCOUNTS sync arrives
576
+ * @type {Array<AutomaticPromotionDto>}
577
+ * @memberof AutomaticPromotionsAnswerDto
578
+ */
579
+ 'automaticPromotions': Array<AutomaticPromotionDto>;
580
+ }
449
581
  /**
450
582
  *
451
583
  * @export
@@ -491,6 +623,19 @@ export interface AvailablePaymentMethodDto {
491
623
  */
492
624
  'requiresCredentials': boolean;
493
625
  }
626
+ /**
627
+ *
628
+ * @export
629
+ * @enum {string}
630
+ */
631
+
632
+ export const BasketNotPricedReason = {
633
+ Unavailable: 'UNAVAILABLE'
634
+ } as const;
635
+
636
+ export type BasketNotPricedReason = typeof BasketNotPricedReason[keyof typeof BasketNotPricedReason];
637
+
638
+
494
639
  /**
495
640
  *
496
641
  * @export
@@ -6287,7 +6432,7 @@ export interface DiscountDto {
6287
6432
  */
6288
6433
  'updatedAt': string;
6289
6434
  /**
6290
- * The discount\'s id in data-bridge
6435
+ * The id the till knows the button by: the data-bridge discount\'s id for a button copied from data-bridge, 1,000,000,000 plus the Vendure promotion\'s id for any other button (one made or duplicated in Vendure), so the two never share an id
6291
6436
  * @type {number}
6292
6437
  * @memberof DiscountDto
6293
6438
  */
@@ -6317,13 +6462,13 @@ export interface DiscountDto {
6317
6462
  */
6318
6463
  'type'?: PromotionDiscountType;
6319
6464
  /**
6320
- * The discount\'s description; absent when it has none
6465
+ * The discount\'s description; an empty string when it has none
6321
6466
  * @type {string}
6322
6467
  * @memberof DiscountDto
6323
6468
  */
6324
6469
  'description'?: string;
6325
6470
  /**
6326
- * Whether the discount is available, as data-bridge stores it
6471
+ * Whether the discount is switched on; always true, since a switched-off one is not answered
6327
6472
  * @type {boolean}
6328
6473
  * @memberof DiscountDto
6329
6474
  */
@@ -6347,7 +6492,7 @@ export interface DiscountDto {
6347
6492
  */
6348
6493
  'maxUsesPerOrder'?: number | null;
6349
6494
  /**
6350
- * Which discount wins when several apply: the higher priority wins
6495
+ * The Vendure promotion\'s buttonOrder, which a button copied from data-bridge took from the discount\'s priority; 1 when it has none
6351
6496
  * @type {number}
6352
6497
  * @memberof DiscountDto
6353
6498
  */
@@ -7976,6 +8121,20 @@ export interface FeesDto {
7976
8121
  */
7977
8122
  'parts': Array<FeePartDto>;
7978
8123
  }
8124
+ /**
8125
+ *
8126
+ * @export
8127
+ * @enum {string}
8128
+ */
8129
+
8130
+ export const FileFormat = {
8131
+ Pdf: 'pdf',
8132
+ Xlsx: 'xlsx'
8133
+ } as const;
8134
+
8135
+ export type FileFormat = typeof FileFormat[keyof typeof FileFormat];
8136
+
8137
+
7979
8138
  /**
7980
8139
  *
7981
8140
  * @export
@@ -8565,6 +8724,19 @@ export interface InboundReservationWebhookDto {
8565
8724
  */
8566
8725
  'payload': object;
8567
8726
  }
8727
+ /**
8728
+ *
8729
+ * @export
8730
+ * @enum {string}
8731
+ */
8732
+
8733
+ export const IngredientSectionHeadingCode = {
8734
+ IngredientsDefaultHeading: 'INGREDIENTS_DEFAULT_HEADING'
8735
+ } as const;
8736
+
8737
+ export type IngredientSectionHeadingCode = typeof IngredientSectionHeadingCode[keyof typeof IngredientSectionHeadingCode];
8738
+
8739
+
8568
8740
  /**
8569
8741
  *
8570
8742
  * @export
@@ -9965,6 +10137,12 @@ export interface KdsOrderItemDto {
9965
10137
  * @memberof KdsOrderItemDto
9966
10138
  */
9967
10139
  'options': Array<KdsOrderOptionDto>;
10140
+ /**
10141
+ * Every ingredient shown on the guest\'s card for the item, kept (removed false) and removed, in the card\'s order, as kds-service keeps it. Absent only when no card was shown.
10142
+ * @type {Array<OrderIngredientDto>}
10143
+ * @memberof KdsOrderItemDto
10144
+ */
10145
+ 'ingredients'?: Array<OrderIngredientDto>;
9968
10146
  }
9969
10147
 
9970
10148
 
@@ -14590,6 +14768,31 @@ export interface OrderHistoryResponseDtoSummary {
14590
14768
  */
14591
14769
  'totalTipAmount'?: number;
14592
14770
  }
14771
+ /**
14772
+ *
14773
+ * @export
14774
+ * @interface OrderIngredientDto
14775
+ */
14776
+ export interface OrderIngredientDto {
14777
+ /**
14778
+ * Id of the inventory item behind the ingredient, in Vendure
14779
+ * @type {number}
14780
+ * @memberof OrderIngredientDto
14781
+ */
14782
+ 'itemId': number;
14783
+ /**
14784
+ * The ingredient\'s name as the guest saw it
14785
+ * @type {string}
14786
+ * @memberof OrderIngredientDto
14787
+ */
14788
+ 'name': string;
14789
+ /**
14790
+ * true when the guest removed the ingredient from the product
14791
+ * @type {boolean}
14792
+ * @memberof OrderIngredientDto
14793
+ */
14794
+ 'removed': boolean;
14795
+ }
14593
14796
  /**
14594
14797
  *
14595
14798
  * @export
@@ -19731,6 +19934,58 @@ export interface PosMenuExtraDto {
19731
19934
  */
19732
19935
  'options': Array<PosMenuOptionDto>;
19733
19936
  }
19937
+ /**
19938
+ *
19939
+ * @export
19940
+ * @interface PosMenuIngredientDto
19941
+ */
19942
+ export interface PosMenuIngredientDto {
19943
+ /**
19944
+ * The ingredient\'s inventory item id
19945
+ * @type {number}
19946
+ * @memberof PosMenuIngredientDto
19947
+ */
19948
+ 'id': number;
19949
+ /**
19950
+ * The name customers see: the venue\'s customer name, else the ingredient\'s own name. Never translated
19951
+ * @type {string}
19952
+ * @memberof PosMenuIngredientDto
19953
+ */
19954
+ 'name': string;
19955
+ /**
19956
+ * Its place in the section, from 1. The list is already in this order
19957
+ * @type {number}
19958
+ * @memberof PosMenuIngredientDto
19959
+ */
19960
+ 'rank': number;
19961
+ }
19962
+ /**
19963
+ *
19964
+ * @export
19965
+ * @interface PosMenuIngredientSectionDto
19966
+ */
19967
+ export interface PosMenuIngredientSectionDto {
19968
+ /**
19969
+ *
19970
+ * @type {IngredientSectionHeadingCode}
19971
+ * @memberof PosMenuIngredientSectionDto
19972
+ */
19973
+ 'heading_code'?: IngredientSectionHeadingCode;
19974
+ /**
19975
+ * The venue\'s own heading, or null when the app shows its own translation of heading_code
19976
+ * @type {string}
19977
+ * @memberof PosMenuIngredientSectionDto
19978
+ */
19979
+ 'heading': string | null;
19980
+ /**
19981
+ * The ingredients the customer may remove, all ticked to start with. Never empty; hidden ones are not sent
19982
+ * @type {Array<PosMenuIngredientDto>}
19983
+ * @memberof PosMenuIngredientSectionDto
19984
+ */
19985
+ 'ingredients': Array<PosMenuIngredientDto>;
19986
+ }
19987
+
19988
+
19734
19989
  /**
19735
19990
  *
19736
19991
  * @export
@@ -19955,7 +20210,40 @@ export interface PosMenuProductDto {
19955
20210
  * @memberof PosMenuProductDto
19956
20211
  */
19957
20212
  'extras': Array<PosMenuExtraDto>;
20213
+ /**
20214
+ *
20215
+ * @type {PosMenuProductDtoIngredientSection}
20216
+ * @memberof PosMenuProductDto
20217
+ */
20218
+ 'ingredient_section'?: PosMenuProductDtoIngredientSection;
19958
20219
  }
20220
+ /**
20221
+ * What the customer may remove. Sent only when inventory is on, the venue shows ingredients on the till, and the product has a recipe with an ingredient not hidden; otherwise absent, never null
20222
+ * @export
20223
+ * @interface PosMenuProductDtoIngredientSection
20224
+ */
20225
+ export interface PosMenuProductDtoIngredientSection {
20226
+ /**
20227
+ *
20228
+ * @type {IngredientSectionHeadingCode}
20229
+ * @memberof PosMenuProductDtoIngredientSection
20230
+ */
20231
+ 'heading_code'?: IngredientSectionHeadingCode;
20232
+ /**
20233
+ * The venue\'s own heading, or null when the app shows its own translation of heading_code
20234
+ * @type {string}
20235
+ * @memberof PosMenuProductDtoIngredientSection
20236
+ */
20237
+ 'heading': string | null;
20238
+ /**
20239
+ * The ingredients the customer may remove, all ticked to start with. Never empty; hidden ones are not sent
20240
+ * @type {Array<PosMenuIngredientDto>}
20241
+ * @memberof PosMenuProductDtoIngredientSection
20242
+ */
20243
+ 'ingredients': Array<PosMenuIngredientDto>;
20244
+ }
20245
+
20246
+
19959
20247
  /**
19960
20248
  * The reporting category the product\'s sales are counted under, or null when it has none
19961
20249
  * @export
@@ -20918,6 +21206,12 @@ export interface PosOrderItemDto {
20918
21206
  * @memberof PosOrderItemDto
20919
21207
  */
20920
21208
  'options': Array<PosOrderOptionDto>;
21209
+ /**
21210
+ * Every ingredient shown on the guest\'s card for the line, kept (removed false) and removed, in the card\'s order: the only record of a removal. Sent whenever the card was shown, even when nothing was removed; absent only when no card was shown.
21211
+ * @type {Array<OrderIngredientDto>}
21212
+ * @memberof PosOrderItemDto
21213
+ */
21214
+ 'ingredients'?: Array<OrderIngredientDto>;
20921
21215
  /**
20922
21216
  * Whether the product has a display label
20923
21217
  * @type {boolean}
@@ -21851,6 +22145,72 @@ export const PreorderStatus = {
21851
22145
  export type PreorderStatus = typeof PreorderStatus[keyof typeof PreorderStatus];
21852
22146
 
21853
22147
 
22148
+ /**
22149
+ *
22150
+ * @export
22151
+ * @interface PriceBasketAnswerDto
22152
+ */
22153
+ export interface PriceBasketAnswerDto {
22154
+ /**
22155
+ * true when Vendure priced the basket; false when it could not, and nothing is known of its discounts
22156
+ * @type {boolean}
22157
+ * @memberof PriceBasketAnswerDto
22158
+ */
22159
+ 'priced': boolean;
22160
+ /**
22161
+ *
22162
+ * @type {BasketNotPricedReason}
22163
+ * @memberof PriceBasketAnswerDto
22164
+ */
22165
+ 'reason': BasketNotPricedReason | null;
22166
+ /**
22167
+ * Every line sent, in the order sent, with its discounts; empty when priced is false
22168
+ * @type {Array<PricedLineDto>}
22169
+ * @memberof PriceBasketAnswerDto
22170
+ */
22171
+ 'lines': Array<PricedLineDto>;
22172
+ /**
22173
+ * Each promotion\'s discount over the whole basket, the lines\' shares added up, one per promotion and scope: what the receipt lists. It repeats the lines\' discounts, never adds to them. Empty when none applies or when priced is false
22174
+ * @type {Array<PricedDiscountDto>}
22175
+ * @memberof PriceBasketAnswerDto
22176
+ */
22177
+ 'orderDiscounts': Array<PricedDiscountDto>;
22178
+ /**
22179
+ * The basket\'s total in cents, VAT included, after the discounts, as Vendure worked it out; null when priced is false
22180
+ * @type {number}
22181
+ * @memberof PriceBasketAnswerDto
22182
+ */
22183
+ 'subTotalWithTax': number | null;
22184
+ }
22185
+
22186
+
22187
+ /**
22188
+ *
22189
+ * @export
22190
+ * @interface PriceBasketDto
22191
+ */
22192
+ export interface PriceBasketDto {
22193
+ /**
22194
+ *
22195
+ * @type {OrderTypePOS}
22196
+ * @memberof PriceBasketDto
22197
+ */
22198
+ 'orderType': OrderTypePOS;
22199
+ /**
22200
+ * The coupon codes on the order, as typed or scanned, in any letter case, priced together with the venue\'s automatic promotions. A code is priced only when it is one of the venue\'s coupons in the app; whether it may be used (its limits, the customer\'s phone, a first order) is POST .../coupons/check\'s answer. Absent or empty: no coupon
22201
+ * @type {Array<string>}
22202
+ * @memberof PriceBasketDto
22203
+ */
22204
+ 'couponCodes'?: Array<string>;
22205
+ /**
22206
+ * The order\'s lines as they stand, VAT included; priced again whenever the basket changes
22207
+ * @type {Array<PricingBasketLineDto>}
22208
+ * @memberof PriceBasketDto
22209
+ */
22210
+ 'lines': Array<PricingBasketLineDto>;
22211
+ }
22212
+
22213
+
21854
22214
  /**
21855
22215
  *
21856
22216
  * @export
@@ -21915,6 +22275,119 @@ export const PriceType = {
21915
22275
  export type PriceType = typeof PriceType[keyof typeof PriceType];
21916
22276
 
21917
22277
 
22278
+ /**
22279
+ *
22280
+ * @export
22281
+ * @interface PricedDiscountDto
22282
+ */
22283
+ export interface PricedDiscountDto {
22284
+ /**
22285
+ *
22286
+ * @type {DiscountSourceType}
22287
+ * @memberof PricedDiscountDto
22288
+ */
22289
+ 'sourceType': DiscountSourceType;
22290
+ /**
22291
+ * The Vendure promotion\'s id, as text
22292
+ * @type {string}
22293
+ * @memberof PricedDiscountDto
22294
+ */
22295
+ 'sourceId': string;
22296
+ /**
22297
+ * The promotion\'s name, in English, else Finnish; shown on the till, the receipt and the reports
22298
+ * @type {string}
22299
+ * @memberof PricedDiscountDto
22300
+ */
22301
+ 'name': string;
22302
+ /**
22303
+ * true when Vendure applies the promotion by itself, with no code; false when one of the basket\'s coupon codes applies it
22304
+ * @type {boolean}
22305
+ * @memberof PricedDiscountDto
22306
+ */
22307
+ 'isAutomatic': boolean;
22308
+ /**
22309
+ * The coupon code as the promotion holds it; null for an automatic promotion
22310
+ * @type {string}
22311
+ * @memberof PricedDiscountDto
22312
+ */
22313
+ 'couponCode': string | null;
22314
+ /**
22315
+ *
22316
+ * @type {DiscountScope}
22317
+ * @memberof PricedDiscountDto
22318
+ */
22319
+ 'scope': DiscountScope;
22320
+ /**
22321
+ * The discount in cents, VAT included, negative, exactly as Vendure worked it out: the cents the till takes off
22322
+ * @type {number}
22323
+ * @memberof PricedDiscountDto
22324
+ */
22325
+ 'amountWithTax': number;
22326
+ /**
22327
+ * The same discount in cents before VAT, negative
22328
+ * @type {number}
22329
+ * @memberof PricedDiscountDto
22330
+ */
22331
+ 'amount': number;
22332
+ }
22333
+
22334
+
22335
+ /**
22336
+ *
22337
+ * @export
22338
+ * @interface PricedLineDto
22339
+ */
22340
+ export interface PricedLineDto {
22341
+ /**
22342
+ * The line\'s id, as sent
22343
+ * @type {string}
22344
+ * @memberof PricedLineDto
22345
+ */
22346
+ 'lineItemId': string;
22347
+ /**
22348
+ * The discounts on this line, each order discount\'s share included; empty when none reaches it
22349
+ * @type {Array<PricedDiscountDto>}
22350
+ * @memberof PricedLineDto
22351
+ */
22352
+ 'discounts': Array<PricedDiscountDto>;
22353
+ }
22354
+ /**
22355
+ *
22356
+ * @export
22357
+ * @interface PricingBasketLineDto
22358
+ */
22359
+ export interface PricingBasketLineDto {
22360
+ /**
22361
+ * The line\'s stable id, the one the order\'s discounts point at
22362
+ * @type {string}
22363
+ * @memberof PricingBasketLineDto
22364
+ */
22365
+ 'lineItemId': string;
22366
+ /**
22367
+ * How many of the product the line holds, a whole number
22368
+ * @type {number}
22369
+ * @memberof PricingBasketLineDto
22370
+ */
22371
+ 'quantity': number;
22372
+ /**
22373
+ * The price of one unit as the till charges it, options included, in cents
22374
+ * @type {number}
22375
+ * @memberof PricingBasketLineDto
22376
+ */
22377
+ 'unitAmount': number;
22378
+ /**
22379
+ * The line\'s VAT rate in percent (14 is 14%): the item\'s taxRate. Needed when the coupon\'s minimum order is before VAT; absent there, Vendure answers CONDITIONS_NOT_MET
22380
+ * @type {number}
22381
+ * @memberof PricingBasketLineDto
22382
+ */
22383
+ 'vatRate'?: number;
22384
+ /**
22385
+ * The product\'s Vendure id: the line\'s posId, as a number
22386
+ * @type {number}
22387
+ * @memberof PricingBasketLineDto
22388
+ */
22389
+ 'productId'?: number;
22390
+ }
21918
22391
  /**
21919
22392
  *
21920
22393
  * @export
@@ -22458,6 +22931,12 @@ export interface ProductDto {
22458
22931
  * @memberof ProductDto
22459
22932
  */
22460
22933
  'customField': object | null;
22934
+ /**
22935
+ * Every ingredient shown on the guest\'s card for the product, kept (removed false) and removed, in the card\'s order. Absent only when no card was shown.
22936
+ * @type {Array<OrderIngredientDto>}
22937
+ * @memberof ProductDto
22938
+ */
22939
+ 'ingredients'?: Array<OrderIngredientDto>;
22461
22940
  /**
22462
22941
  * Kitchen status of the product
22463
22942
  * @type {string}
@@ -24642,7 +25121,9 @@ export const ReportChangeField = {
24642
25121
  PaymentReportSummaryTotalSurchargeAmount: 'paymentReport.summary.totalSurchargeAmount',
24643
25122
  PaymentReportSummaryTotalRefunds: 'paymentReport.summary.totalRefunds',
24644
25123
  PaymentReportSummaryRefundCount: 'paymentReport.summary.refundCount',
24645
- PaymentReportTotalDiscounts: 'paymentReport.totalDiscounts'
25124
+ PaymentReportTotalDiscounts: 'paymentReport.totalDiscounts',
25125
+ OrderCount: 'orderCount',
25126
+ AverageOrderValue: 'averageOrderValue'
24646
25127
  } as const;
24647
25128
 
24648
25129
  export type ReportChangeField = typeof ReportChangeField[keyof typeof ReportChangeField];
@@ -24662,6 +25143,22 @@ export const ReportLanguage = {
24662
25143
  export type ReportLanguage = typeof ReportLanguage[keyof typeof ReportLanguage];
24663
25144
 
24664
25145
 
25146
+ /**
25147
+ *
25148
+ * @export
25149
+ * @enum {string}
25150
+ */
25151
+
25152
+ export const ReportOrderType = {
25153
+ EatIn: 'eat_in',
25154
+ Takeaway: 'takeaway',
25155
+ Delivery: 'delivery',
25156
+ Unknown: 'unknown'
25157
+ } as const;
25158
+
25159
+ export type ReportOrderType = typeof ReportOrderType[keyof typeof ReportOrderType];
25160
+
25161
+
24665
25162
  /**
24666
25163
  *
24667
25164
  * @export
@@ -25458,6 +25955,94 @@ export const SYNCKEY = {
25458
25955
  export type SYNCKEY = typeof SYNCKEY[keyof typeof SYNCKEY];
25459
25956
 
25460
25957
 
25958
+ /**
25959
+ *
25960
+ * @export
25961
+ * @interface SalesReportBoughtTogetherGroupDto
25962
+ */
25963
+ export interface SalesReportBoughtTogetherGroupDto {
25964
+ /**
25965
+ * The venue\'s orderingBusinessId, or null when the breakdown adds venues together
25966
+ * @type {number}
25967
+ * @memberof SalesReportBoughtTogetherGroupDto
25968
+ */
25969
+ 'businessId': number | null;
25970
+ /**
25971
+ *
25972
+ * @type {ReportApp}
25973
+ * @memberof SalesReportBoughtTogetherGroupDto
25974
+ */
25975
+ 'app': ReportApp | null;
25976
+ /**
25977
+ *
25978
+ * @type {CurrencyCode}
25979
+ * @memberof SalesReportBoughtTogetherGroupDto
25980
+ */
25981
+ 'currency': CurrencyCode;
25982
+ /**
25983
+ * Venue-app days of the period that sold more than 25 pairs: each kept only its top 25, so a pair\'s orders are exact when this is 0 and a lower bound otherwise
25984
+ * @type {number}
25985
+ * @memberof SalesReportBoughtTogetherGroupDto
25986
+ */
25987
+ 'daysWithPairsCut': number;
25988
+ /**
25989
+ * The pairs bought in the most orders, most first, ties by the items\' keys
25990
+ * @type {Array<SalesReportPairDto>}
25991
+ * @memberof SalesReportBoughtTogetherGroupDto
25992
+ */
25993
+ 'pairs': Array<SalesReportPairDto>;
25994
+ }
25995
+
25996
+
25997
+ /**
25998
+ *
25999
+ * @export
26000
+ * @interface SalesReportBoughtTogetherResponseDto
26001
+ */
26002
+ export interface SalesReportBoughtTogetherResponseDto {
26003
+ /**
26004
+ * The first instant of the period, ISO 8601 in UTC
26005
+ * @type {string}
26006
+ * @memberof SalesReportBoughtTogetherResponseDto
26007
+ */
26008
+ 'reportDateStart': string;
26009
+ /**
26010
+ * The last instant of the period, ISO 8601 in UTC; now, when the period ends later
26011
+ * @type {string}
26012
+ * @memberof SalesReportBoughtTogetherResponseDto
26013
+ */
26014
+ 'reportDateEnd': string;
26015
+ /**
26016
+ * The IANA time zone the period\'s days are read in
26017
+ * @type {string}
26018
+ * @memberof SalesReportBoughtTogetherResponseDto
26019
+ */
26020
+ 'timezone': string;
26021
+ /**
26022
+ * The first business day, YYYY-MM-DD
26023
+ * @type {string}
26024
+ * @memberof SalesReportBoughtTogetherResponseDto
26025
+ */
26026
+ 'firstBusinessDay': string;
26027
+ /**
26028
+ * The last business day, YYYY-MM-DD, inclusive
26029
+ * @type {string}
26030
+ * @memberof SalesReportBoughtTogetherResponseDto
26031
+ */
26032
+ 'lastBusinessDay': string;
26033
+ /**
26034
+ * The newest BigQuery rebuild the rows read, ISO 8601 in UTC; null when none
26035
+ * @type {string}
26036
+ * @memberof SalesReportBoughtTogetherResponseDto
26037
+ */
26038
+ 'dataUntil': string | null;
26039
+ /**
26040
+ * One group per venue, app and currency the breakdown keeps
26041
+ * @type {Array<SalesReportBoughtTogetherGroupDto>}
26042
+ * @memberof SalesReportBoughtTogetherResponseDto
26043
+ */
26044
+ 'groups': Array<SalesReportBoughtTogetherGroupDto>;
26045
+ }
25461
26046
  /**
25462
26047
  *
25463
26048
  * @export
@@ -25570,6 +26155,12 @@ export interface SalesReportComparisonDto {
25570
26155
  * @memberof SalesReportComparisonDto
25571
26156
  */
25572
26157
  'lastBusinessDay': string;
26158
+ /**
26159
+ * compareSameTime only: the instant the compared last day was added up to, ISO 8601 in UTC: that day at the last full hour, on the report\'s clock, that both the daily rows and the hours have reached on the report\'s last day (a client says \"until 14:00\"). The report\'s own last day is cut at the same hour of its day, so both sides cover the same hours: the group\'s totals and dailyBreakdown of that day stop there too. Present when no venue and app of the group was compared whole that day (one that sold nothing that day counts as cut); absent when compareSameTime was not sent, the report\'s last day is over, or a venue\'s day had no hours yet and was compared whole. In a group of venues in several time zones each venue is cut at its own clock\'s hour of the same instant, which this names in the report\'s time zone
26160
+ * @type {string}
26161
+ * @memberof SalesReportComparisonDto
26162
+ */
26163
+ 'comparedUntil'?: string;
25573
26164
  /**
25574
26165
  *
25575
26166
  * @type {SalesReportComparisonDtoSalesReport}
@@ -25588,6 +26179,18 @@ export interface SalesReportComparisonDto {
25588
26179
  * @memberof SalesReportComparisonDto
25589
26180
  */
25590
26181
  'dailyBreakdown'?: Array<SalesReportDayDto>;
26182
+ /**
26183
+ * Part summary: how many orders were sold, the sum of dailyBreakdown[].orders. POS counts orders as the till does, so a split bill counts once; kiosk, storefront and mobile count each of their orders once. A group that adds apps together (breakdown none or venue) adds POS\'s count to the other apps\' counts. Wolt, Foodora and other platform orders are not included. Count orders with this, never with paymentReport.summary.totalCount, which counts payments. Left out without part summary
26184
+ * @type {number}
26185
+ * @memberof SalesReportComparisonDto
26186
+ */
26187
+ 'orderCount'?: number;
26188
+ /**
26189
+ * Part summary: what was paid, refunds taken off (paymentReport.summary.salesAndRevenue), divided by orderCount, rounded half up to the currency\'s minor digits, in the major unit of the group\'s currency (euros for EUR). Null when no order was sold, and then its change is left out of changes and changesFromBaseline. Left out without part summary
26190
+ * @type {number}
26191
+ * @memberof SalesReportComparisonDto
26192
+ */
26193
+ 'averageOrderValue'?: number | null;
25591
26194
  /**
25592
26195
  * The change of each total either period answers, in ReportChangeField\'s order; empty when part summary was not asked
25593
26196
  * @type {Array<SalesReportChangeDto>}
@@ -25694,7 +26297,7 @@ export interface SalesReportDayDto {
25694
26297
  */
25695
26298
  'date': string;
25696
26299
  /**
25697
- * How many orders were sold that day
26300
+ * How many orders were sold that day. POS counts them as the till\'s end-of-day report does: an order refunded in full is not counted, one refunded in part, unpaid or at 0 is. Kiosk, storefront and mobile count the orders with items not refunded in full, a kiosk order only when paid
25698
26301
  * @type {number}
25699
26302
  * @memberof SalesReportDayDto
25700
26303
  */
@@ -25809,6 +26412,18 @@ export interface SalesReportGroupDto {
25809
26412
  * @memberof SalesReportGroupDto
25810
26413
  */
25811
26414
  'dailyBreakdown'?: Array<SalesReportDayDto>;
26415
+ /**
26416
+ * Part summary: how many orders were sold, the sum of dailyBreakdown[].orders. POS counts orders as the till does, so a split bill counts once; kiosk, storefront and mobile count each of their orders once. A group that adds apps together (breakdown none or venue) adds POS\'s count to the other apps\' counts. Wolt, Foodora and other platform orders are not included. Count orders with this, never with paymentReport.summary.totalCount, which counts payments. Left out without part summary
26417
+ * @type {number}
26418
+ * @memberof SalesReportGroupDto
26419
+ */
26420
+ 'orderCount'?: number;
26421
+ /**
26422
+ * Part summary: what was paid, refunds taken off (paymentReport.summary.salesAndRevenue), divided by orderCount, rounded half up to the currency\'s minor digits, in the major unit of the group\'s currency (euros for EUR). Null when no order was sold, and then its change is left out of changes and changesFromBaseline. Left out without part summary
26423
+ * @type {number}
26424
+ * @memberof SalesReportGroupDto
26425
+ */
26426
+ 'averageOrderValue'?: number | null;
25812
26427
  /**
25813
26428
  *
25814
26429
  * @type {SalesReportGroupDtoComparison}
@@ -25860,6 +26475,12 @@ export interface SalesReportGroupDtoComparison {
25860
26475
  * @memberof SalesReportGroupDtoComparison
25861
26476
  */
25862
26477
  'lastBusinessDay': string;
26478
+ /**
26479
+ * compareSameTime only: the instant the compared last day was added up to, ISO 8601 in UTC: that day at the last full hour, on the report\'s clock, that both the daily rows and the hours have reached on the report\'s last day (a client says \"until 14:00\"). The report\'s own last day is cut at the same hour of its day, so both sides cover the same hours: the group\'s totals and dailyBreakdown of that day stop there too. Present when no venue and app of the group was compared whole that day (one that sold nothing that day counts as cut); absent when compareSameTime was not sent, the report\'s last day is over, or a venue\'s day had no hours yet and was compared whole. In a group of venues in several time zones each venue is cut at its own clock\'s hour of the same instant, which this names in the report\'s time zone
26480
+ * @type {string}
26481
+ * @memberof SalesReportGroupDtoComparison
26482
+ */
26483
+ 'comparedUntil'?: string;
25863
26484
  /**
25864
26485
  *
25865
26486
  * @type {SalesReportComparisonDtoSalesReport}
@@ -25878,6 +26499,18 @@ export interface SalesReportGroupDtoComparison {
25878
26499
  * @memberof SalesReportGroupDtoComparison
25879
26500
  */
25880
26501
  'dailyBreakdown'?: Array<SalesReportDayDto>;
26502
+ /**
26503
+ * Part summary: how many orders were sold, the sum of dailyBreakdown[].orders. POS counts orders as the till does, so a split bill counts once; kiosk, storefront and mobile count each of their orders once. A group that adds apps together (breakdown none or venue) adds POS\'s count to the other apps\' counts. Wolt, Foodora and other platform orders are not included. Count orders with this, never with paymentReport.summary.totalCount, which counts payments. Left out without part summary
26504
+ * @type {number}
26505
+ * @memberof SalesReportGroupDtoComparison
26506
+ */
26507
+ 'orderCount'?: number;
26508
+ /**
26509
+ * Part summary: what was paid, refunds taken off (paymentReport.summary.salesAndRevenue), divided by orderCount, rounded half up to the currency\'s minor digits, in the major unit of the group\'s currency (euros for EUR). Null when no order was sold, and then its change is left out of changes and changesFromBaseline. Left out without part summary
26510
+ * @type {number}
26511
+ * @memberof SalesReportGroupDtoComparison
26512
+ */
26513
+ 'averageOrderValue'?: number | null;
25881
26514
  /**
25882
26515
  * The change of each total either period answers, in ReportChangeField\'s order; empty when part summary was not asked
25883
26516
  * @type {Array<SalesReportChangeDto>}
@@ -25971,6 +26604,167 @@ export interface SalesReportGroupDtoSalesReport {
25971
26604
  */
25972
26605
  'deliveryTax'?: number;
25973
26606
  }
26607
+ /**
26608
+ *
26609
+ * @export
26610
+ * @interface SalesReportHourDto
26611
+ */
26612
+ export interface SalesReportHourDto {
26613
+ /**
26614
+ * The hour of the venue\'s clock, 0 to 23: its orders from hour:00 to hour:59. On the day the clocks go back, the hour that repeats holds both; on the day they go forward, the hour skipped holds nothing
26615
+ * @type {number}
26616
+ * @memberof SalesReportHourDto
26617
+ */
26618
+ 'hour': number;
26619
+ /**
26620
+ * The period\'s orders counted in this hour, as orderCount counts them
26621
+ * @type {number}
26622
+ * @memberof SalesReportHourDto
26623
+ */
26624
+ 'orderCount': number;
26625
+ /**
26626
+ * The period\'s sales of this hour, as the report\'s salesReport.totalWithTax adds them up, in the major unit: the 24 hours add up to the period\'s totalWithTax within each hour\'s own rounding to the minor unit
26627
+ * @type {number}
26628
+ * @memberof SalesReportHourDto
26629
+ */
26630
+ 'totalWithTax': number;
26631
+ /**
26632
+ * The hour\'s orders on an average finished day: orderCount less today\'s, divided by the group\'s daysAveraged, 2 decimals, rounded half up
26633
+ * @type {number}
26634
+ * @memberof SalesReportHourDto
26635
+ */
26636
+ 'averageOrderCount': number;
26637
+ /**
26638
+ * The hour\'s sales on an average finished day: totalWithTax less today\'s, divided by the group\'s daysAveraged, in the major unit, rounded half up to the currency\'s minor digits
26639
+ * @type {number}
26640
+ * @memberof SalesReportHourDto
26641
+ */
26642
+ 'averageTotalWithTax': number;
26643
+ /**
26644
+ * The period\'s sales of this hour without VAT, as the report\'s salesReport.totalWithoutTax adds them up (the POS\'s item lines without VAT, kiosk and online the tax summary\'s; with the forfeited vouchers where the app\'s report adds them), in the major unit; with totalWithTax less this, the hour\'s VAT
26645
+ * @type {number}
26646
+ * @memberof SalesReportHourDto
26647
+ */
26648
+ 'totalWithoutTax': number;
26649
+ /**
26650
+ * The hour\'s sales without VAT on an average finished day: totalWithoutTax less today\'s, divided by the group\'s daysAveraged, in the major unit, rounded half up to the currency\'s minor digits
26651
+ * @type {number}
26652
+ * @memberof SalesReportHourDto
26653
+ */
26654
+ 'averageTotalWithoutTax': number;
26655
+ }
26656
+ /**
26657
+ *
26658
+ * @export
26659
+ * @interface SalesReportHoursGroupDto
26660
+ */
26661
+ export interface SalesReportHoursGroupDto {
26662
+ /**
26663
+ * The venue\'s orderingBusinessId, or null when the breakdown adds venues together
26664
+ * @type {number}
26665
+ * @memberof SalesReportHoursGroupDto
26666
+ */
26667
+ 'businessId': number | null;
26668
+ /**
26669
+ *
26670
+ * @type {ReportApp}
26671
+ * @memberof SalesReportHoursGroupDto
26672
+ */
26673
+ 'app': ReportApp | null;
26674
+ /**
26675
+ *
26676
+ * @type {CurrencyCode}
26677
+ * @memberof SalesReportHoursGroupDto
26678
+ */
26679
+ 'currency': CurrencyCode;
26680
+ /**
26681
+ * Decimals of the currency\'s minor unit (2 for EUR)
26682
+ * @type {number}
26683
+ * @memberof SalesReportHoursGroupDto
26684
+ */
26685
+ 'minorDigits': number;
26686
+ /**
26687
+ * The finished days of the period (of isoWeekday, when sent) on which a venue or app of the group sold but has no hours yet (built before hours were kept, until their backfill): their sales are in no hour, and the averages leave them out. 0 when every day has them
26688
+ * @type {number}
26689
+ * @memberof SalesReportHoursGroupDto
26690
+ */
26691
+ 'daysWithoutHours': number;
26692
+ /**
26693
+ * What the group\'s averages divide by: daysCounted less daysWithoutHours
26694
+ * @type {number}
26695
+ * @memberof SalesReportHoursGroupDto
26696
+ */
26697
+ 'daysAveraged': number;
26698
+ /**
26699
+ * Every hour of the day, 0 to 23, in order
26700
+ * @type {Array<SalesReportHourDto>}
26701
+ * @memberof SalesReportHoursGroupDto
26702
+ */
26703
+ 'hours': Array<SalesReportHourDto>;
26704
+ }
26705
+
26706
+
26707
+ /**
26708
+ *
26709
+ * @export
26710
+ * @interface SalesReportHoursResponseDto
26711
+ */
26712
+ export interface SalesReportHoursResponseDto {
26713
+ /**
26714
+ * The first instant of the period, ISO 8601 in UTC
26715
+ * @type {string}
26716
+ * @memberof SalesReportHoursResponseDto
26717
+ */
26718
+ 'reportDateStart': string;
26719
+ /**
26720
+ * The last instant of the period, ISO 8601 in UTC; now, when the period ends later
26721
+ * @type {string}
26722
+ * @memberof SalesReportHoursResponseDto
26723
+ */
26724
+ 'reportDateEnd': string;
26725
+ /**
26726
+ * The IANA time zone the period\'s days are read in
26727
+ * @type {string}
26728
+ * @memberof SalesReportHoursResponseDto
26729
+ */
26730
+ 'timezone': string;
26731
+ /**
26732
+ * The first business day, YYYY-MM-DD
26733
+ * @type {string}
26734
+ * @memberof SalesReportHoursResponseDto
26735
+ */
26736
+ 'firstBusinessDay': string;
26737
+ /**
26738
+ * The last business day, YYYY-MM-DD, inclusive
26739
+ * @type {string}
26740
+ * @memberof SalesReportHoursResponseDto
26741
+ */
26742
+ 'lastBusinessDay': string;
26743
+ /**
26744
+ * The ISO weekday counted, 1 Monday to 7 Sunday, or null for every day
26745
+ * @type {number}
26746
+ * @memberof SalesReportHoursResponseDto
26747
+ */
26748
+ 'isoWeekday': number | null;
26749
+ /**
26750
+ * The finished calendar days of the period (of isoWeekday, when sent), sold on or not; today, still running, is not one of them. Each group\'s averages divide by its daysAveraged
26751
+ * @type {number}
26752
+ * @memberof SalesReportHoursResponseDto
26753
+ */
26754
+ 'daysCounted': number;
26755
+ /**
26756
+ * The newest BigQuery rebuild the rows read, ISO 8601 in UTC; null when none
26757
+ * @type {string}
26758
+ * @memberof SalesReportHoursResponseDto
26759
+ */
26760
+ 'dataUntil': string | null;
26761
+ /**
26762
+ * One group per venue, app and currency the breakdown keeps
26763
+ * @type {Array<SalesReportHoursGroupDto>}
26764
+ * @memberof SalesReportHoursResponseDto
26765
+ */
26766
+ 'groups': Array<SalesReportHoursGroupDto>;
26767
+ }
25974
26768
  /**
25975
26769
  *
25976
26770
  * @export
@@ -26069,6 +26863,251 @@ export interface SalesReportOptionDto {
26069
26863
  */
26070
26864
  'taxRate': object | null;
26071
26865
  }
26866
+ /**
26867
+ *
26868
+ * @export
26869
+ * @interface SalesReportOrderTypeDto
26870
+ */
26871
+ export interface SalesReportOrderTypeDto {
26872
+ /**
26873
+ *
26874
+ * @type {ReportOrderType}
26875
+ * @memberof SalesReportOrderTypeDto
26876
+ */
26877
+ 'orderType': ReportOrderType;
26878
+ /**
26879
+ * The period\'s orders of this type, as orderCount counts them
26880
+ * @type {number}
26881
+ * @memberof SalesReportOrderTypeDto
26882
+ */
26883
+ 'orderCount': number;
26884
+ /**
26885
+ * The period\'s sales of this type, as the report\'s salesReport.totalWithTax adds them up, in the major unit: the types add up to the period\'s totalWithTax within each type\'s own rounding to the minor unit
26886
+ * @type {number}
26887
+ * @memberof SalesReportOrderTypeDto
26888
+ */
26889
+ 'totalWithTax': number;
26890
+ /**
26891
+ * Their VAT, as salesReport.totalTaxAmount, in the major unit
26892
+ * @type {number}
26893
+ * @memberof SalesReportOrderTypeDto
26894
+ */
26895
+ 'totalTaxAmount': number;
26896
+ /**
26897
+ * Their sales without VAT, as salesReport.totalWithoutTax, in the major unit
26898
+ * @type {number}
26899
+ * @memberof SalesReportOrderTypeDto
26900
+ */
26901
+ 'totalWithoutTax': number;
26902
+ }
26903
+
26904
+
26905
+ /**
26906
+ *
26907
+ * @export
26908
+ * @interface SalesReportOrderTypesGroupDto
26909
+ */
26910
+ export interface SalesReportOrderTypesGroupDto {
26911
+ /**
26912
+ * The venue\'s orderingBusinessId, or null when the breakdown adds venues together
26913
+ * @type {number}
26914
+ * @memberof SalesReportOrderTypesGroupDto
26915
+ */
26916
+ 'businessId': number | null;
26917
+ /**
26918
+ *
26919
+ * @type {ReportApp}
26920
+ * @memberof SalesReportOrderTypesGroupDto
26921
+ */
26922
+ 'app': ReportApp | null;
26923
+ /**
26924
+ *
26925
+ * @type {CurrencyCode}
26926
+ * @memberof SalesReportOrderTypesGroupDto
26927
+ */
26928
+ 'currency': CurrencyCode;
26929
+ /**
26930
+ * Decimals of the currency\'s minor unit (2 for EUR)
26931
+ * @type {number}
26932
+ * @memberof SalesReportOrderTypesGroupDto
26933
+ */
26934
+ 'minorDigits': number;
26935
+ /**
26936
+ * Venue-app days of the period with sales but no order types yet (built before they were kept, until their backfill): their sales are in no type. 0 when every day has them
26937
+ * @type {number}
26938
+ * @memberof SalesReportOrderTypesGroupDto
26939
+ */
26940
+ 'daysWithoutOrderTypes': number;
26941
+ /**
26942
+ * Every order type, in the order eat_in, takeaway, delivery, unknown; a type nobody ordered answers zeros
26943
+ * @type {Array<SalesReportOrderTypeDto>}
26944
+ * @memberof SalesReportOrderTypesGroupDto
26945
+ */
26946
+ 'orderTypes': Array<SalesReportOrderTypeDto>;
26947
+ }
26948
+
26949
+
26950
+ /**
26951
+ *
26952
+ * @export
26953
+ * @interface SalesReportOrderTypesResponseDto
26954
+ */
26955
+ export interface SalesReportOrderTypesResponseDto {
26956
+ /**
26957
+ * The first instant of the period, ISO 8601 in UTC
26958
+ * @type {string}
26959
+ * @memberof SalesReportOrderTypesResponseDto
26960
+ */
26961
+ 'reportDateStart': string;
26962
+ /**
26963
+ * The last instant of the period, ISO 8601 in UTC; now, when the period ends later
26964
+ * @type {string}
26965
+ * @memberof SalesReportOrderTypesResponseDto
26966
+ */
26967
+ 'reportDateEnd': string;
26968
+ /**
26969
+ * The IANA time zone the period\'s days are read in
26970
+ * @type {string}
26971
+ * @memberof SalesReportOrderTypesResponseDto
26972
+ */
26973
+ 'timezone': string;
26974
+ /**
26975
+ * The first business day, YYYY-MM-DD
26976
+ * @type {string}
26977
+ * @memberof SalesReportOrderTypesResponseDto
26978
+ */
26979
+ 'firstBusinessDay': string;
26980
+ /**
26981
+ * The last business day, YYYY-MM-DD, inclusive
26982
+ * @type {string}
26983
+ * @memberof SalesReportOrderTypesResponseDto
26984
+ */
26985
+ 'lastBusinessDay': string;
26986
+ /**
26987
+ * The newest BigQuery rebuild the rows read, ISO 8601 in UTC; null when none
26988
+ * @type {string}
26989
+ * @memberof SalesReportOrderTypesResponseDto
26990
+ */
26991
+ 'dataUntil': string | null;
26992
+ /**
26993
+ * One group per venue, app and currency the breakdown keeps
26994
+ * @type {Array<SalesReportOrderTypesGroupDto>}
26995
+ * @memberof SalesReportOrderTypesResponseDto
26996
+ */
26997
+ 'groups': Array<SalesReportOrderTypesGroupDto>;
26998
+ }
26999
+ /**
27000
+ *
27001
+ * @export
27002
+ * @interface SalesReportPairDto
27003
+ */
27004
+ export interface SalesReportPairDto {
27005
+ /**
27006
+ *
27007
+ * @type {SalesReportPairDtoItemA}
27008
+ * @memberof SalesReportPairDto
27009
+ */
27010
+ 'itemA': SalesReportPairDtoItemA;
27011
+ /**
27012
+ *
27013
+ * @type {SalesReportPairDtoItemB}
27014
+ * @memberof SalesReportPairDto
27015
+ */
27016
+ 'itemB': SalesReportPairDtoItemB;
27017
+ /**
27018
+ * The period\'s orders with both items, each order once whatever the quantities. A lower bound when the group has daysWithPairsCut: a cut day kept only its top 25 pairs
27019
+ * @type {number}
27020
+ * @memberof SalesReportPairDto
27021
+ */
27022
+ 'orders': number;
27023
+ /**
27024
+ * Of the orders with itemA, the percent that also had itemB: orders / itemA.orders × 100, 2 decimals, half up
27025
+ * @type {number}
27026
+ * @memberof SalesReportPairDto
27027
+ */
27028
+ 'percentOfItemA': number;
27029
+ /**
27030
+ * Of the orders with itemB, the percent that also had itemA: orders / itemB.orders × 100, 2 decimals, half up
27031
+ * @type {number}
27032
+ * @memberof SalesReportPairDto
27033
+ */
27034
+ 'percentOfItemB': number;
27035
+ }
27036
+ /**
27037
+ * One item of the pair: the one whose key sorts first
27038
+ * @export
27039
+ * @interface SalesReportPairDtoItemA
27040
+ */
27041
+ export interface SalesReportPairDtoItemA {
27042
+ /**
27043
+ * The item\'s key: the POS posId, the online product id
27044
+ * @type {string}
27045
+ * @memberof SalesReportPairDtoItemA
27046
+ */
27047
+ 'itemKey': string;
27048
+ /**
27049
+ * The item\'s least name over the period, as the sales report names it; null when none was recorded
27050
+ * @type {string}
27051
+ * @memberof SalesReportPairDtoItemA
27052
+ */
27053
+ 'name': string | null;
27054
+ /**
27055
+ * The period\'s orders with the item (as its own line, never as an option)
27056
+ * @type {number}
27057
+ * @memberof SalesReportPairDtoItemA
27058
+ */
27059
+ 'orders': number;
27060
+ }
27061
+ /**
27062
+ * The other item of the pair
27063
+ * @export
27064
+ * @interface SalesReportPairDtoItemB
27065
+ */
27066
+ export interface SalesReportPairDtoItemB {
27067
+ /**
27068
+ * The item\'s key: the POS posId, the online product id
27069
+ * @type {string}
27070
+ * @memberof SalesReportPairDtoItemB
27071
+ */
27072
+ 'itemKey': string;
27073
+ /**
27074
+ * The item\'s least name over the period, as the sales report names it; null when none was recorded
27075
+ * @type {string}
27076
+ * @memberof SalesReportPairDtoItemB
27077
+ */
27078
+ 'name': string | null;
27079
+ /**
27080
+ * The period\'s orders with the item (as its own line, never as an option)
27081
+ * @type {number}
27082
+ * @memberof SalesReportPairDtoItemB
27083
+ */
27084
+ 'orders': number;
27085
+ }
27086
+ /**
27087
+ *
27088
+ * @export
27089
+ * @interface SalesReportPairItemDto
27090
+ */
27091
+ export interface SalesReportPairItemDto {
27092
+ /**
27093
+ * The item\'s key: the POS posId, the online product id
27094
+ * @type {string}
27095
+ * @memberof SalesReportPairItemDto
27096
+ */
27097
+ 'itemKey': string;
27098
+ /**
27099
+ * The item\'s least name over the period, as the sales report names it; null when none was recorded
27100
+ * @type {string}
27101
+ * @memberof SalesReportPairItemDto
27102
+ */
27103
+ 'name': string | null;
27104
+ /**
27105
+ * The period\'s orders with the item (as its own line, never as an option)
27106
+ * @type {number}
27107
+ * @memberof SalesReportPairItemDto
27108
+ */
27109
+ 'orders': number;
27110
+ }
26072
27111
  /**
26073
27112
  *
26074
27113
  * @export
@@ -26385,6 +27424,12 @@ export interface SalesReportResponseDto {
26385
27424
  * @memberof SalesReportResponseDto
26386
27425
  */
26387
27426
  'reports': Array<SalesReportGroupDto>;
27427
+ /**
27428
+ * The short report (GET /api/v6/report/sales/short), when the breakdown splits several venues or apps: their groups added together, one per currency, as breakdown none answers them (comparison and changes too), so the parts and their total come in one answer
27429
+ * @type {Array<SalesReportGroupDto>}
27430
+ * @memberof SalesReportResponseDto
27431
+ */
27432
+ 'totals'?: Array<SalesReportGroupDto>;
26388
27433
  }
26389
27434
  /**
26390
27435
  *
@@ -26441,6 +27486,563 @@ export interface SalesReportSalesDto {
26441
27486
  */
26442
27487
  'deliveryTax'?: number;
26443
27488
  }
27489
+ /**
27490
+ *
27491
+ * @export
27492
+ * @interface SalesReportShortCategoryDto
27493
+ */
27494
+ export interface SalesReportShortCategoryDto {
27495
+ /**
27496
+ * The category\'s name
27497
+ * @type {string}
27498
+ * @memberof SalesReportShortCategoryDto
27499
+ */
27500
+ 'categoryName': string;
27501
+ /**
27502
+ * How many of its items were sold
27503
+ * @type {number}
27504
+ * @memberof SalesReportShortCategoryDto
27505
+ */
27506
+ 'totalQuantity': number;
27507
+ /**
27508
+ * Sales with VAT, in the major unit of the group\'s currency (euros for EUR)
27509
+ * @type {number}
27510
+ * @memberof SalesReportShortCategoryDto
27511
+ */
27512
+ 'totalWithTax': number;
27513
+ /**
27514
+ * The VAT, in the major unit of the group\'s currency (euros for EUR)
27515
+ * @type {number}
27516
+ * @memberof SalesReportShortCategoryDto
27517
+ */
27518
+ 'taxAmount': number;
27519
+ /**
27520
+ * Sales without VAT, in the major unit of the group\'s currency (euros for EUR)
27521
+ * @type {number}
27522
+ * @memberof SalesReportShortCategoryDto
27523
+ */
27524
+ 'totalWithoutTax': number;
27525
+ }
27526
+ /**
27527
+ *
27528
+ * @export
27529
+ * @interface SalesReportShortComparisonDto
27530
+ */
27531
+ export interface SalesReportShortComparisonDto {
27532
+ /**
27533
+ * The first instant of the compared period, ISO 8601 in UTC
27534
+ * @type {string}
27535
+ * @memberof SalesReportShortComparisonDto
27536
+ */
27537
+ 'reportDateStart': string;
27538
+ /**
27539
+ * The last instant of the compared period, ISO 8601 in UTC; now, when the period ends later
27540
+ * @type {string}
27541
+ * @memberof SalesReportShortComparisonDto
27542
+ */
27543
+ 'reportDateEnd': string;
27544
+ /**
27545
+ * The first business day compared, YYYY-MM-DD, in the report\'s time zone
27546
+ * @type {string}
27547
+ * @memberof SalesReportShortComparisonDto
27548
+ */
27549
+ 'firstBusinessDay': string;
27550
+ /**
27551
+ * The last business day compared, YYYY-MM-DD, inclusive
27552
+ * @type {string}
27553
+ * @memberof SalesReportShortComparisonDto
27554
+ */
27555
+ 'lastBusinessDay': string;
27556
+ /**
27557
+ * compareSameTime only: the instant the compared last day was added up to, ISO 8601 in UTC: that day at the last full hour, on the report\'s clock, that both the daily rows and the hours have reached on the report\'s last day (a client says \"until 14:00\"). The report\'s own last day is cut at the same hour of its day, so both sides cover the same hours: the group\'s totals and dailyBreakdown of that day stop there too. Present when no venue and app of the group was compared whole that day (one that sold nothing that day counts as cut); absent when compareSameTime was not sent, the report\'s last day is over, or a venue\'s day had no hours yet and was compared whole. In a group of venues in several time zones each venue is cut at its own clock\'s hour of the same instant, which this names in the report\'s time zone
27558
+ * @type {string}
27559
+ * @memberof SalesReportShortComparisonDto
27560
+ */
27561
+ 'comparedUntil'?: string;
27562
+ /**
27563
+ *
27564
+ * @type {SalesReportComparisonDtoPaymentReport}
27565
+ * @memberof SalesReportShortComparisonDto
27566
+ */
27567
+ 'paymentReport'?: SalesReportComparisonDtoPaymentReport;
27568
+ /**
27569
+ * The compared period\'s days that sold, oldest first, as the group\'s own dailyBreakdown: present when it is
27570
+ * @type {Array<SalesReportDayDto>}
27571
+ * @memberof SalesReportShortComparisonDto
27572
+ */
27573
+ 'dailyBreakdown'?: Array<SalesReportDayDto>;
27574
+ /**
27575
+ * Part summary: how many orders were sold, the sum of dailyBreakdown[].orders. POS counts orders as the till does, so a split bill counts once; kiosk, storefront and mobile count each of their orders once. A group that adds apps together (breakdown none or venue) adds POS\'s count to the other apps\' counts. Wolt, Foodora and other platform orders are not included. Count orders with this, never with paymentReport.summary.totalCount, which counts payments. Left out without part summary
27576
+ * @type {number}
27577
+ * @memberof SalesReportShortComparisonDto
27578
+ */
27579
+ 'orderCount'?: number;
27580
+ /**
27581
+ * Part summary: what was paid, refunds taken off (paymentReport.summary.salesAndRevenue), divided by orderCount, rounded half up to the currency\'s minor digits, in the major unit of the group\'s currency (euros for EUR). Null when no order was sold, and then its change is left out of changes and changesFromBaseline. Left out without part summary
27582
+ * @type {number}
27583
+ * @memberof SalesReportShortComparisonDto
27584
+ */
27585
+ 'averageOrderValue'?: number | null;
27586
+ /**
27587
+ * The change of each total either period answers, in ReportChangeField\'s order; empty when part summary was not asked
27588
+ * @type {Array<SalesReportChangeDto>}
27589
+ * @memberof SalesReportShortComparisonDto
27590
+ */
27591
+ 'changes': Array<SalesReportChangeDto>;
27592
+ /**
27593
+ *
27594
+ * @type {SalesReportShortComparisonDtoSalesReport}
27595
+ * @memberof SalesReportShortComparisonDto
27596
+ */
27597
+ 'salesReport'?: SalesReportShortComparisonDtoSalesReport;
27598
+ }
27599
+ /**
27600
+ * The compared period\'s salesReport, short as the group\'s own: present when it is
27601
+ * @export
27602
+ * @interface SalesReportShortComparisonDtoSalesReport
27603
+ */
27604
+ export interface SalesReportShortComparisonDtoSalesReport {
27605
+ /**
27606
+ * Part vat: one row per VAT rate, lowest first
27607
+ * @type {Array<SalesReportVatRateDto>}
27608
+ * @memberof SalesReportShortComparisonDtoSalesReport
27609
+ */
27610
+ 'taxSummary'?: Array<SalesReportVatRateDto>;
27611
+ /**
27612
+ * Part summary: how many items were sold
27613
+ * @type {number}
27614
+ * @memberof SalesReportShortComparisonDtoSalesReport
27615
+ */
27616
+ 'totalQuantity'?: number;
27617
+ /**
27618
+ * Part summary: sales with VAT, in the major unit of the group\'s currency (euros for EUR)
27619
+ * @type {number}
27620
+ * @memberof SalesReportShortComparisonDtoSalesReport
27621
+ */
27622
+ 'totalWithTax'?: number;
27623
+ /**
27624
+ * Part summary: the VAT, in the major unit of the group\'s currency (euros for EUR)
27625
+ * @type {number}
27626
+ * @memberof SalesReportShortComparisonDtoSalesReport
27627
+ */
27628
+ 'totalTaxAmount'?: number;
27629
+ /**
27630
+ * Part summary: sales without VAT, in the major unit of the group\'s currency (euros for EUR)
27631
+ * @type {number}
27632
+ * @memberof SalesReportShortComparisonDtoSalesReport
27633
+ */
27634
+ 'totalWithoutTax'?: number;
27635
+ /**
27636
+ * Part summary, storefront and mobile: the delivery fees charged, in the major unit of the group\'s currency (euros for EUR); left out when none was
27637
+ * @type {number}
27638
+ * @memberof SalesReportShortComparisonDtoSalesReport
27639
+ */
27640
+ 'deliveryFee'?: number;
27641
+ /**
27642
+ * Part summary, with deliveryFee: the VAT of the delivery fees, in the major unit of the group\'s currency (euros for EUR)
27643
+ * @type {number}
27644
+ * @memberof SalesReportShortComparisonDtoSalesReport
27645
+ */
27646
+ 'deliveryTax'?: number;
27647
+ /**
27648
+ * Part items: each category\'s totals, without its items
27649
+ * @type {Array<SalesReportShortCategoryDto>}
27650
+ * @memberof SalesReportShortComparisonDtoSalesReport
27651
+ */
27652
+ 'categories'?: Array<SalesReportShortCategoryDto>;
27653
+ /**
27654
+ * Part items: the 10 items with the most sales with VAT, most first (then the most sold); an item in several categories is added up once
27655
+ * @type {Array<SalesReportTopItemDto>}
27656
+ * @memberof SalesReportShortComparisonDtoSalesReport
27657
+ */
27658
+ 'topItemsBySales'?: Array<SalesReportTopItemDto>;
27659
+ /**
27660
+ * Part items: the 10 items sold most often, most first (then the most sales); an item in several categories is added up once
27661
+ * @type {Array<SalesReportTopItemDto>}
27662
+ * @memberof SalesReportShortComparisonDtoSalesReport
27663
+ */
27664
+ 'topItemsByQuantity'?: Array<SalesReportTopItemDto>;
27665
+ }
27666
+ /**
27667
+ *
27668
+ * @export
27669
+ * @interface SalesReportShortGroupDto
27670
+ */
27671
+ export interface SalesReportShortGroupDto {
27672
+ /**
27673
+ * The venue\'s business id; null when the breakdown adds venues together (none, app)
27674
+ * @type {object}
27675
+ * @memberof SalesReportShortGroupDto
27676
+ */
27677
+ 'businessId': object | null;
27678
+ /**
27679
+ *
27680
+ * @type {ReportApp}
27681
+ * @memberof SalesReportShortGroupDto
27682
+ */
27683
+ 'app': ReportApp | null;
27684
+ /**
27685
+ *
27686
+ * @type {CurrencyCode}
27687
+ * @memberof SalesReportShortGroupDto
27688
+ */
27689
+ 'currency': CurrencyCode;
27690
+ /**
27691
+ * The currency\'s ISO 4217 minor digits: EUR 2, ISK 0, BHD 3
27692
+ * @type {number}
27693
+ * @memberof SalesReportShortGroupDto
27694
+ */
27695
+ 'minorDigits': number;
27696
+ /**
27697
+ *
27698
+ * @type {SalesReportGroupDtoPaymentReport}
27699
+ * @memberof SalesReportShortGroupDto
27700
+ */
27701
+ 'paymentReport'?: SalesReportGroupDtoPaymentReport;
27702
+ /**
27703
+ * Part summary: one row per business day that sold, oldest first. POS leaves it out when no day sold
27704
+ * @type {Array<SalesReportDayDto>}
27705
+ * @memberof SalesReportShortGroupDto
27706
+ */
27707
+ 'dailyBreakdown'?: Array<SalesReportDayDto>;
27708
+ /**
27709
+ * Part summary: how many orders were sold, the sum of dailyBreakdown[].orders. POS counts orders as the till does, so a split bill counts once; kiosk, storefront and mobile count each of their orders once. A group that adds apps together (breakdown none or venue) adds POS\'s count to the other apps\' counts. Wolt, Foodora and other platform orders are not included. Count orders with this, never with paymentReport.summary.totalCount, which counts payments. Left out without part summary
27710
+ * @type {number}
27711
+ * @memberof SalesReportShortGroupDto
27712
+ */
27713
+ 'orderCount'?: number;
27714
+ /**
27715
+ * Part summary: what was paid, refunds taken off (paymentReport.summary.salesAndRevenue), divided by orderCount, rounded half up to the currency\'s minor digits, in the major unit of the group\'s currency (euros for EUR). Null when no order was sold, and then its change is left out of changes and changesFromBaseline. Left out without part summary
27716
+ * @type {number}
27717
+ * @memberof SalesReportShortGroupDto
27718
+ */
27719
+ 'averageOrderValue'?: number | null;
27720
+ /**
27721
+ * With baseline, every group but the baseline: the change of each total from the baseline group of the same currency (current: this group; previous: the baseline), of the main period only, worked out exactly
27722
+ * @type {Array<SalesReportChangeDto>}
27723
+ * @memberof SalesReportShortGroupDto
27724
+ */
27725
+ 'changesFromBaseline'?: Array<SalesReportChangeDto>;
27726
+ /**
27727
+ *
27728
+ * @type {ReportBaselineLeftOut}
27729
+ * @memberof SalesReportShortGroupDto
27730
+ */
27731
+ 'changesFromBaselineLeftOut'?: ReportBaselineLeftOut;
27732
+ /**
27733
+ *
27734
+ * @type {SalesReportShortGroupDtoSalesReport}
27735
+ * @memberof SalesReportShortGroupDto
27736
+ */
27737
+ 'salesReport'?: SalesReportShortGroupDtoSalesReport;
27738
+ /**
27739
+ *
27740
+ * @type {SalesReportShortGroupDtoComparison}
27741
+ * @memberof SalesReportShortGroupDto
27742
+ */
27743
+ 'comparison'?: SalesReportShortGroupDtoComparison;
27744
+ }
27745
+
27746
+
27747
+ /**
27748
+ * With compareStart and compareEnd: the same group\'s short report of those days and the change of each total
27749
+ * @export
27750
+ * @interface SalesReportShortGroupDtoComparison
27751
+ */
27752
+ export interface SalesReportShortGroupDtoComparison {
27753
+ /**
27754
+ * The first instant of the compared period, ISO 8601 in UTC
27755
+ * @type {string}
27756
+ * @memberof SalesReportShortGroupDtoComparison
27757
+ */
27758
+ 'reportDateStart': string;
27759
+ /**
27760
+ * The last instant of the compared period, ISO 8601 in UTC; now, when the period ends later
27761
+ * @type {string}
27762
+ * @memberof SalesReportShortGroupDtoComparison
27763
+ */
27764
+ 'reportDateEnd': string;
27765
+ /**
27766
+ * The first business day compared, YYYY-MM-DD, in the report\'s time zone
27767
+ * @type {string}
27768
+ * @memberof SalesReportShortGroupDtoComparison
27769
+ */
27770
+ 'firstBusinessDay': string;
27771
+ /**
27772
+ * The last business day compared, YYYY-MM-DD, inclusive
27773
+ * @type {string}
27774
+ * @memberof SalesReportShortGroupDtoComparison
27775
+ */
27776
+ 'lastBusinessDay': string;
27777
+ /**
27778
+ * compareSameTime only: the instant the compared last day was added up to, ISO 8601 in UTC: that day at the last full hour, on the report\'s clock, that both the daily rows and the hours have reached on the report\'s last day (a client says \"until 14:00\"). The report\'s own last day is cut at the same hour of its day, so both sides cover the same hours: the group\'s totals and dailyBreakdown of that day stop there too. Present when no venue and app of the group was compared whole that day (one that sold nothing that day counts as cut); absent when compareSameTime was not sent, the report\'s last day is over, or a venue\'s day had no hours yet and was compared whole. In a group of venues in several time zones each venue is cut at its own clock\'s hour of the same instant, which this names in the report\'s time zone
27779
+ * @type {string}
27780
+ * @memberof SalesReportShortGroupDtoComparison
27781
+ */
27782
+ 'comparedUntil'?: string;
27783
+ /**
27784
+ *
27785
+ * @type {SalesReportComparisonDtoPaymentReport}
27786
+ * @memberof SalesReportShortGroupDtoComparison
27787
+ */
27788
+ 'paymentReport'?: SalesReportComparisonDtoPaymentReport;
27789
+ /**
27790
+ * The compared period\'s days that sold, oldest first, as the group\'s own dailyBreakdown: present when it is
27791
+ * @type {Array<SalesReportDayDto>}
27792
+ * @memberof SalesReportShortGroupDtoComparison
27793
+ */
27794
+ 'dailyBreakdown'?: Array<SalesReportDayDto>;
27795
+ /**
27796
+ * Part summary: how many orders were sold, the sum of dailyBreakdown[].orders. POS counts orders as the till does, so a split bill counts once; kiosk, storefront and mobile count each of their orders once. A group that adds apps together (breakdown none or venue) adds POS\'s count to the other apps\' counts. Wolt, Foodora and other platform orders are not included. Count orders with this, never with paymentReport.summary.totalCount, which counts payments. Left out without part summary
27797
+ * @type {number}
27798
+ * @memberof SalesReportShortGroupDtoComparison
27799
+ */
27800
+ 'orderCount'?: number;
27801
+ /**
27802
+ * Part summary: what was paid, refunds taken off (paymentReport.summary.salesAndRevenue), divided by orderCount, rounded half up to the currency\'s minor digits, in the major unit of the group\'s currency (euros for EUR). Null when no order was sold, and then its change is left out of changes and changesFromBaseline. Left out without part summary
27803
+ * @type {number}
27804
+ * @memberof SalesReportShortGroupDtoComparison
27805
+ */
27806
+ 'averageOrderValue'?: number | null;
27807
+ /**
27808
+ * The change of each total either period answers, in ReportChangeField\'s order; empty when part summary was not asked
27809
+ * @type {Array<SalesReportChangeDto>}
27810
+ * @memberof SalesReportShortGroupDtoComparison
27811
+ */
27812
+ 'changes': Array<SalesReportChangeDto>;
27813
+ /**
27814
+ *
27815
+ * @type {SalesReportShortComparisonDtoSalesReport}
27816
+ * @memberof SalesReportShortGroupDtoComparison
27817
+ */
27818
+ 'salesReport'?: SalesReportShortComparisonDtoSalesReport;
27819
+ }
27820
+ /**
27821
+ * The group\'s salesReport, short: present when part summary, items or vat was asked
27822
+ * @export
27823
+ * @interface SalesReportShortGroupDtoSalesReport
27824
+ */
27825
+ export interface SalesReportShortGroupDtoSalesReport {
27826
+ /**
27827
+ * Part vat: one row per VAT rate, lowest first
27828
+ * @type {Array<SalesReportVatRateDto>}
27829
+ * @memberof SalesReportShortGroupDtoSalesReport
27830
+ */
27831
+ 'taxSummary'?: Array<SalesReportVatRateDto>;
27832
+ /**
27833
+ * Part summary: how many items were sold
27834
+ * @type {number}
27835
+ * @memberof SalesReportShortGroupDtoSalesReport
27836
+ */
27837
+ 'totalQuantity'?: number;
27838
+ /**
27839
+ * Part summary: sales with VAT, in the major unit of the group\'s currency (euros for EUR)
27840
+ * @type {number}
27841
+ * @memberof SalesReportShortGroupDtoSalesReport
27842
+ */
27843
+ 'totalWithTax'?: number;
27844
+ /**
27845
+ * Part summary: the VAT, in the major unit of the group\'s currency (euros for EUR)
27846
+ * @type {number}
27847
+ * @memberof SalesReportShortGroupDtoSalesReport
27848
+ */
27849
+ 'totalTaxAmount'?: number;
27850
+ /**
27851
+ * Part summary: sales without VAT, in the major unit of the group\'s currency (euros for EUR)
27852
+ * @type {number}
27853
+ * @memberof SalesReportShortGroupDtoSalesReport
27854
+ */
27855
+ 'totalWithoutTax'?: number;
27856
+ /**
27857
+ * Part summary, storefront and mobile: the delivery fees charged, in the major unit of the group\'s currency (euros for EUR); left out when none was
27858
+ * @type {number}
27859
+ * @memberof SalesReportShortGroupDtoSalesReport
27860
+ */
27861
+ 'deliveryFee'?: number;
27862
+ /**
27863
+ * Part summary, with deliveryFee: the VAT of the delivery fees, in the major unit of the group\'s currency (euros for EUR)
27864
+ * @type {number}
27865
+ * @memberof SalesReportShortGroupDtoSalesReport
27866
+ */
27867
+ 'deliveryTax'?: number;
27868
+ /**
27869
+ * Part items: each category\'s totals, without its items
27870
+ * @type {Array<SalesReportShortCategoryDto>}
27871
+ * @memberof SalesReportShortGroupDtoSalesReport
27872
+ */
27873
+ 'categories'?: Array<SalesReportShortCategoryDto>;
27874
+ /**
27875
+ * Part items: the 10 items with the most sales with VAT, most first (then the most sold); an item in several categories is added up once
27876
+ * @type {Array<SalesReportTopItemDto>}
27877
+ * @memberof SalesReportShortGroupDtoSalesReport
27878
+ */
27879
+ 'topItemsBySales'?: Array<SalesReportTopItemDto>;
27880
+ /**
27881
+ * Part items: the 10 items sold most often, most first (then the most sales); an item in several categories is added up once
27882
+ * @type {Array<SalesReportTopItemDto>}
27883
+ * @memberof SalesReportShortGroupDtoSalesReport
27884
+ */
27885
+ 'topItemsByQuantity'?: Array<SalesReportTopItemDto>;
27886
+ }
27887
+ /**
27888
+ *
27889
+ * @export
27890
+ * @interface SalesReportShortResponseDto
27891
+ */
27892
+ export interface SalesReportShortResponseDto {
27893
+ /**
27894
+ * The first instant of the period, ISO 8601 in UTC
27895
+ * @type {string}
27896
+ * @memberof SalesReportShortResponseDto
27897
+ */
27898
+ 'reportDateStart': string;
27899
+ /**
27900
+ * The last instant of the period, ISO 8601 in UTC; now, when the period ends later
27901
+ * @type {string}
27902
+ * @memberof SalesReportShortResponseDto
27903
+ */
27904
+ 'reportDateEnd': string;
27905
+ /**
27906
+ * When the report was answered, ISO 8601 in UTC
27907
+ * @type {string}
27908
+ * @memberof SalesReportShortResponseDto
27909
+ */
27910
+ 'reportGeneratedAt': string;
27911
+ /**
27912
+ * The time zone the period was read in: the request\'s, or else the first venue\'s
27913
+ * @type {string}
27914
+ * @memberof SalesReportShortResponseDto
27915
+ */
27916
+ 'timezone': string;
27917
+ /**
27918
+ * The first business day added up, YYYY-MM-DD; each venue\'s rows of that date in its own zone
27919
+ * @type {string}
27920
+ * @memberof SalesReportShortResponseDto
27921
+ */
27922
+ 'firstBusinessDay': string;
27923
+ /**
27924
+ * The last business day added up, YYYY-MM-DD, inclusive
27925
+ * @type {string}
27926
+ * @memberof SalesReportShortResponseDto
27927
+ */
27928
+ 'lastBusinessDay': string;
27929
+ /**
27930
+ * When the newest daily rows this report reads were rebuilt; a sale after it may not be counted yet (they are rebuilt every 5 minutes). Null when none were ever loaded
27931
+ * @type {object}
27932
+ * @memberof SalesReportShortResponseDto
27933
+ */
27934
+ 'dataUntil': object | null;
27935
+ /**
27936
+ * One group per venue, app and currency the breakdown keeps, as GET /api/v6/report/sales answers them, short
27937
+ * @type {Array<SalesReportShortGroupDto>}
27938
+ * @memberof SalesReportShortResponseDto
27939
+ */
27940
+ 'reports': Array<SalesReportShortGroupDto>;
27941
+ /**
27942
+ * When the breakdown splits several venues or apps: their groups added together, one per currency, short
27943
+ * @type {Array<SalesReportShortGroupDto>}
27944
+ * @memberof SalesReportShortResponseDto
27945
+ */
27946
+ 'totals'?: Array<SalesReportShortGroupDto>;
27947
+ }
27948
+ /**
27949
+ *
27950
+ * @export
27951
+ * @interface SalesReportShortSalesDto
27952
+ */
27953
+ export interface SalesReportShortSalesDto {
27954
+ /**
27955
+ * Part vat: one row per VAT rate, lowest first
27956
+ * @type {Array<SalesReportVatRateDto>}
27957
+ * @memberof SalesReportShortSalesDto
27958
+ */
27959
+ 'taxSummary'?: Array<SalesReportVatRateDto>;
27960
+ /**
27961
+ * Part summary: how many items were sold
27962
+ * @type {number}
27963
+ * @memberof SalesReportShortSalesDto
27964
+ */
27965
+ 'totalQuantity'?: number;
27966
+ /**
27967
+ * Part summary: sales with VAT, in the major unit of the group\'s currency (euros for EUR)
27968
+ * @type {number}
27969
+ * @memberof SalesReportShortSalesDto
27970
+ */
27971
+ 'totalWithTax'?: number;
27972
+ /**
27973
+ * Part summary: the VAT, in the major unit of the group\'s currency (euros for EUR)
27974
+ * @type {number}
27975
+ * @memberof SalesReportShortSalesDto
27976
+ */
27977
+ 'totalTaxAmount'?: number;
27978
+ /**
27979
+ * Part summary: sales without VAT, in the major unit of the group\'s currency (euros for EUR)
27980
+ * @type {number}
27981
+ * @memberof SalesReportShortSalesDto
27982
+ */
27983
+ 'totalWithoutTax'?: number;
27984
+ /**
27985
+ * Part summary, storefront and mobile: the delivery fees charged, in the major unit of the group\'s currency (euros for EUR); left out when none was
27986
+ * @type {number}
27987
+ * @memberof SalesReportShortSalesDto
27988
+ */
27989
+ 'deliveryFee'?: number;
27990
+ /**
27991
+ * Part summary, with deliveryFee: the VAT of the delivery fees, in the major unit of the group\'s currency (euros for EUR)
27992
+ * @type {number}
27993
+ * @memberof SalesReportShortSalesDto
27994
+ */
27995
+ 'deliveryTax'?: number;
27996
+ /**
27997
+ * Part items: each category\'s totals, without its items
27998
+ * @type {Array<SalesReportShortCategoryDto>}
27999
+ * @memberof SalesReportShortSalesDto
28000
+ */
28001
+ 'categories'?: Array<SalesReportShortCategoryDto>;
28002
+ /**
28003
+ * Part items: the 10 items with the most sales with VAT, most first (then the most sold); an item in several categories is added up once
28004
+ * @type {Array<SalesReportTopItemDto>}
28005
+ * @memberof SalesReportShortSalesDto
28006
+ */
28007
+ 'topItemsBySales'?: Array<SalesReportTopItemDto>;
28008
+ /**
28009
+ * Part items: the 10 items sold most often, most first (then the most sales); an item in several categories is added up once
28010
+ * @type {Array<SalesReportTopItemDto>}
28011
+ * @memberof SalesReportShortSalesDto
28012
+ */
28013
+ 'topItemsByQuantity'?: Array<SalesReportTopItemDto>;
28014
+ }
28015
+ /**
28016
+ *
28017
+ * @export
28018
+ * @interface SalesReportTopItemDto
28019
+ */
28020
+ export interface SalesReportTopItemDto {
28021
+ /**
28022
+ * The item\'s name, as the full report names it; items of the same name in several categories are one. Null when the sale carried no name: such an item is its product id, and one with neither is listed alone
28023
+ * @type {object}
28024
+ * @memberof SalesReportTopItemDto
28025
+ */
28026
+ 'name': object | null;
28027
+ /**
28028
+ * The categories it sold in
28029
+ * @type {Array<string>}
28030
+ * @memberof SalesReportTopItemDto
28031
+ */
28032
+ 'categoryNames': Array<string>;
28033
+ /**
28034
+ * How many were sold, in every category
28035
+ * @type {number}
28036
+ * @memberof SalesReportTopItemDto
28037
+ */
28038
+ 'quantity': number;
28039
+ /**
28040
+ * Sales with VAT, in every category, in the major unit of the group\'s currency (euros for EUR), rounded to its minor digits
28041
+ * @type {number}
28042
+ * @memberof SalesReportTopItemDto
28043
+ */
28044
+ 'totalWithTax': number;
28045
+ }
26444
28046
  /**
26445
28047
  *
26446
28048
  * @export
@@ -26575,6 +28177,50 @@ export interface SalesSummaryDtoV2 {
26575
28177
  */
26576
28178
  'totalSurchargeAmount': number;
26577
28179
  }
28180
+ /**
28181
+ *
28182
+ * @export
28183
+ * @interface SaveAnalyticsDashboardDto
28184
+ */
28185
+ export interface SaveAnalyticsDashboardDto {
28186
+ /**
28187
+ * The cards in the order they are shown, first card first; at most 60. An empty list saves an empty dashboard.
28188
+ * @type {Array<AnalyticsDashboardCardDto>}
28189
+ * @memberof SaveAnalyticsDashboardDto
28190
+ */
28191
+ 'cards': Array<AnalyticsDashboardCardDto>;
28192
+ /**
28193
+ *
28194
+ * @type {SaveAnalyticsDashboardDtoGoals}
28195
+ * @memberof SaveAnalyticsDashboardDto
28196
+ */
28197
+ 'goals': SaveAnalyticsDashboardDtoGoals;
28198
+ /**
28199
+ * The version the dashboard was read at, from its GET. Absent or null only to create the first dashboard; answered 409 when someone saved since, or when one already exists.
28200
+ * @type {number}
28201
+ * @memberof SaveAnalyticsDashboardDto
28202
+ */
28203
+ 'expectedVersion'?: number | null;
28204
+ }
28205
+ /**
28206
+ * The sales goals the cards measure against; an empty object saves none.
28207
+ * @export
28208
+ * @interface SaveAnalyticsDashboardDtoGoals
28209
+ */
28210
+ export interface SaveAnalyticsDashboardDtoGoals {
28211
+ /**
28212
+ * The day\'s sales goal, a whole number in the minor unit of the store\'s currency (cents for EUR). Absent: no day goal.
28213
+ * @type {number}
28214
+ * @memberof SaveAnalyticsDashboardDtoGoals
28215
+ */
28216
+ 'daySales'?: number;
28217
+ /**
28218
+ * The month\'s sales goal, a whole number in the minor unit of the store\'s currency (cents for EUR). Absent: no month goal.
28219
+ * @type {number}
28220
+ * @memberof SaveAnalyticsDashboardDtoGoals
28221
+ */
28222
+ 'monthSales'?: number;
28223
+ }
26578
28224
  /**
26579
28225
  *
26580
28226
  * @export
@@ -26755,6 +28401,34 @@ export interface SendReportEmailDto {
26755
28401
  }
26756
28402
 
26757
28403
 
28404
+ /**
28405
+ *
28406
+ * @export
28407
+ * @interface ServeMcpRequest403Response
28408
+ */
28409
+ export interface ServeMcpRequest403Response {
28410
+ /**
28411
+ * Why the person\'s request is refused
28412
+ * @type {string}
28413
+ * @memberof ServeMcpRequest403Response
28414
+ */
28415
+ 'error'?: ErrorEnum;
28416
+ /**
28417
+ * With NOT_STORE_OWNER: each venue a tool call named that the person does not own
28418
+ * @type {Array<any>}
28419
+ * @memberof ServeMcpRequest403Response
28420
+ */
28421
+ 'venueIds'?: Array<any>;
28422
+ }
28423
+
28424
+ export const ErrorEnum = {
28425
+ NoAriAccess: 'NO_ARI_ACCESS',
28426
+ NotStoreOwner: 'NOT_STORE_OWNER',
28427
+ RightsUnavailable: 'RIGHTS_UNAVAILABLE'
28428
+ } as const;
28429
+
28430
+ export type ErrorEnum = typeof ErrorEnum[keyof typeof ErrorEnum];
28431
+
26758
28432
  /**
26759
28433
  *
26760
28434
  * @export
@@ -31255,6 +32929,12 @@ export interface UnifiedProductDto {
31255
32929
  * @memberof UnifiedProductDto
31256
32930
  */
31257
32931
  'options': Array<UnifiedOptionDto>;
32932
+ /**
32933
+ * Every ingredient shown on the guest\'s card for this product, kept (removed false) and removed, in the card\'s order. Absent only when no card was shown.
32934
+ * @type {Array<OrderIngredientDto>}
32935
+ * @memberof UnifiedProductDto
32936
+ */
32937
+ 'ingredients'?: Array<OrderIngredientDto>;
31258
32938
  }
31259
32939
 
31260
32940
 
@@ -36489,6 +38169,396 @@ export class ActionPasscodesApi extends BaseAPI implements ActionPasscodesApiInt
36489
38169
  }
36490
38170
 
36491
38171
 
38172
+ /**
38173
+ * AnalyticsDashboardsApi - axios parameter creator
38174
+ * @export
38175
+ */
38176
+ export const AnalyticsDashboardsApiAxiosParamCreator = function (configuration?: Configuration) {
38177
+ return {
38178
+ /**
38179
+ * The organisation\'s saved cards and sales goals for its All stores view, shared by its management and everyone working at one of its stores. 404 when none is saved yet. Asks the licence server who the person is in the organisation on every call.
38180
+ * @summary Read an organisation\'s Analytics dashboard
38181
+ * @param {string} groupId The organisation\&#39;s id: its group\&#39;s accountId in the licence server
38182
+ * @param {*} [options] Override http request option.
38183
+ * @throws {RequiredError}
38184
+ */
38185
+ getOrganisationAnalyticsDashboard: async (groupId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
38186
+ // verify required parameter 'groupId' is not null or undefined
38187
+ assertParamExists('getOrganisationAnalyticsDashboard', 'groupId', groupId)
38188
+ const localVarPath = `/api/v6/groups/{groupId}/analytics-dashboard`
38189
+ .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId)));
38190
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
38191
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
38192
+ let baseOptions;
38193
+ if (configuration) {
38194
+ baseOptions = configuration.baseOptions;
38195
+ }
38196
+
38197
+ const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
38198
+ const localVarHeaderParameter = {} as any;
38199
+ const localVarQueryParameter = {} as any;
38200
+
38201
+ // authentication JWT-auth required
38202
+ // http bearer authentication required
38203
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
38204
+
38205
+
38206
+
38207
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
38208
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
38209
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
38210
+
38211
+ return {
38212
+ url: toPathString(localVarUrlObj),
38213
+ options: localVarRequestOptions,
38214
+ };
38215
+ },
38216
+ /**
38217
+ * The store\'s saved cards and sales goals, shared by everyone who can see the store. 404 when none is saved yet. Read from the database every time.
38218
+ * @summary Read a store\'s Analytics dashboard
38219
+ * @param {number} businessId The store\&#39;s orderingBusinessId
38220
+ * @param {*} [options] Override http request option.
38221
+ * @throws {RequiredError}
38222
+ */
38223
+ getStoreAnalyticsDashboard: async (businessId: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
38224
+ // verify required parameter 'businessId' is not null or undefined
38225
+ assertParamExists('getStoreAnalyticsDashboard', 'businessId', businessId)
38226
+ const localVarPath = `/api/v6/businesses/{businessId}/analytics-dashboard`
38227
+ .replace(`{${"businessId"}}`, encodeURIComponent(String(businessId)));
38228
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
38229
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
38230
+ let baseOptions;
38231
+ if (configuration) {
38232
+ baseOptions = configuration.baseOptions;
38233
+ }
38234
+
38235
+ const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
38236
+ const localVarHeaderParameter = {} as any;
38237
+ const localVarQueryParameter = {} as any;
38238
+
38239
+ // authentication JWT-auth required
38240
+ // http bearer authentication required
38241
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
38242
+
38243
+
38244
+
38245
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
38246
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
38247
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
38248
+
38249
+ return {
38250
+ url: toPathString(localVarUrlObj),
38251
+ options: localVarRequestOptions,
38252
+ };
38253
+ },
38254
+ /**
38255
+ * Saves the cards, in order, and the sales goals of the organisation\'s All stores view, replacing what was saved. The first save, without expectedVersion, creates it; every later one sends the version it read, and loses with 409 when someone saved since. Only the organisation\'s management may save.
38256
+ * @summary Replace an organisation\'s Analytics dashboard
38257
+ * @param {string} groupId The organisation\&#39;s id: its group\&#39;s accountId in the licence server
38258
+ * @param {SaveAnalyticsDashboardDto} saveAnalyticsDashboardDto
38259
+ * @param {*} [options] Override http request option.
38260
+ * @throws {RequiredError}
38261
+ */
38262
+ saveOrganisationAnalyticsDashboard: async (groupId: string, saveAnalyticsDashboardDto: SaveAnalyticsDashboardDto, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
38263
+ // verify required parameter 'groupId' is not null or undefined
38264
+ assertParamExists('saveOrganisationAnalyticsDashboard', 'groupId', groupId)
38265
+ // verify required parameter 'saveAnalyticsDashboardDto' is not null or undefined
38266
+ assertParamExists('saveOrganisationAnalyticsDashboard', 'saveAnalyticsDashboardDto', saveAnalyticsDashboardDto)
38267
+ const localVarPath = `/api/v6/groups/{groupId}/analytics-dashboard`
38268
+ .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId)));
38269
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
38270
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
38271
+ let baseOptions;
38272
+ if (configuration) {
38273
+ baseOptions = configuration.baseOptions;
38274
+ }
38275
+
38276
+ const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
38277
+ const localVarHeaderParameter = {} as any;
38278
+ const localVarQueryParameter = {} as any;
38279
+
38280
+ // authentication JWT-auth required
38281
+ // http bearer authentication required
38282
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
38283
+
38284
+
38285
+
38286
+ localVarHeaderParameter['Content-Type'] = 'application/json';
38287
+
38288
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
38289
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
38290
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
38291
+ localVarRequestOptions.data = serializeDataIfNeeded(saveAnalyticsDashboardDto, localVarRequestOptions, configuration)
38292
+
38293
+ return {
38294
+ url: toPathString(localVarUrlObj),
38295
+ options: localVarRequestOptions,
38296
+ };
38297
+ },
38298
+ /**
38299
+ * Saves the cards, in order, and the sales goals, replacing what was saved. The first save, without expectedVersion, creates it; every later one sends the version it read, and loses with 409 when someone saved since. Only the store\'s managers and its organisation\'s management may save, read from the licence server at each save.
38300
+ * @summary Replace a store\'s Analytics dashboard
38301
+ * @param {number} businessId The store\&#39;s orderingBusinessId
38302
+ * @param {SaveAnalyticsDashboardDto} saveAnalyticsDashboardDto
38303
+ * @param {*} [options] Override http request option.
38304
+ * @throws {RequiredError}
38305
+ */
38306
+ saveStoreAnalyticsDashboard: async (businessId: number, saveAnalyticsDashboardDto: SaveAnalyticsDashboardDto, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
38307
+ // verify required parameter 'businessId' is not null or undefined
38308
+ assertParamExists('saveStoreAnalyticsDashboard', 'businessId', businessId)
38309
+ // verify required parameter 'saveAnalyticsDashboardDto' is not null or undefined
38310
+ assertParamExists('saveStoreAnalyticsDashboard', 'saveAnalyticsDashboardDto', saveAnalyticsDashboardDto)
38311
+ const localVarPath = `/api/v6/businesses/{businessId}/analytics-dashboard`
38312
+ .replace(`{${"businessId"}}`, encodeURIComponent(String(businessId)));
38313
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
38314
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
38315
+ let baseOptions;
38316
+ if (configuration) {
38317
+ baseOptions = configuration.baseOptions;
38318
+ }
38319
+
38320
+ const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
38321
+ const localVarHeaderParameter = {} as any;
38322
+ const localVarQueryParameter = {} as any;
38323
+
38324
+ // authentication JWT-auth required
38325
+ // http bearer authentication required
38326
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
38327
+
38328
+
38329
+
38330
+ localVarHeaderParameter['Content-Type'] = 'application/json';
38331
+
38332
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
38333
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
38334
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
38335
+ localVarRequestOptions.data = serializeDataIfNeeded(saveAnalyticsDashboardDto, localVarRequestOptions, configuration)
38336
+
38337
+ return {
38338
+ url: toPathString(localVarUrlObj),
38339
+ options: localVarRequestOptions,
38340
+ };
38341
+ },
38342
+ }
38343
+ };
38344
+
38345
+ /**
38346
+ * AnalyticsDashboardsApi - functional programming interface
38347
+ * @export
38348
+ */
38349
+ export const AnalyticsDashboardsApiFp = function(configuration?: Configuration) {
38350
+ const localVarAxiosParamCreator = AnalyticsDashboardsApiAxiosParamCreator(configuration)
38351
+ return {
38352
+ /**
38353
+ * The organisation\'s saved cards and sales goals for its All stores view, shared by its management and everyone working at one of its stores. 404 when none is saved yet. Asks the licence server who the person is in the organisation on every call.
38354
+ * @summary Read an organisation\'s Analytics dashboard
38355
+ * @param {string} groupId The organisation\&#39;s id: its group\&#39;s accountId in the licence server
38356
+ * @param {*} [options] Override http request option.
38357
+ * @throws {RequiredError}
38358
+ */
38359
+ async getOrganisationAnalyticsDashboard(groupId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AnalyticsDashboardResponseDto>> {
38360
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getOrganisationAnalyticsDashboard(groupId, options);
38361
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
38362
+ },
38363
+ /**
38364
+ * The store\'s saved cards and sales goals, shared by everyone who can see the store. 404 when none is saved yet. Read from the database every time.
38365
+ * @summary Read a store\'s Analytics dashboard
38366
+ * @param {number} businessId The store\&#39;s orderingBusinessId
38367
+ * @param {*} [options] Override http request option.
38368
+ * @throws {RequiredError}
38369
+ */
38370
+ async getStoreAnalyticsDashboard(businessId: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AnalyticsDashboardResponseDto>> {
38371
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getStoreAnalyticsDashboard(businessId, options);
38372
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
38373
+ },
38374
+ /**
38375
+ * Saves the cards, in order, and the sales goals of the organisation\'s All stores view, replacing what was saved. The first save, without expectedVersion, creates it; every later one sends the version it read, and loses with 409 when someone saved since. Only the organisation\'s management may save.
38376
+ * @summary Replace an organisation\'s Analytics dashboard
38377
+ * @param {string} groupId The organisation\&#39;s id: its group\&#39;s accountId in the licence server
38378
+ * @param {SaveAnalyticsDashboardDto} saveAnalyticsDashboardDto
38379
+ * @param {*} [options] Override http request option.
38380
+ * @throws {RequiredError}
38381
+ */
38382
+ async saveOrganisationAnalyticsDashboard(groupId: string, saveAnalyticsDashboardDto: SaveAnalyticsDashboardDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AnalyticsDashboardResponseDto>> {
38383
+ const localVarAxiosArgs = await localVarAxiosParamCreator.saveOrganisationAnalyticsDashboard(groupId, saveAnalyticsDashboardDto, options);
38384
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
38385
+ },
38386
+ /**
38387
+ * Saves the cards, in order, and the sales goals, replacing what was saved. The first save, without expectedVersion, creates it; every later one sends the version it read, and loses with 409 when someone saved since. Only the store\'s managers and its organisation\'s management may save, read from the licence server at each save.
38388
+ * @summary Replace a store\'s Analytics dashboard
38389
+ * @param {number} businessId The store\&#39;s orderingBusinessId
38390
+ * @param {SaveAnalyticsDashboardDto} saveAnalyticsDashboardDto
38391
+ * @param {*} [options] Override http request option.
38392
+ * @throws {RequiredError}
38393
+ */
38394
+ async saveStoreAnalyticsDashboard(businessId: number, saveAnalyticsDashboardDto: SaveAnalyticsDashboardDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AnalyticsDashboardResponseDto>> {
38395
+ const localVarAxiosArgs = await localVarAxiosParamCreator.saveStoreAnalyticsDashboard(businessId, saveAnalyticsDashboardDto, options);
38396
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
38397
+ },
38398
+ }
38399
+ };
38400
+
38401
+ /**
38402
+ * AnalyticsDashboardsApi - factory interface
38403
+ * @export
38404
+ */
38405
+ export const AnalyticsDashboardsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
38406
+ const localVarFp = AnalyticsDashboardsApiFp(configuration)
38407
+ return {
38408
+ /**
38409
+ * The organisation\'s saved cards and sales goals for its All stores view, shared by its management and everyone working at one of its stores. 404 when none is saved yet. Asks the licence server who the person is in the organisation on every call.
38410
+ * @summary Read an organisation\'s Analytics dashboard
38411
+ * @param {string} groupId The organisation\&#39;s id: its group\&#39;s accountId in the licence server
38412
+ * @param {*} [options] Override http request option.
38413
+ * @throws {RequiredError}
38414
+ */
38415
+ getOrganisationAnalyticsDashboard(groupId: string, options?: any): AxiosPromise<AnalyticsDashboardResponseDto> {
38416
+ return localVarFp.getOrganisationAnalyticsDashboard(groupId, options).then((request) => request(axios, basePath));
38417
+ },
38418
+ /**
38419
+ * The store\'s saved cards and sales goals, shared by everyone who can see the store. 404 when none is saved yet. Read from the database every time.
38420
+ * @summary Read a store\'s Analytics dashboard
38421
+ * @param {number} businessId The store\&#39;s orderingBusinessId
38422
+ * @param {*} [options] Override http request option.
38423
+ * @throws {RequiredError}
38424
+ */
38425
+ getStoreAnalyticsDashboard(businessId: number, options?: any): AxiosPromise<AnalyticsDashboardResponseDto> {
38426
+ return localVarFp.getStoreAnalyticsDashboard(businessId, options).then((request) => request(axios, basePath));
38427
+ },
38428
+ /**
38429
+ * Saves the cards, in order, and the sales goals of the organisation\'s All stores view, replacing what was saved. The first save, without expectedVersion, creates it; every later one sends the version it read, and loses with 409 when someone saved since. Only the organisation\'s management may save.
38430
+ * @summary Replace an organisation\'s Analytics dashboard
38431
+ * @param {string} groupId The organisation\&#39;s id: its group\&#39;s accountId in the licence server
38432
+ * @param {SaveAnalyticsDashboardDto} saveAnalyticsDashboardDto
38433
+ * @param {*} [options] Override http request option.
38434
+ * @throws {RequiredError}
38435
+ */
38436
+ saveOrganisationAnalyticsDashboard(groupId: string, saveAnalyticsDashboardDto: SaveAnalyticsDashboardDto, options?: any): AxiosPromise<AnalyticsDashboardResponseDto> {
38437
+ return localVarFp.saveOrganisationAnalyticsDashboard(groupId, saveAnalyticsDashboardDto, options).then((request) => request(axios, basePath));
38438
+ },
38439
+ /**
38440
+ * Saves the cards, in order, and the sales goals, replacing what was saved. The first save, without expectedVersion, creates it; every later one sends the version it read, and loses with 409 when someone saved since. Only the store\'s managers and its organisation\'s management may save, read from the licence server at each save.
38441
+ * @summary Replace a store\'s Analytics dashboard
38442
+ * @param {number} businessId The store\&#39;s orderingBusinessId
38443
+ * @param {SaveAnalyticsDashboardDto} saveAnalyticsDashboardDto
38444
+ * @param {*} [options] Override http request option.
38445
+ * @throws {RequiredError}
38446
+ */
38447
+ saveStoreAnalyticsDashboard(businessId: number, saveAnalyticsDashboardDto: SaveAnalyticsDashboardDto, options?: any): AxiosPromise<AnalyticsDashboardResponseDto> {
38448
+ return localVarFp.saveStoreAnalyticsDashboard(businessId, saveAnalyticsDashboardDto, options).then((request) => request(axios, basePath));
38449
+ },
38450
+ };
38451
+ };
38452
+
38453
+ /**
38454
+ * AnalyticsDashboardsApi - interface
38455
+ * @export
38456
+ * @interface AnalyticsDashboardsApi
38457
+ */
38458
+ export interface AnalyticsDashboardsApiInterface {
38459
+ /**
38460
+ * The organisation\'s saved cards and sales goals for its All stores view, shared by its management and everyone working at one of its stores. 404 when none is saved yet. Asks the licence server who the person is in the organisation on every call.
38461
+ * @summary Read an organisation\'s Analytics dashboard
38462
+ * @param {string} groupId The organisation\&#39;s id: its group\&#39;s accountId in the licence server
38463
+ * @param {*} [options] Override http request option.
38464
+ * @throws {RequiredError}
38465
+ * @memberof AnalyticsDashboardsApiInterface
38466
+ */
38467
+ getOrganisationAnalyticsDashboard(groupId: string, options?: AxiosRequestConfig): AxiosPromise<AnalyticsDashboardResponseDto>;
38468
+
38469
+ /**
38470
+ * The store\'s saved cards and sales goals, shared by everyone who can see the store. 404 when none is saved yet. Read from the database every time.
38471
+ * @summary Read a store\'s Analytics dashboard
38472
+ * @param {number} businessId The store\&#39;s orderingBusinessId
38473
+ * @param {*} [options] Override http request option.
38474
+ * @throws {RequiredError}
38475
+ * @memberof AnalyticsDashboardsApiInterface
38476
+ */
38477
+ getStoreAnalyticsDashboard(businessId: number, options?: AxiosRequestConfig): AxiosPromise<AnalyticsDashboardResponseDto>;
38478
+
38479
+ /**
38480
+ * Saves the cards, in order, and the sales goals of the organisation\'s All stores view, replacing what was saved. The first save, without expectedVersion, creates it; every later one sends the version it read, and loses with 409 when someone saved since. Only the organisation\'s management may save.
38481
+ * @summary Replace an organisation\'s Analytics dashboard
38482
+ * @param {string} groupId The organisation\&#39;s id: its group\&#39;s accountId in the licence server
38483
+ * @param {SaveAnalyticsDashboardDto} saveAnalyticsDashboardDto
38484
+ * @param {*} [options] Override http request option.
38485
+ * @throws {RequiredError}
38486
+ * @memberof AnalyticsDashboardsApiInterface
38487
+ */
38488
+ saveOrganisationAnalyticsDashboard(groupId: string, saveAnalyticsDashboardDto: SaveAnalyticsDashboardDto, options?: AxiosRequestConfig): AxiosPromise<AnalyticsDashboardResponseDto>;
38489
+
38490
+ /**
38491
+ * Saves the cards, in order, and the sales goals, replacing what was saved. The first save, without expectedVersion, creates it; every later one sends the version it read, and loses with 409 when someone saved since. Only the store\'s managers and its organisation\'s management may save, read from the licence server at each save.
38492
+ * @summary Replace a store\'s Analytics dashboard
38493
+ * @param {number} businessId The store\&#39;s orderingBusinessId
38494
+ * @param {SaveAnalyticsDashboardDto} saveAnalyticsDashboardDto
38495
+ * @param {*} [options] Override http request option.
38496
+ * @throws {RequiredError}
38497
+ * @memberof AnalyticsDashboardsApiInterface
38498
+ */
38499
+ saveStoreAnalyticsDashboard(businessId: number, saveAnalyticsDashboardDto: SaveAnalyticsDashboardDto, options?: AxiosRequestConfig): AxiosPromise<AnalyticsDashboardResponseDto>;
38500
+
38501
+ }
38502
+
38503
+ /**
38504
+ * AnalyticsDashboardsApi - object-oriented interface
38505
+ * @export
38506
+ * @class AnalyticsDashboardsApi
38507
+ * @extends {BaseAPI}
38508
+ */
38509
+ export class AnalyticsDashboardsApi extends BaseAPI implements AnalyticsDashboardsApiInterface {
38510
+ /**
38511
+ * The organisation\'s saved cards and sales goals for its All stores view, shared by its management and everyone working at one of its stores. 404 when none is saved yet. Asks the licence server who the person is in the organisation on every call.
38512
+ * @summary Read an organisation\'s Analytics dashboard
38513
+ * @param {string} groupId The organisation\&#39;s id: its group\&#39;s accountId in the licence server
38514
+ * @param {*} [options] Override http request option.
38515
+ * @throws {RequiredError}
38516
+ * @memberof AnalyticsDashboardsApi
38517
+ */
38518
+ public getOrganisationAnalyticsDashboard(groupId: string, options?: AxiosRequestConfig) {
38519
+ return AnalyticsDashboardsApiFp(this.configuration).getOrganisationAnalyticsDashboard(groupId, options).then((request) => request(this.axios, this.basePath));
38520
+ }
38521
+
38522
+ /**
38523
+ * The store\'s saved cards and sales goals, shared by everyone who can see the store. 404 when none is saved yet. Read from the database every time.
38524
+ * @summary Read a store\'s Analytics dashboard
38525
+ * @param {number} businessId The store\&#39;s orderingBusinessId
38526
+ * @param {*} [options] Override http request option.
38527
+ * @throws {RequiredError}
38528
+ * @memberof AnalyticsDashboardsApi
38529
+ */
38530
+ public getStoreAnalyticsDashboard(businessId: number, options?: AxiosRequestConfig) {
38531
+ return AnalyticsDashboardsApiFp(this.configuration).getStoreAnalyticsDashboard(businessId, options).then((request) => request(this.axios, this.basePath));
38532
+ }
38533
+
38534
+ /**
38535
+ * Saves the cards, in order, and the sales goals of the organisation\'s All stores view, replacing what was saved. The first save, without expectedVersion, creates it; every later one sends the version it read, and loses with 409 when someone saved since. Only the organisation\'s management may save.
38536
+ * @summary Replace an organisation\'s Analytics dashboard
38537
+ * @param {string} groupId The organisation\&#39;s id: its group\&#39;s accountId in the licence server
38538
+ * @param {SaveAnalyticsDashboardDto} saveAnalyticsDashboardDto
38539
+ * @param {*} [options] Override http request option.
38540
+ * @throws {RequiredError}
38541
+ * @memberof AnalyticsDashboardsApi
38542
+ */
38543
+ public saveOrganisationAnalyticsDashboard(groupId: string, saveAnalyticsDashboardDto: SaveAnalyticsDashboardDto, options?: AxiosRequestConfig) {
38544
+ return AnalyticsDashboardsApiFp(this.configuration).saveOrganisationAnalyticsDashboard(groupId, saveAnalyticsDashboardDto, options).then((request) => request(this.axios, this.basePath));
38545
+ }
38546
+
38547
+ /**
38548
+ * Saves the cards, in order, and the sales goals, replacing what was saved. The first save, without expectedVersion, creates it; every later one sends the version it read, and loses with 409 when someone saved since. Only the store\'s managers and its organisation\'s management may save, read from the licence server at each save.
38549
+ * @summary Replace a store\'s Analytics dashboard
38550
+ * @param {number} businessId The store\&#39;s orderingBusinessId
38551
+ * @param {SaveAnalyticsDashboardDto} saveAnalyticsDashboardDto
38552
+ * @param {*} [options] Override http request option.
38553
+ * @throws {RequiredError}
38554
+ * @memberof AnalyticsDashboardsApi
38555
+ */
38556
+ public saveStoreAnalyticsDashboard(businessId: number, saveAnalyticsDashboardDto: SaveAnalyticsDashboardDto, options?: AxiosRequestConfig) {
38557
+ return AnalyticsDashboardsApiFp(this.configuration).saveStoreAnalyticsDashboard(businessId, saveAnalyticsDashboardDto, options).then((request) => request(this.axios, this.basePath));
38558
+ }
38559
+ }
38560
+
38561
+
36492
38562
  /**
36493
38563
  * AuthApi - axios parameter creator
36494
38564
  * @export
@@ -36838,7 +38908,7 @@ export class AuthApi extends BaseAPI implements AuthApiInterface {
36838
38908
  export const BusinessApiAxiosParamCreator = function (configuration?: Configuration) {
36839
38909
  return {
36840
38910
  /**
36841
- * For the channel the x-app-x header names (any channel when it names none). Kept 30 days per venue and channel; data-bridge clears it when a discount changes. A failed read is not kept.
38911
+ * For the channel the x-app-x header names (any channel when it names none), read from Vendure\'s manual promotions. Kept 30 days per venue and channel; cleared when Vendure announces a change of the venue\'s promotions. A failed read is not kept.
36842
38912
  * @summary Get unified discounts for all business and venue
36843
38913
  * @param {string} businessId The venue\&#39;s business id
36844
38914
  * @param {*} [options] Override http request option.
@@ -37562,7 +39632,7 @@ export const BusinessApiFp = function(configuration?: Configuration) {
37562
39632
  const localVarAxiosParamCreator = BusinessApiAxiosParamCreator(configuration)
37563
39633
  return {
37564
39634
  /**
37565
- * For the channel the x-app-x header names (any channel when it names none). Kept 30 days per venue and channel; data-bridge clears it when a discount changes. A failed read is not kept.
39635
+ * For the channel the x-app-x header names (any channel when it names none), read from Vendure\'s manual promotions. Kept 30 days per venue and channel; cleared when Vendure announces a change of the venue\'s promotions. A failed read is not kept.
37566
39636
  * @summary Get unified discounts for all business and venue
37567
39637
  * @param {string} businessId The venue\&#39;s business id
37568
39638
  * @param {*} [options] Override http request option.
@@ -37772,7 +39842,7 @@ export const BusinessApiFactory = function (configuration?: Configuration, baseP
37772
39842
  const localVarFp = BusinessApiFp(configuration)
37773
39843
  return {
37774
39844
  /**
37775
- * For the channel the x-app-x header names (any channel when it names none). Kept 30 days per venue and channel; data-bridge clears it when a discount changes. A failed read is not kept.
39845
+ * For the channel the x-app-x header names (any channel when it names none), read from Vendure\'s manual promotions. Kept 30 days per venue and channel; cleared when Vendure announces a change of the venue\'s promotions. A failed read is not kept.
37776
39846
  * @summary Get unified discounts for all business and venue
37777
39847
  * @param {string} businessId The venue\&#39;s business id
37778
39848
  * @param {*} [options] Override http request option.
@@ -37964,7 +40034,7 @@ export const BusinessApiFactory = function (configuration?: Configuration, baseP
37964
40034
  */
37965
40035
  export interface BusinessApiInterface {
37966
40036
  /**
37967
- * For the channel the x-app-x header names (any channel when it names none). Kept 30 days per venue and channel; data-bridge clears it when a discount changes. A failed read is not kept.
40037
+ * For the channel the x-app-x header names (any channel when it names none), read from Vendure\'s manual promotions. Kept 30 days per venue and channel; cleared when Vendure announces a change of the venue\'s promotions. A failed read is not kept.
37968
40038
  * @summary Get unified discounts for all business and venue
37969
40039
  * @param {string} businessId The venue\&#39;s business id
37970
40040
  * @param {*} [options] Override http request option.
@@ -38156,7 +40226,7 @@ export interface BusinessApiInterface {
38156
40226
  */
38157
40227
  export class BusinessApi extends BaseAPI implements BusinessApiInterface {
38158
40228
  /**
38159
- * For the channel the x-app-x header names (any channel when it names none). Kept 30 days per venue and channel; data-bridge clears it when a discount changes. A failed read is not kept.
40229
+ * For the channel the x-app-x header names (any channel when it names none), read from Vendure\'s manual promotions. Kept 30 days per venue and channel; cleared when Vendure announces a change of the venue\'s promotions. A failed read is not kept.
38160
40230
  * @summary Get unified discounts for all business and venue
38161
40231
  * @param {string} businessId The venue\&#39;s business id
38162
40232
  * @param {*} [options] Override http request option.
@@ -44844,7 +46914,7 @@ export const HistoryApiAxiosParamCreator = function (configuration?: Configurati
44844
46914
  };
44845
46915
  },
44846
46916
  /**
44847
- * The same answer as GET history/orders/pos, for a service holding the service key.
46917
+ * The same answer as GET history/orders/pos, for a service holding the service key. A store\'s owner signed in for Ari (D152) reads it too, only for the venues where they are org:owner.
44848
46918
  * @summary POS order history of the first venue named, for munchi-dashboard-server
44849
46919
  * @param {Array<number>} businessIds The venues asked about, by business id
44850
46920
  * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
@@ -44985,7 +47055,7 @@ export const HistoryApiFp = function(configuration?: Configuration) {
44985
47055
  return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
44986
47056
  },
44987
47057
  /**
44988
- * The same answer as GET history/orders/pos, for a service holding the service key.
47058
+ * The same answer as GET history/orders/pos, for a service holding the service key. A store\'s owner signed in for Ari (D152) reads it too, only for the venues where they are org:owner.
44989
47059
  * @summary POS order history of the first venue named, for munchi-dashboard-server
44990
47060
  * @param {Array<number>} businessIds The venues asked about, by business id
44991
47061
  * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
@@ -45043,7 +47113,7 @@ export const HistoryApiFactory = function (configuration?: Configuration, basePa
45043
47113
  return localVarFp.getOrderHistoryPOSV5(businessIds, timeSpan, start, end, page, rowPerPage, provider, paymentType, orderStatus, paymentStatus, orderType, paymentTypePos, invoiceCompanyId, timezone, options).then((request) => request(axios, basePath));
45044
47114
  },
45045
47115
  /**
45046
- * The same answer as GET history/orders/pos, for a service holding the service key.
47116
+ * The same answer as GET history/orders/pos, for a service holding the service key. A store\'s owner signed in for Ari (D152) reads it too, only for the venues where they are org:owner.
45047
47117
  * @summary POS order history of the first venue named, for munchi-dashboard-server
45048
47118
  * @param {Array<number>} businessIds The venues asked about, by business id
45049
47119
  * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
@@ -45099,7 +47169,7 @@ export interface HistoryApiInterface {
45099
47169
  getOrderHistoryPOSV5(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, page?: number, rowPerPage?: number, provider?: Array<ProviderEnum>, paymentType?: Array<PaymentTypeEnum>, orderStatus?: Array<OrderStatusEnum>, paymentStatus?: Array<PaymentStatus>, orderType?: Array<OrderType>, paymentTypePos?: Array<PaymentMethod>, invoiceCompanyId?: string, timezone?: string, options?: AxiosRequestConfig): AxiosPromise<OrderHistoryPosResponseDtoV2>;
45100
47170
 
45101
47171
  /**
45102
- * The same answer as GET history/orders/pos, for a service holding the service key.
47172
+ * The same answer as GET history/orders/pos, for a service holding the service key. A store\'s owner signed in for Ari (D152) reads it too, only for the venues where they are org:owner.
45103
47173
  * @summary POS order history of the first venue named, for munchi-dashboard-server
45104
47174
  * @param {Array<number>} businessIds The venues asked about, by business id
45105
47175
  * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
@@ -45157,7 +47227,7 @@ export class HistoryApi extends BaseAPI implements HistoryApiInterface {
45157
47227
  }
45158
47228
 
45159
47229
  /**
45160
- * The same answer as GET history/orders/pos, for a service holding the service key.
47230
+ * The same answer as GET history/orders/pos, for a service holding the service key. A store\'s owner signed in for Ari (D152) reads it too, only for the venues where they are org:owner.
45161
47231
  * @summary POS order history of the first venue named, for munchi-dashboard-server
45162
47232
  * @param {Array<number>} businessIds The venues asked about, by business id
45163
47233
  * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
@@ -45190,7 +47260,7 @@ export class HistoryApi extends BaseAPI implements HistoryApiInterface {
45190
47260
  export const HistoryV6ApiAxiosParamCreator = function (configuration?: Configuration) {
45191
47261
  return {
45192
47262
  /**
45193
- * The same answer as v1 GET history/internal/orders, which it replaces for munchi-dashboard-server, for a service holding the service key. Nothing is narrowed to a person.
47263
+ * The same answer as v1 GET history/internal/orders, which it replaces for munchi-dashboard-server, for a service holding the service key. Nothing is narrowed to a person. A store\'s owner signed in for Ari (D152) reads it too, only for the venues where they are org:owner.
45194
47264
  * @summary Online order history of the venues, for munchi-dashboard-server
45195
47265
  * @param {Array<number>} businessIds The venues asked about, by business id
45196
47266
  * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
@@ -45514,7 +47584,7 @@ export const HistoryV6ApiFp = function(configuration?: Configuration) {
45514
47584
  const localVarAxiosParamCreator = HistoryV6ApiAxiosParamCreator(configuration)
45515
47585
  return {
45516
47586
  /**
45517
- * The same answer as v1 GET history/internal/orders, which it replaces for munchi-dashboard-server, for a service holding the service key. Nothing is narrowed to a person.
47587
+ * The same answer as v1 GET history/internal/orders, which it replaces for munchi-dashboard-server, for a service holding the service key. Nothing is narrowed to a person. A store\'s owner signed in for Ari (D152) reads it too, only for the venues where they are org:owner.
45518
47588
  * @summary Online order history of the venues, for munchi-dashboard-server
45519
47589
  * @param {Array<number>} businessIds The venues asked about, by business id
45520
47590
  * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
@@ -45596,7 +47666,7 @@ export const HistoryV6ApiFactory = function (configuration?: Configuration, base
45596
47666
  const localVarFp = HistoryV6ApiFp(configuration)
45597
47667
  return {
45598
47668
  /**
45599
- * The same answer as v1 GET history/internal/orders, which it replaces for munchi-dashboard-server, for a service holding the service key. Nothing is narrowed to a person.
47669
+ * The same answer as v1 GET history/internal/orders, which it replaces for munchi-dashboard-server, for a service holding the service key. Nothing is narrowed to a person. A store\'s owner signed in for Ari (D152) reads it too, only for the venues where they are org:owner.
45600
47670
  * @summary Online order history of the venues, for munchi-dashboard-server
45601
47671
  * @param {Array<number>} businessIds The venues asked about, by business id
45602
47672
  * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
@@ -45674,7 +47744,7 @@ export const HistoryV6ApiFactory = function (configuration?: Configuration, base
45674
47744
  */
45675
47745
  export interface HistoryV6ApiInterface {
45676
47746
  /**
45677
- * The same answer as v1 GET history/internal/orders, which it replaces for munchi-dashboard-server, for a service holding the service key. Nothing is narrowed to a person.
47747
+ * The same answer as v1 GET history/internal/orders, which it replaces for munchi-dashboard-server, for a service holding the service key. Nothing is narrowed to a person. A store\'s owner signed in for Ari (D152) reads it too, only for the venues where they are org:owner.
45678
47748
  * @summary Online order history of the venues, for munchi-dashboard-server
45679
47749
  * @param {Array<number>} businessIds The venues asked about, by business id
45680
47750
  * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
@@ -45752,7 +47822,7 @@ export interface HistoryV6ApiInterface {
45752
47822
  */
45753
47823
  export class HistoryV6Api extends BaseAPI implements HistoryV6ApiInterface {
45754
47824
  /**
45755
- * The same answer as v1 GET history/internal/orders, which it replaces for munchi-dashboard-server, for a service holding the service key. Nothing is narrowed to a person.
47825
+ * The same answer as v1 GET history/internal/orders, which it replaces for munchi-dashboard-server, for a service holding the service key. Nothing is narrowed to a person. A store\'s owner signed in for Ari (D152) reads it too, only for the venues where they are org:owner.
45756
47826
  * @summary Online order history of the venues, for munchi-dashboard-server
45757
47827
  * @param {Array<number>} businessIds The venues asked about, by business id
45758
47828
  * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
@@ -48810,7 +50880,7 @@ export const MCPApiAxiosParamCreator = function (configuration?: Configuration)
48810
50880
  };
48811
50881
  },
48812
50882
  /**
48813
- * One JSON-RPC message of the Model Context Protocol: initialize, tools/list or tools/call. Each tool calls super-server\'s own REST route with the caller\'s own key, so that route\'s guard and logs decide as for a direct call. A tool\'s answer never carries a credential. Connect with `claude mcp add --transport http munchi-super <host>/api/v1/mcp --header \"Authorization: Bearer ak_…\"` (D137).
50883
+ * One JSON-RPC message of the Model Context Protocol: initialize, tools/list or tools/call. Each tool calls super-server\'s own REST route with the caller\'s own credential, so that route\'s guard and logs decide as for a direct call. A person signed in for Ari with their own Clerk token sees only the read tools, at the stores where they are `org:owner` (D152). A tool\'s answer never carries a credential. Connect with `claude mcp add --transport http munchi-super <host>/api/v1/mcp --header \"Authorization: Bearer ak_…\"` (D137).
48814
50884
  * @summary The MCP server for Munchi ops (Streamable HTTP, stateless)
48815
50885
  * @param {object} body A JSON-RPC 2.0 message
48816
50886
  * @param {*} [options] Override http request option.
@@ -48880,7 +50950,7 @@ export const MCPApiFp = function(configuration?: Configuration) {
48880
50950
  return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
48881
50951
  },
48882
50952
  /**
48883
- * One JSON-RPC message of the Model Context Protocol: initialize, tools/list or tools/call. Each tool calls super-server\'s own REST route with the caller\'s own key, so that route\'s guard and logs decide as for a direct call. A tool\'s answer never carries a credential. Connect with `claude mcp add --transport http munchi-super <host>/api/v1/mcp --header \"Authorization: Bearer ak_…\"` (D137).
50953
+ * One JSON-RPC message of the Model Context Protocol: initialize, tools/list or tools/call. Each tool calls super-server\'s own REST route with the caller\'s own credential, so that route\'s guard and logs decide as for a direct call. A person signed in for Ari with their own Clerk token sees only the read tools, at the stores where they are `org:owner` (D152). A tool\'s answer never carries a credential. Connect with `claude mcp add --transport http munchi-super <host>/api/v1/mcp --header \"Authorization: Bearer ak_…\"` (D137).
48884
50954
  * @summary The MCP server for Munchi ops (Streamable HTTP, stateless)
48885
50955
  * @param {object} body A JSON-RPC 2.0 message
48886
50956
  * @param {*} [options] Override http request option.
@@ -48919,7 +50989,7 @@ export const MCPApiFactory = function (configuration?: Configuration, basePath?:
48919
50989
  return localVarFp.refuseStream(options).then((request) => request(axios, basePath));
48920
50990
  },
48921
50991
  /**
48922
- * One JSON-RPC message of the Model Context Protocol: initialize, tools/list or tools/call. Each tool calls super-server\'s own REST route with the caller\'s own key, so that route\'s guard and logs decide as for a direct call. A tool\'s answer never carries a credential. Connect with `claude mcp add --transport http munchi-super <host>/api/v1/mcp --header \"Authorization: Bearer ak_…\"` (D137).
50992
+ * One JSON-RPC message of the Model Context Protocol: initialize, tools/list or tools/call. Each tool calls super-server\'s own REST route with the caller\'s own credential, so that route\'s guard and logs decide as for a direct call. A person signed in for Ari with their own Clerk token sees only the read tools, at the stores where they are `org:owner` (D152). A tool\'s answer never carries a credential. Connect with `claude mcp add --transport http munchi-super <host>/api/v1/mcp --header \"Authorization: Bearer ak_…\"` (D137).
48923
50993
  * @summary The MCP server for Munchi ops (Streamable HTTP, stateless)
48924
50994
  * @param {object} body A JSON-RPC 2.0 message
48925
50995
  * @param {*} [options] Override http request option.
@@ -48956,7 +51026,7 @@ export interface MCPApiInterface {
48956
51026
  refuseStream(options?: AxiosRequestConfig): AxiosPromise<void>;
48957
51027
 
48958
51028
  /**
48959
- * One JSON-RPC message of the Model Context Protocol: initialize, tools/list or tools/call. Each tool calls super-server\'s own REST route with the caller\'s own key, so that route\'s guard and logs decide as for a direct call. A tool\'s answer never carries a credential. Connect with `claude mcp add --transport http munchi-super <host>/api/v1/mcp --header \"Authorization: Bearer ak_…\"` (D137).
51029
+ * One JSON-RPC message of the Model Context Protocol: initialize, tools/list or tools/call. Each tool calls super-server\'s own REST route with the caller\'s own credential, so that route\'s guard and logs decide as for a direct call. A person signed in for Ari with their own Clerk token sees only the read tools, at the stores where they are `org:owner` (D152). A tool\'s answer never carries a credential. Connect with `claude mcp add --transport http munchi-super <host>/api/v1/mcp --header \"Authorization: Bearer ak_…\"` (D137).
48960
51030
  * @summary The MCP server for Munchi ops (Streamable HTTP, stateless)
48961
51031
  * @param {object} body A JSON-RPC 2.0 message
48962
51032
  * @param {*} [options] Override http request option.
@@ -48997,7 +51067,7 @@ export class MCPApi extends BaseAPI implements MCPApiInterface {
48997
51067
  }
48998
51068
 
48999
51069
  /**
49000
- * One JSON-RPC message of the Model Context Protocol: initialize, tools/list or tools/call. Each tool calls super-server\'s own REST route with the caller\'s own key, so that route\'s guard and logs decide as for a direct call. A tool\'s answer never carries a credential. Connect with `claude mcp add --transport http munchi-super <host>/api/v1/mcp --header \"Authorization: Bearer ak_…\"` (D137).
51070
+ * One JSON-RPC message of the Model Context Protocol: initialize, tools/list or tools/call. Each tool calls super-server\'s own REST route with the caller\'s own credential, so that route\'s guard and logs decide as for a direct call. A person signed in for Ari with their own Clerk token sees only the read tools, at the stores where they are `org:owner` (D152). A tool\'s answer never carries a credential. Connect with `claude mcp add --transport http munchi-super <host>/api/v1/mcp --header \"Authorization: Bearer ak_…\"` (D137).
49001
51071
  * @summary The MCP server for Munchi ops (Streamable HTTP, stateless)
49002
51072
  * @param {object} body A JSON-RPC 2.0 message
49003
51073
  * @param {*} [options] Override http request option.
@@ -50364,7 +52434,7 @@ export class OrderCompletionApi extends BaseAPI implements OrderCompletionApiInt
50364
52434
  export const OrderInternalApiAxiosParamCreator = function (configuration?: Configuration) {
50365
52435
  return {
50366
52436
  /**
50367
- * kds-service reads one platform order from Postgres, whole, with the shared service key in x-api-key or as a Bearer token.
52437
+ * kds-service reads one platform order from Postgres, whole, with the shared service key in x-api-key or as a Bearer token. A store\'s owner signed in for Ari (D152) reads an order of a store they are org:owner of.
50368
52438
  * @summary Get order data by external ID for internal microservice communication
50369
52439
  * @param {string} externalId The order\&#39;s id on its channel (Order.externalId): the id Wolt, Foodora, Bolt or Uber Eats gave it, or the id our own channels gave it
50370
52440
  * @param {*} [options] Override http request option.
@@ -50408,7 +52478,7 @@ export const OrderInternalApiFp = function(configuration?: Configuration) {
50408
52478
  const localVarAxiosParamCreator = OrderInternalApiAxiosParamCreator(configuration)
50409
52479
  return {
50410
52480
  /**
50411
- * kds-service reads one platform order from Postgres, whole, with the shared service key in x-api-key or as a Bearer token.
52481
+ * kds-service reads one platform order from Postgres, whole, with the shared service key in x-api-key or as a Bearer token. A store\'s owner signed in for Ari (D152) reads an order of a store they are org:owner of.
50412
52482
  * @summary Get order data by external ID for internal microservice communication
50413
52483
  * @param {string} externalId The order\&#39;s id on its channel (Order.externalId): the id Wolt, Foodora, Bolt or Uber Eats gave it, or the id our own channels gave it
50414
52484
  * @param {*} [options] Override http request option.
@@ -50429,7 +52499,7 @@ export const OrderInternalApiFactory = function (configuration?: Configuration,
50429
52499
  const localVarFp = OrderInternalApiFp(configuration)
50430
52500
  return {
50431
52501
  /**
50432
- * kds-service reads one platform order from Postgres, whole, with the shared service key in x-api-key or as a Bearer token.
52502
+ * kds-service reads one platform order from Postgres, whole, with the shared service key in x-api-key or as a Bearer token. A store\'s owner signed in for Ari (D152) reads an order of a store they are org:owner of.
50433
52503
  * @summary Get order data by external ID for internal microservice communication
50434
52504
  * @param {string} externalId The order\&#39;s id on its channel (Order.externalId): the id Wolt, Foodora, Bolt or Uber Eats gave it, or the id our own channels gave it
50435
52505
  * @param {*} [options] Override http request option.
@@ -50448,7 +52518,7 @@ export const OrderInternalApiFactory = function (configuration?: Configuration,
50448
52518
  */
50449
52519
  export interface OrderInternalApiInterface {
50450
52520
  /**
50451
- * kds-service reads one platform order from Postgres, whole, with the shared service key in x-api-key or as a Bearer token.
52521
+ * kds-service reads one platform order from Postgres, whole, with the shared service key in x-api-key or as a Bearer token. A store\'s owner signed in for Ari (D152) reads an order of a store they are org:owner of.
50452
52522
  * @summary Get order data by external ID for internal microservice communication
50453
52523
  * @param {string} externalId The order\&#39;s id on its channel (Order.externalId): the id Wolt, Foodora, Bolt or Uber Eats gave it, or the id our own channels gave it
50454
52524
  * @param {*} [options] Override http request option.
@@ -50467,7 +52537,7 @@ export interface OrderInternalApiInterface {
50467
52537
  */
50468
52538
  export class OrderInternalApi extends BaseAPI implements OrderInternalApiInterface {
50469
52539
  /**
50470
- * kds-service reads one platform order from Postgres, whole, with the shared service key in x-api-key or as a Bearer token.
52540
+ * kds-service reads one platform order from Postgres, whole, with the shared service key in x-api-key or as a Bearer token. A store\'s owner signed in for Ari (D152) reads an order of a store they are org:owner of.
50471
52541
  * @summary Get order data by external ID for internal microservice communication
50472
52542
  * @param {string} externalId The order\&#39;s id on its channel (Order.externalId): the id Wolt, Foodora, Bolt or Uber Eats gave it, or the id our own channels gave it
50473
52543
  * @param {*} [options] Override http request option.
@@ -57216,66 +59286,22 @@ export class ProductApi extends BaseAPI implements ProductApiInterface {
57216
59286
 
57217
59287
 
57218
59288
  /**
57219
- * ProviderApi - axios parameter creator
59289
+ * PromotionsApi - axios parameter creator
57220
59290
  * @export
57221
59291
  */
57222
- export const ProviderApiAxiosParamCreator = function (configuration?: Configuration) {
59292
+ export const PromotionsApiAxiosParamCreator = function (configuration?: Configuration) {
57223
59293
  return {
57224
59294
  /**
57225
- * Asks the channel\'s service (ubereats-service for UberEats, wolt-service for Wolt and WoltStorefront, resq-service for ResQ) for a sign-in session and answers it as that service answered it. Nothing is written here.
57226
- * @summary Start connecting a venue to Uber Eats, Wolt or ResQ
57227
- * @param {ProviderEnum} channel The channel to connect: UberEats, Wolt, WoltStorefront or ResQ. Any other channel is answered 400
57228
- * @param {CreateOnboardingSessionDto} createOnboardingSessionDto
57229
- * @param {*} [options] Override http request option.
57230
- * @throws {RequiredError}
57231
- */
57232
- createOnboardingSession: async (channel: ProviderEnum, createOnboardingSessionDto: CreateOnboardingSessionDto, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
57233
- // verify required parameter 'channel' is not null or undefined
57234
- assertParamExists('createOnboardingSession', 'channel', channel)
57235
- // verify required parameter 'createOnboardingSessionDto' is not null or undefined
57236
- assertParamExists('createOnboardingSession', 'createOnboardingSessionDto', createOnboardingSessionDto)
57237
- const localVarPath = `/api/v1/provider/onboarding/{channel}/sessions`
57238
- .replace(`{${"channel"}}`, encodeURIComponent(String(channel)));
57239
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
57240
- const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
57241
- let baseOptions;
57242
- if (configuration) {
57243
- baseOptions = configuration.baseOptions;
57244
- }
57245
-
57246
- const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
57247
- const localVarHeaderParameter = {} as any;
57248
- const localVarQueryParameter = {} as any;
57249
-
57250
-
57251
-
57252
- localVarHeaderParameter['Content-Type'] = 'application/json';
57253
-
57254
- setSearchParams(localVarUrlObj, localVarQueryParameter);
57255
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
57256
- localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
57257
- localVarRequestOptions.data = serializeDataIfNeeded(createOnboardingSessionDto, localVarRequestOptions, configuration)
57258
-
57259
- return {
57260
- url: toPathString(localVarUrlObj),
57261
- options: localVarRequestOptions,
57262
- };
57263
- },
57264
- /**
57265
- * The channel\'s service disconnects the venue, writes its provider row and announces the change; its answer is passed on as it is: Uber Eats\' disconnected store, or the message of wolt-service or resq-service.
57266
- * @summary Disconnect a venue from Uber Eats, Wolt or ResQ
57267
- * @param {ProviderEnum} channel The channel to connect: UberEats, Wolt, WoltStorefront or ResQ. Any other channel is answered 400
59295
+ * The signal that tells the till whether to price its baskets: the venue\'s automatic promotions for the POS that are running at the moment of the read. Empty: the till need not call .../promotions/price unless the order holds a coupon code. Read it again when the venue\'s DISCOUNTS sync arrives.
59296
+ * @summary List the venue\'s automatic promotions running now on the POS
57268
59297
  * @param {number} businessId The venue\&#39;s orderingBusinessId
57269
59298
  * @param {*} [options] Override http request option.
57270
59299
  * @throws {RequiredError}
57271
59300
  */
57272
- disconnectOnboarding: async (channel: ProviderEnum, businessId: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
57273
- // verify required parameter 'channel' is not null or undefined
57274
- assertParamExists('disconnectOnboarding', 'channel', channel)
59301
+ listAutomaticPromotions: async (businessId: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
57275
59302
  // verify required parameter 'businessId' is not null or undefined
57276
- assertParamExists('disconnectOnboarding', 'businessId', businessId)
57277
- const localVarPath = `/api/v1/provider/onboarding/{channel}/{businessId}`
57278
- .replace(`{${"channel"}}`, encodeURIComponent(String(channel)))
59303
+ assertParamExists('listAutomaticPromotions', 'businessId', businessId)
59304
+ const localVarPath = `/api/v2/venues/{businessId}/promotions/automatic`
57279
59305
  .replace(`{${"businessId"}}`, encodeURIComponent(String(businessId)));
57280
59306
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
57281
59307
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -57284,10 +59310,14 @@ export const ProviderApiAxiosParamCreator = function (configuration?: Configurat
57284
59310
  baseOptions = configuration.baseOptions;
57285
59311
  }
57286
59312
 
57287
- const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
59313
+ const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
57288
59314
  const localVarHeaderParameter = {} as any;
57289
59315
  const localVarQueryParameter = {} as any;
57290
59316
 
59317
+ // authentication JWT-auth required
59318
+ // http bearer authentication required
59319
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
59320
+
57291
59321
 
57292
59322
 
57293
59323
  setSearchParams(localVarUrlObj, localVarQueryParameter);
@@ -57300,16 +59330,438 @@ export const ProviderApiAxiosParamCreator = function (configuration?: Configurat
57300
59330
  };
57301
59331
  },
57302
59332
  /**
57303
- * The venue\'s channels that take the menu, so the till can switch a product\'s availability on each. Kept per venue under menu-integrations:<businessId>, an empty list too, and cleared when the venue\'s providers change (SYNC_KEY.BUSINESS_PROVIDER_SUPPORTED_INTEGRATIONS).
57304
- * @summary Get provider integrations (MENU) for a business
57305
- * @param {number} businessId The venue\&#39;s orderingBusinessId
59333
+ * The signal that tells the kiosk whether to price its baskets: the venue\'s automatic promotions for the kiosk that are running at the moment of the read. Empty: the kiosk need not call .../promotions/price unless the order holds a coupon code.
59334
+ * @summary List the venue\'s automatic promotions running now on the kiosk
59335
+ * @param {number} businessId The venue\&#39;s orderingBusinessId, the kiosk\&#39;s own venue
57306
59336
  * @param {*} [options] Override http request option.
57307
59337
  * @throws {RequiredError}
57308
59338
  */
57309
- getMenuIntegrations: async (businessId: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
59339
+ listKioskAutomaticPromotions: async (businessId: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
57310
59340
  // verify required parameter 'businessId' is not null or undefined
57311
- assertParamExists('getMenuIntegrations', 'businessId', businessId)
57312
- const localVarPath = `/api/v1/provider/integrations/{businessId}`
59341
+ assertParamExists('listKioskAutomaticPromotions', 'businessId', businessId)
59342
+ const localVarPath = `/api/v2/kiosk/venues/{businessId}/promotions/automatic`
59343
+ .replace(`{${"businessId"}}`, encodeURIComponent(String(businessId)));
59344
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
59345
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
59346
+ let baseOptions;
59347
+ if (configuration) {
59348
+ baseOptions = configuration.baseOptions;
59349
+ }
59350
+
59351
+ const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
59352
+ const localVarHeaderParameter = {} as any;
59353
+ const localVarQueryParameter = {} as any;
59354
+
59355
+
59356
+
59357
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
59358
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
59359
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
59360
+
59361
+ return {
59362
+ url: toPathString(localVarUrlObj),
59363
+ options: localVarRequestOptions,
59364
+ };
59365
+ },
59366
+ /**
59367
+ * Vendure prices the basket as the online store prices a cart: the venue\'s automatic promotions for the POS and the order type, and the basket\'s coupon codes, and answers each discount with the money it takes off. Nothing is stored, reserved or counted. Ask only when the venue has automatic promotions running (GET .../promotions/automatic) or the order holds a coupon code, again whenever the basket changes, and keep the newest answer. Vendure not answering within 2 seconds is answered 200 with priced false and reason UNAVAILABLE.
59368
+ * @summary Price a till\'s basket with the venue\'s promotions
59369
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
59370
+ * @param {PriceBasketDto} priceBasketDto
59371
+ * @param {*} [options] Override http request option.
59372
+ * @throws {RequiredError}
59373
+ */
59374
+ priceBasketWithPromotions: async (businessId: number, priceBasketDto: PriceBasketDto, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
59375
+ // verify required parameter 'businessId' is not null or undefined
59376
+ assertParamExists('priceBasketWithPromotions', 'businessId', businessId)
59377
+ // verify required parameter 'priceBasketDto' is not null or undefined
59378
+ assertParamExists('priceBasketWithPromotions', 'priceBasketDto', priceBasketDto)
59379
+ const localVarPath = `/api/v2/venues/{businessId}/promotions/price`
59380
+ .replace(`{${"businessId"}}`, encodeURIComponent(String(businessId)));
59381
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
59382
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
59383
+ let baseOptions;
59384
+ if (configuration) {
59385
+ baseOptions = configuration.baseOptions;
59386
+ }
59387
+
59388
+ const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
59389
+ const localVarHeaderParameter = {} as any;
59390
+ const localVarQueryParameter = {} as any;
59391
+
59392
+ // authentication JWT-auth required
59393
+ // http bearer authentication required
59394
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
59395
+
59396
+
59397
+
59398
+ localVarHeaderParameter['Content-Type'] = 'application/json';
59399
+
59400
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
59401
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
59402
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
59403
+ localVarRequestOptions.data = serializeDataIfNeeded(priceBasketDto, localVarRequestOptions, configuration)
59404
+
59405
+ return {
59406
+ url: toPathString(localVarUrlObj),
59407
+ options: localVarRequestOptions,
59408
+ };
59409
+ },
59410
+ /**
59411
+ * The kiosk\'s pricing, with the kiosk\'s key: the same pricing as the till\'s, for the kiosk app. Vendure prices the basket with the venue\'s automatic promotions and the basket\'s coupon codes and answers each discount with the money it takes off; nothing is stored, reserved or counted. Vendure not answering within 2 seconds is answered 200 with priced false and reason UNAVAILABLE.
59412
+ * @summary Price a kiosk\'s basket with the venue\'s promotions
59413
+ * @param {number} businessId The venue\&#39;s orderingBusinessId, the kiosk\&#39;s own venue
59414
+ * @param {PriceBasketDto} priceBasketDto
59415
+ * @param {*} [options] Override http request option.
59416
+ * @throws {RequiredError}
59417
+ */
59418
+ priceKioskBasketWithPromotions: async (businessId: number, priceBasketDto: PriceBasketDto, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
59419
+ // verify required parameter 'businessId' is not null or undefined
59420
+ assertParamExists('priceKioskBasketWithPromotions', 'businessId', businessId)
59421
+ // verify required parameter 'priceBasketDto' is not null or undefined
59422
+ assertParamExists('priceKioskBasketWithPromotions', 'priceBasketDto', priceBasketDto)
59423
+ const localVarPath = `/api/v2/kiosk/venues/{businessId}/promotions/price`
59424
+ .replace(`{${"businessId"}}`, encodeURIComponent(String(businessId)));
59425
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
59426
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
59427
+ let baseOptions;
59428
+ if (configuration) {
59429
+ baseOptions = configuration.baseOptions;
59430
+ }
59431
+
59432
+ const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
59433
+ const localVarHeaderParameter = {} as any;
59434
+ const localVarQueryParameter = {} as any;
59435
+
59436
+
59437
+
59438
+ localVarHeaderParameter['Content-Type'] = 'application/json';
59439
+
59440
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
59441
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
59442
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
59443
+ localVarRequestOptions.data = serializeDataIfNeeded(priceBasketDto, localVarRequestOptions, configuration)
59444
+
59445
+ return {
59446
+ url: toPathString(localVarUrlObj),
59447
+ options: localVarRequestOptions,
59448
+ };
59449
+ },
59450
+ }
59451
+ };
59452
+
59453
+ /**
59454
+ * PromotionsApi - functional programming interface
59455
+ * @export
59456
+ */
59457
+ export const PromotionsApiFp = function(configuration?: Configuration) {
59458
+ const localVarAxiosParamCreator = PromotionsApiAxiosParamCreator(configuration)
59459
+ return {
59460
+ /**
59461
+ * The signal that tells the till whether to price its baskets: the venue\'s automatic promotions for the POS that are running at the moment of the read. Empty: the till need not call .../promotions/price unless the order holds a coupon code. Read it again when the venue\'s DISCOUNTS sync arrives.
59462
+ * @summary List the venue\'s automatic promotions running now on the POS
59463
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
59464
+ * @param {*} [options] Override http request option.
59465
+ * @throws {RequiredError}
59466
+ */
59467
+ async listAutomaticPromotions(businessId: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AutomaticPromotionsAnswerDto>> {
59468
+ const localVarAxiosArgs = await localVarAxiosParamCreator.listAutomaticPromotions(businessId, options);
59469
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
59470
+ },
59471
+ /**
59472
+ * The signal that tells the kiosk whether to price its baskets: the venue\'s automatic promotions for the kiosk that are running at the moment of the read. Empty: the kiosk need not call .../promotions/price unless the order holds a coupon code.
59473
+ * @summary List the venue\'s automatic promotions running now on the kiosk
59474
+ * @param {number} businessId The venue\&#39;s orderingBusinessId, the kiosk\&#39;s own venue
59475
+ * @param {*} [options] Override http request option.
59476
+ * @throws {RequiredError}
59477
+ */
59478
+ async listKioskAutomaticPromotions(businessId: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AutomaticPromotionsAnswerDto>> {
59479
+ const localVarAxiosArgs = await localVarAxiosParamCreator.listKioskAutomaticPromotions(businessId, options);
59480
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
59481
+ },
59482
+ /**
59483
+ * Vendure prices the basket as the online store prices a cart: the venue\'s automatic promotions for the POS and the order type, and the basket\'s coupon codes, and answers each discount with the money it takes off. Nothing is stored, reserved or counted. Ask only when the venue has automatic promotions running (GET .../promotions/automatic) or the order holds a coupon code, again whenever the basket changes, and keep the newest answer. Vendure not answering within 2 seconds is answered 200 with priced false and reason UNAVAILABLE.
59484
+ * @summary Price a till\'s basket with the venue\'s promotions
59485
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
59486
+ * @param {PriceBasketDto} priceBasketDto
59487
+ * @param {*} [options] Override http request option.
59488
+ * @throws {RequiredError}
59489
+ */
59490
+ async priceBasketWithPromotions(businessId: number, priceBasketDto: PriceBasketDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PriceBasketAnswerDto>> {
59491
+ const localVarAxiosArgs = await localVarAxiosParamCreator.priceBasketWithPromotions(businessId, priceBasketDto, options);
59492
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
59493
+ },
59494
+ /**
59495
+ * The kiosk\'s pricing, with the kiosk\'s key: the same pricing as the till\'s, for the kiosk app. Vendure prices the basket with the venue\'s automatic promotions and the basket\'s coupon codes and answers each discount with the money it takes off; nothing is stored, reserved or counted. Vendure not answering within 2 seconds is answered 200 with priced false and reason UNAVAILABLE.
59496
+ * @summary Price a kiosk\'s basket with the venue\'s promotions
59497
+ * @param {number} businessId The venue\&#39;s orderingBusinessId, the kiosk\&#39;s own venue
59498
+ * @param {PriceBasketDto} priceBasketDto
59499
+ * @param {*} [options] Override http request option.
59500
+ * @throws {RequiredError}
59501
+ */
59502
+ async priceKioskBasketWithPromotions(businessId: number, priceBasketDto: PriceBasketDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PriceBasketAnswerDto>> {
59503
+ const localVarAxiosArgs = await localVarAxiosParamCreator.priceKioskBasketWithPromotions(businessId, priceBasketDto, options);
59504
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
59505
+ },
59506
+ }
59507
+ };
59508
+
59509
+ /**
59510
+ * PromotionsApi - factory interface
59511
+ * @export
59512
+ */
59513
+ export const PromotionsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
59514
+ const localVarFp = PromotionsApiFp(configuration)
59515
+ return {
59516
+ /**
59517
+ * The signal that tells the till whether to price its baskets: the venue\'s automatic promotions for the POS that are running at the moment of the read. Empty: the till need not call .../promotions/price unless the order holds a coupon code. Read it again when the venue\'s DISCOUNTS sync arrives.
59518
+ * @summary List the venue\'s automatic promotions running now on the POS
59519
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
59520
+ * @param {*} [options] Override http request option.
59521
+ * @throws {RequiredError}
59522
+ */
59523
+ listAutomaticPromotions(businessId: number, options?: any): AxiosPromise<AutomaticPromotionsAnswerDto> {
59524
+ return localVarFp.listAutomaticPromotions(businessId, options).then((request) => request(axios, basePath));
59525
+ },
59526
+ /**
59527
+ * The signal that tells the kiosk whether to price its baskets: the venue\'s automatic promotions for the kiosk that are running at the moment of the read. Empty: the kiosk need not call .../promotions/price unless the order holds a coupon code.
59528
+ * @summary List the venue\'s automatic promotions running now on the kiosk
59529
+ * @param {number} businessId The venue\&#39;s orderingBusinessId, the kiosk\&#39;s own venue
59530
+ * @param {*} [options] Override http request option.
59531
+ * @throws {RequiredError}
59532
+ */
59533
+ listKioskAutomaticPromotions(businessId: number, options?: any): AxiosPromise<AutomaticPromotionsAnswerDto> {
59534
+ return localVarFp.listKioskAutomaticPromotions(businessId, options).then((request) => request(axios, basePath));
59535
+ },
59536
+ /**
59537
+ * Vendure prices the basket as the online store prices a cart: the venue\'s automatic promotions for the POS and the order type, and the basket\'s coupon codes, and answers each discount with the money it takes off. Nothing is stored, reserved or counted. Ask only when the venue has automatic promotions running (GET .../promotions/automatic) or the order holds a coupon code, again whenever the basket changes, and keep the newest answer. Vendure not answering within 2 seconds is answered 200 with priced false and reason UNAVAILABLE.
59538
+ * @summary Price a till\'s basket with the venue\'s promotions
59539
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
59540
+ * @param {PriceBasketDto} priceBasketDto
59541
+ * @param {*} [options] Override http request option.
59542
+ * @throws {RequiredError}
59543
+ */
59544
+ priceBasketWithPromotions(businessId: number, priceBasketDto: PriceBasketDto, options?: any): AxiosPromise<PriceBasketAnswerDto> {
59545
+ return localVarFp.priceBasketWithPromotions(businessId, priceBasketDto, options).then((request) => request(axios, basePath));
59546
+ },
59547
+ /**
59548
+ * The kiosk\'s pricing, with the kiosk\'s key: the same pricing as the till\'s, for the kiosk app. Vendure prices the basket with the venue\'s automatic promotions and the basket\'s coupon codes and answers each discount with the money it takes off; nothing is stored, reserved or counted. Vendure not answering within 2 seconds is answered 200 with priced false and reason UNAVAILABLE.
59549
+ * @summary Price a kiosk\'s basket with the venue\'s promotions
59550
+ * @param {number} businessId The venue\&#39;s orderingBusinessId, the kiosk\&#39;s own venue
59551
+ * @param {PriceBasketDto} priceBasketDto
59552
+ * @param {*} [options] Override http request option.
59553
+ * @throws {RequiredError}
59554
+ */
59555
+ priceKioskBasketWithPromotions(businessId: number, priceBasketDto: PriceBasketDto, options?: any): AxiosPromise<PriceBasketAnswerDto> {
59556
+ return localVarFp.priceKioskBasketWithPromotions(businessId, priceBasketDto, options).then((request) => request(axios, basePath));
59557
+ },
59558
+ };
59559
+ };
59560
+
59561
+ /**
59562
+ * PromotionsApi - interface
59563
+ * @export
59564
+ * @interface PromotionsApi
59565
+ */
59566
+ export interface PromotionsApiInterface {
59567
+ /**
59568
+ * The signal that tells the till whether to price its baskets: the venue\'s automatic promotions for the POS that are running at the moment of the read. Empty: the till need not call .../promotions/price unless the order holds a coupon code. Read it again when the venue\'s DISCOUNTS sync arrives.
59569
+ * @summary List the venue\'s automatic promotions running now on the POS
59570
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
59571
+ * @param {*} [options] Override http request option.
59572
+ * @throws {RequiredError}
59573
+ * @memberof PromotionsApiInterface
59574
+ */
59575
+ listAutomaticPromotions(businessId: number, options?: AxiosRequestConfig): AxiosPromise<AutomaticPromotionsAnswerDto>;
59576
+
59577
+ /**
59578
+ * The signal that tells the kiosk whether to price its baskets: the venue\'s automatic promotions for the kiosk that are running at the moment of the read. Empty: the kiosk need not call .../promotions/price unless the order holds a coupon code.
59579
+ * @summary List the venue\'s automatic promotions running now on the kiosk
59580
+ * @param {number} businessId The venue\&#39;s orderingBusinessId, the kiosk\&#39;s own venue
59581
+ * @param {*} [options] Override http request option.
59582
+ * @throws {RequiredError}
59583
+ * @memberof PromotionsApiInterface
59584
+ */
59585
+ listKioskAutomaticPromotions(businessId: number, options?: AxiosRequestConfig): AxiosPromise<AutomaticPromotionsAnswerDto>;
59586
+
59587
+ /**
59588
+ * Vendure prices the basket as the online store prices a cart: the venue\'s automatic promotions for the POS and the order type, and the basket\'s coupon codes, and answers each discount with the money it takes off. Nothing is stored, reserved or counted. Ask only when the venue has automatic promotions running (GET .../promotions/automatic) or the order holds a coupon code, again whenever the basket changes, and keep the newest answer. Vendure not answering within 2 seconds is answered 200 with priced false and reason UNAVAILABLE.
59589
+ * @summary Price a till\'s basket with the venue\'s promotions
59590
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
59591
+ * @param {PriceBasketDto} priceBasketDto
59592
+ * @param {*} [options] Override http request option.
59593
+ * @throws {RequiredError}
59594
+ * @memberof PromotionsApiInterface
59595
+ */
59596
+ priceBasketWithPromotions(businessId: number, priceBasketDto: PriceBasketDto, options?: AxiosRequestConfig): AxiosPromise<PriceBasketAnswerDto>;
59597
+
59598
+ /**
59599
+ * The kiosk\'s pricing, with the kiosk\'s key: the same pricing as the till\'s, for the kiosk app. Vendure prices the basket with the venue\'s automatic promotions and the basket\'s coupon codes and answers each discount with the money it takes off; nothing is stored, reserved or counted. Vendure not answering within 2 seconds is answered 200 with priced false and reason UNAVAILABLE.
59600
+ * @summary Price a kiosk\'s basket with the venue\'s promotions
59601
+ * @param {number} businessId The venue\&#39;s orderingBusinessId, the kiosk\&#39;s own venue
59602
+ * @param {PriceBasketDto} priceBasketDto
59603
+ * @param {*} [options] Override http request option.
59604
+ * @throws {RequiredError}
59605
+ * @memberof PromotionsApiInterface
59606
+ */
59607
+ priceKioskBasketWithPromotions(businessId: number, priceBasketDto: PriceBasketDto, options?: AxiosRequestConfig): AxiosPromise<PriceBasketAnswerDto>;
59608
+
59609
+ }
59610
+
59611
+ /**
59612
+ * PromotionsApi - object-oriented interface
59613
+ * @export
59614
+ * @class PromotionsApi
59615
+ * @extends {BaseAPI}
59616
+ */
59617
+ export class PromotionsApi extends BaseAPI implements PromotionsApiInterface {
59618
+ /**
59619
+ * The signal that tells the till whether to price its baskets: the venue\'s automatic promotions for the POS that are running at the moment of the read. Empty: the till need not call .../promotions/price unless the order holds a coupon code. Read it again when the venue\'s DISCOUNTS sync arrives.
59620
+ * @summary List the venue\'s automatic promotions running now on the POS
59621
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
59622
+ * @param {*} [options] Override http request option.
59623
+ * @throws {RequiredError}
59624
+ * @memberof PromotionsApi
59625
+ */
59626
+ public listAutomaticPromotions(businessId: number, options?: AxiosRequestConfig) {
59627
+ return PromotionsApiFp(this.configuration).listAutomaticPromotions(businessId, options).then((request) => request(this.axios, this.basePath));
59628
+ }
59629
+
59630
+ /**
59631
+ * The signal that tells the kiosk whether to price its baskets: the venue\'s automatic promotions for the kiosk that are running at the moment of the read. Empty: the kiosk need not call .../promotions/price unless the order holds a coupon code.
59632
+ * @summary List the venue\'s automatic promotions running now on the kiosk
59633
+ * @param {number} businessId The venue\&#39;s orderingBusinessId, the kiosk\&#39;s own venue
59634
+ * @param {*} [options] Override http request option.
59635
+ * @throws {RequiredError}
59636
+ * @memberof PromotionsApi
59637
+ */
59638
+ public listKioskAutomaticPromotions(businessId: number, options?: AxiosRequestConfig) {
59639
+ return PromotionsApiFp(this.configuration).listKioskAutomaticPromotions(businessId, options).then((request) => request(this.axios, this.basePath));
59640
+ }
59641
+
59642
+ /**
59643
+ * Vendure prices the basket as the online store prices a cart: the venue\'s automatic promotions for the POS and the order type, and the basket\'s coupon codes, and answers each discount with the money it takes off. Nothing is stored, reserved or counted. Ask only when the venue has automatic promotions running (GET .../promotions/automatic) or the order holds a coupon code, again whenever the basket changes, and keep the newest answer. Vendure not answering within 2 seconds is answered 200 with priced false and reason UNAVAILABLE.
59644
+ * @summary Price a till\'s basket with the venue\'s promotions
59645
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
59646
+ * @param {PriceBasketDto} priceBasketDto
59647
+ * @param {*} [options] Override http request option.
59648
+ * @throws {RequiredError}
59649
+ * @memberof PromotionsApi
59650
+ */
59651
+ public priceBasketWithPromotions(businessId: number, priceBasketDto: PriceBasketDto, options?: AxiosRequestConfig) {
59652
+ return PromotionsApiFp(this.configuration).priceBasketWithPromotions(businessId, priceBasketDto, options).then((request) => request(this.axios, this.basePath));
59653
+ }
59654
+
59655
+ /**
59656
+ * The kiosk\'s pricing, with the kiosk\'s key: the same pricing as the till\'s, for the kiosk app. Vendure prices the basket with the venue\'s automatic promotions and the basket\'s coupon codes and answers each discount with the money it takes off; nothing is stored, reserved or counted. Vendure not answering within 2 seconds is answered 200 with priced false and reason UNAVAILABLE.
59657
+ * @summary Price a kiosk\'s basket with the venue\'s promotions
59658
+ * @param {number} businessId The venue\&#39;s orderingBusinessId, the kiosk\&#39;s own venue
59659
+ * @param {PriceBasketDto} priceBasketDto
59660
+ * @param {*} [options] Override http request option.
59661
+ * @throws {RequiredError}
59662
+ * @memberof PromotionsApi
59663
+ */
59664
+ public priceKioskBasketWithPromotions(businessId: number, priceBasketDto: PriceBasketDto, options?: AxiosRequestConfig) {
59665
+ return PromotionsApiFp(this.configuration).priceKioskBasketWithPromotions(businessId, priceBasketDto, options).then((request) => request(this.axios, this.basePath));
59666
+ }
59667
+ }
59668
+
59669
+
59670
+ /**
59671
+ * ProviderApi - axios parameter creator
59672
+ * @export
59673
+ */
59674
+ export const ProviderApiAxiosParamCreator = function (configuration?: Configuration) {
59675
+ return {
59676
+ /**
59677
+ * Asks the channel\'s service (ubereats-service for UberEats, wolt-service for Wolt and WoltStorefront, resq-service for ResQ) for a sign-in session and answers it as that service answered it. Nothing is written here.
59678
+ * @summary Start connecting a venue to Uber Eats, Wolt or ResQ
59679
+ * @param {ProviderEnum} channel The channel to connect: UberEats, Wolt, WoltStorefront or ResQ. Any other channel is answered 400
59680
+ * @param {CreateOnboardingSessionDto} createOnboardingSessionDto
59681
+ * @param {*} [options] Override http request option.
59682
+ * @throws {RequiredError}
59683
+ */
59684
+ createOnboardingSession: async (channel: ProviderEnum, createOnboardingSessionDto: CreateOnboardingSessionDto, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
59685
+ // verify required parameter 'channel' is not null or undefined
59686
+ assertParamExists('createOnboardingSession', 'channel', channel)
59687
+ // verify required parameter 'createOnboardingSessionDto' is not null or undefined
59688
+ assertParamExists('createOnboardingSession', 'createOnboardingSessionDto', createOnboardingSessionDto)
59689
+ const localVarPath = `/api/v1/provider/onboarding/{channel}/sessions`
59690
+ .replace(`{${"channel"}}`, encodeURIComponent(String(channel)));
59691
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
59692
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
59693
+ let baseOptions;
59694
+ if (configuration) {
59695
+ baseOptions = configuration.baseOptions;
59696
+ }
59697
+
59698
+ const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
59699
+ const localVarHeaderParameter = {} as any;
59700
+ const localVarQueryParameter = {} as any;
59701
+
59702
+
59703
+
59704
+ localVarHeaderParameter['Content-Type'] = 'application/json';
59705
+
59706
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
59707
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
59708
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
59709
+ localVarRequestOptions.data = serializeDataIfNeeded(createOnboardingSessionDto, localVarRequestOptions, configuration)
59710
+
59711
+ return {
59712
+ url: toPathString(localVarUrlObj),
59713
+ options: localVarRequestOptions,
59714
+ };
59715
+ },
59716
+ /**
59717
+ * The channel\'s service disconnects the venue, writes its provider row and announces the change; its answer is passed on as it is: Uber Eats\' disconnected store, or the message of wolt-service or resq-service.
59718
+ * @summary Disconnect a venue from Uber Eats, Wolt or ResQ
59719
+ * @param {ProviderEnum} channel The channel to connect: UberEats, Wolt, WoltStorefront or ResQ. Any other channel is answered 400
59720
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
59721
+ * @param {*} [options] Override http request option.
59722
+ * @throws {RequiredError}
59723
+ */
59724
+ disconnectOnboarding: async (channel: ProviderEnum, businessId: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
59725
+ // verify required parameter 'channel' is not null or undefined
59726
+ assertParamExists('disconnectOnboarding', 'channel', channel)
59727
+ // verify required parameter 'businessId' is not null or undefined
59728
+ assertParamExists('disconnectOnboarding', 'businessId', businessId)
59729
+ const localVarPath = `/api/v1/provider/onboarding/{channel}/{businessId}`
59730
+ .replace(`{${"channel"}}`, encodeURIComponent(String(channel)))
59731
+ .replace(`{${"businessId"}}`, encodeURIComponent(String(businessId)));
59732
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
59733
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
59734
+ let baseOptions;
59735
+ if (configuration) {
59736
+ baseOptions = configuration.baseOptions;
59737
+ }
59738
+
59739
+ const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
59740
+ const localVarHeaderParameter = {} as any;
59741
+ const localVarQueryParameter = {} as any;
59742
+
59743
+
59744
+
59745
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
59746
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
59747
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
59748
+
59749
+ return {
59750
+ url: toPathString(localVarUrlObj),
59751
+ options: localVarRequestOptions,
59752
+ };
59753
+ },
59754
+ /**
59755
+ * The venue\'s channels that take the menu, so the till can switch a product\'s availability on each. Kept per venue under menu-integrations:<businessId>, an empty list too, and cleared when the venue\'s providers change (SYNC_KEY.BUSINESS_PROVIDER_SUPPORTED_INTEGRATIONS).
59756
+ * @summary Get provider integrations (MENU) for a business
59757
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
59758
+ * @param {*} [options] Override http request option.
59759
+ * @throws {RequiredError}
59760
+ */
59761
+ getMenuIntegrations: async (businessId: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
59762
+ // verify required parameter 'businessId' is not null or undefined
59763
+ assertParamExists('getMenuIntegrations', 'businessId', businessId)
59764
+ const localVarPath = `/api/v1/provider/integrations/{businessId}`
57313
59765
  .replace(`{${"businessId"}}`, encodeURIComponent(String(businessId)));
57314
59766
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
57315
59767
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -58924,6 +61376,163 @@ export class RefundsApi extends BaseAPI implements RefundsApiInterface {
58924
61376
  */
58925
61377
  export const ReportApiAxiosParamCreator = function (configuration?: Configuration) {
58926
61378
  return {
61379
+ /**
61380
+ * The period GET /api/v6/report/sales would add up, for the same venues, apps, time zone and breakdown, with the same access: each group\'s pairs of base items (an item\'s own line, never an option) sold in the most orders, each order once, with every order of each item, so percentOfItemA is exact: of the orders with A, how many also had B. Each venue-day keeps its top 25 pairs (daily_item_pairs); a group whose daysWithPairsCut is not 0 answers each pair\'s orders as a lower bound. itemKey answers the pairs of one item only.
61381
+ * @summary Items bought together in one order, over the period
61382
+ * @param {Array<number>} businessIds The venues asked about, by business id
61383
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
61384
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
61385
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
61386
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
61387
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
61388
+ * @param {ReportBreakdown} [breakdown] How the venues and apps are split into groups; every currency always splits, and one app asked is never added into several apps. Absent: venue for several venues, none for one
61389
+ * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
61390
+ * @param {string} [itemKey] Only the pairs with this item, by its key (an item\&#39;s itemKey of an earlier answer: the POS posId, the online product id). Absent: every pair
61391
+ * @param {number} [limit] How many pairs each group answers, most orders first: 1 to 100. Absent: 20
61392
+ * @param {*} [options] Override http request option.
61393
+ * @throws {RequiredError}
61394
+ */
61395
+ getBoughtTogether: async (businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, itemKey?: string, limit?: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
61396
+ // verify required parameter 'businessIds' is not null or undefined
61397
+ assertParamExists('getBoughtTogether', 'businessIds', businessIds)
61398
+ const localVarPath = `/api/v6/report/sales/bought-together`;
61399
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
61400
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
61401
+ let baseOptions;
61402
+ if (configuration) {
61403
+ baseOptions = configuration.baseOptions;
61404
+ }
61405
+
61406
+ const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
61407
+ const localVarHeaderParameter = {} as any;
61408
+ const localVarQueryParameter = {} as any;
61409
+
61410
+ // authentication JWT-auth required
61411
+ // http bearer authentication required
61412
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
61413
+
61414
+ if (timeSpan !== undefined) {
61415
+ localVarQueryParameter['timeSpan'] = timeSpan;
61416
+ }
61417
+
61418
+ if (start !== undefined) {
61419
+ localVarQueryParameter['start'] = start;
61420
+ }
61421
+
61422
+ if (end !== undefined) {
61423
+ localVarQueryParameter['end'] = end;
61424
+ }
61425
+
61426
+ if (businessIds) {
61427
+ localVarQueryParameter['businessIds'] = businessIds;
61428
+ }
61429
+
61430
+ if (timezone !== undefined) {
61431
+ localVarQueryParameter['timezone'] = timezone;
61432
+ }
61433
+
61434
+ if (apps) {
61435
+ localVarQueryParameter['apps'] = apps;
61436
+ }
61437
+
61438
+ if (breakdown !== undefined) {
61439
+ localVarQueryParameter['breakdown'] = breakdown;
61440
+ }
61441
+
61442
+ if (language !== undefined) {
61443
+ localVarQueryParameter['language'] = language;
61444
+ }
61445
+
61446
+ if (itemKey !== undefined) {
61447
+ localVarQueryParameter['itemKey'] = itemKey;
61448
+ }
61449
+
61450
+ if (limit !== undefined) {
61451
+ localVarQueryParameter['limit'] = limit;
61452
+ }
61453
+
61454
+
61455
+
61456
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
61457
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
61458
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
61459
+
61460
+ return {
61461
+ url: toPathString(localVarUrlObj),
61462
+ options: localVarRequestOptions,
61463
+ };
61464
+ },
61465
+ /**
61466
+ * The same report, rendered by the same generator, as the PDF the report e-mail (POST /api/v6/report/email) attaches, answered as the file itself instead of e-mailed. The period is the e-mail\'s: timeSpan DAY (the venue\'s business day), WEEK, MONTH, YEAR, or CUSTOM between start and end. A till\'s ticket gets it narrowed to the person on the till, as the e-mail is. Answers application/pdf with Content-Disposition attachment and the file\'s name.
61467
+ * @summary End-of-day sales report of a venue as a PDF file to download, for a day, week, month, year or custom period
61468
+ * @param {number} businessId The venue the file is of, by business id
61469
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
61470
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
61471
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
61472
+ * @param {string} [timezone] The IANA time zone the period\&#39;s days are counted in. Absent: the venue\&#39;s own
61473
+ * @param {ProviderEnum} [provider] The order source the report counts. Absent: MunchiPos, as the till\&#39;s report
61474
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
61475
+ * @param {*} [options] Override http request option.
61476
+ * @throws {RequiredError}
61477
+ */
61478
+ getEndOfDayReportFile: async (businessId: number, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, provider?: ProviderEnum, language?: ReportLanguage, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
61479
+ // verify required parameter 'businessId' is not null or undefined
61480
+ assertParamExists('getEndOfDayReportFile', 'businessId', businessId)
61481
+ const localVarPath = `/api/v6/report/end-of-day/file`;
61482
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
61483
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
61484
+ let baseOptions;
61485
+ if (configuration) {
61486
+ baseOptions = configuration.baseOptions;
61487
+ }
61488
+
61489
+ const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
61490
+ const localVarHeaderParameter = {} as any;
61491
+ const localVarQueryParameter = {} as any;
61492
+
61493
+ // authentication JWT-auth required
61494
+ // http bearer authentication required
61495
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
61496
+
61497
+ if (timeSpan !== undefined) {
61498
+ localVarQueryParameter['timeSpan'] = timeSpan;
61499
+ }
61500
+
61501
+ if (start !== undefined) {
61502
+ localVarQueryParameter['start'] = start;
61503
+ }
61504
+
61505
+ if (end !== undefined) {
61506
+ localVarQueryParameter['end'] = end;
61507
+ }
61508
+
61509
+ if (businessId !== undefined) {
61510
+ localVarQueryParameter['businessId'] = businessId;
61511
+ }
61512
+
61513
+ if (timezone !== undefined) {
61514
+ localVarQueryParameter['timezone'] = timezone;
61515
+ }
61516
+
61517
+ if (provider !== undefined) {
61518
+ localVarQueryParameter['provider'] = provider;
61519
+ }
61520
+
61521
+ if (language !== undefined) {
61522
+ localVarQueryParameter['language'] = language;
61523
+ }
61524
+
61525
+
61526
+
61527
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
61528
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
61529
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
61530
+
61531
+ return {
61532
+ url: toPathString(localVarUrlObj),
61533
+ options: localVarRequestOptions,
61534
+ };
61535
+ },
58927
61536
  /**
58928
61537
  *
58929
61538
  * @summary Get end-of-day financial report (V5)
@@ -59000,11 +61609,12 @@ export const ReportApiAxiosParamCreator = function (configuration?: Configuratio
59000
61609
  * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
59001
61610
  * @param {string} [compareStart] With compareEnd, compares the report with these whole days: each group then also answers comparison, the same group over them, and the change of every total worked out exactly. The first business day compared, YYYY-MM-DD, in the report\&#39;s time zone; not later than today. Neither sent: no comparison, and the answer is as before. Sent without compareEnd: refused
59002
61611
  * @param {string} [compareEnd] With compareStart: the last business day compared, YYYY-MM-DD, inclusive; a day later than today is read up to now. Sent without compareStart: refused
61612
+ * @param {boolean} [compareSameTime] With compareStart and compareEnd, true compares up to the same time: while the report\&#39;s last day is still running, both last days, the report\&#39;s and the compared one, are added up only to the last full hour the data has reached, on each venue\&#39;s own clock (today until 14:00 against that day until 14:00), so neither side counts minutes the other does not; earlier days stay whole. Each group whose compared day was cut answers comparison.comparedUntil. Only totals are cut (salesReport\&#39;s and paymentReport.summary\&#39;s totals, totalDiscounts, orderCount, averageOrderValue, the changes and the day\&#39;s dailyBreakdown); the lists (categories, items, VAT rates, payment methods, discounts) of the compared last day stay whole, since the hours hold totals only, not lines per item, payment method, VAT rate or discount. A day without hours yet is compared whole. Absent or false: the comparison is as before
59003
61613
  * @param {string} [baseline] One group of the answer every other group is compared with: venue:&lt;id&gt; with breakdown venue, app:&lt;app&gt; with breakdown app, venue:&lt;id&gt;,app:&lt;app&gt; with breakdown venue_app. Every other group then answers changesFromBaseline (current: the group; previous: the baseline), of the main period only; a group in another currency than the baseline\&#39;s answers changesFromBaselineLeftOut instead. Refused when the breakdown does not split on what it names, or it names a venue or app not asked
59004
61614
  * @param {*} [options] Override http request option.
59005
61615
  * @throws {RequiredError}
59006
61616
  */
59007
- getSalesReport: async (businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, parts?: Array<ReportPart>, breakdown?: ReportBreakdown, language?: string, compareStart?: string, compareEnd?: string, baseline?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
61617
+ getSalesReport: async (businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, parts?: Array<ReportPart>, breakdown?: ReportBreakdown, language?: string, compareStart?: string, compareEnd?: string, compareSameTime?: boolean, baseline?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
59008
61618
  // verify required parameter 'businessIds' is not null or undefined
59009
61619
  assertParamExists('getSalesReport', 'businessIds', businessIds)
59010
61620
  const localVarPath = `/api/v6/report/sales`;
@@ -59067,6 +61677,339 @@ export const ReportApiAxiosParamCreator = function (configuration?: Configuratio
59067
61677
  localVarQueryParameter['compareEnd'] = compareEnd;
59068
61678
  }
59069
61679
 
61680
+ if (compareSameTime !== undefined) {
61681
+ localVarQueryParameter['compareSameTime'] = compareSameTime;
61682
+ }
61683
+
61684
+ if (baseline !== undefined) {
61685
+ localVarQueryParameter['baseline'] = baseline;
61686
+ }
61687
+
61688
+
61689
+
61690
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
61691
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
61692
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
61693
+
61694
+ return {
61695
+ url: toPathString(localVarUrlObj),
61696
+ options: localVarRequestOptions,
61697
+ };
61698
+ },
61699
+ /**
61700
+ * The venue\'s sales report over the channels it has enabled (its active providers: MunchiPos is POS; MunchiKiosk, MunchiKioskV2 and Kiosk are the kiosk; Storefront is the storefront and the mobile app), added together: the same report GET /api/v6/report/sales answers for those apps with breakdown none, so its totals are that route\'s. The PDF prints a summary (channels, orders, average order value, gross sales, refunds), the sales breakdown (categories, items, VAT) and the payments breakdown (payment methods, vouchers, tips, discounts). With format xlsx the same report is an Excel workbook of plain numbers in the venue\'s currency, with the PDF\'s totals: sheets Summary, Items (every item and every option on its own row), Categories, VAT by rate, Payments, Vouchers & extras and Discounts. The period is whole business days, as that route reads them: timeSpan DAY, WEEK, MONTH or YEAR, or CUSTOM between start and end. Answers application/pdf (format pdf, the default) or application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (format xlsx) with Content-Disposition attachment, named sales-report-<businessId>-<first day>-<last day>.pdf or .xlsx.
61701
+ * @summary Sales report of a venue, every channel it has enabled (POS, kiosk, storefront and mobile app), as a PDF or Excel (xlsx) file to download
61702
+ * @param {number} businessId The venue the file is of, by business id
61703
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
61704
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
61705
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
61706
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the venue\&#39;s own (Business.timeZone)
61707
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
61708
+ * @param {FileFormat} [format] The file\&#39;s format: pdf, or xlsx for an Excel workbook of the same report with every item and option on its own row. Absent: pdf
61709
+ * @param {*} [options] Override http request option.
61710
+ * @throws {RequiredError}
61711
+ */
61712
+ getSalesReportFile: async (businessId: number, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, language?: ReportLanguage, format?: FileFormat, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
61713
+ // verify required parameter 'businessId' is not null or undefined
61714
+ assertParamExists('getSalesReportFile', 'businessId', businessId)
61715
+ const localVarPath = `/api/v6/report/sales/file`;
61716
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
61717
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
61718
+ let baseOptions;
61719
+ if (configuration) {
61720
+ baseOptions = configuration.baseOptions;
61721
+ }
61722
+
61723
+ const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
61724
+ const localVarHeaderParameter = {} as any;
61725
+ const localVarQueryParameter = {} as any;
61726
+
61727
+ // authentication JWT-auth required
61728
+ // http bearer authentication required
61729
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
61730
+
61731
+ if (timeSpan !== undefined) {
61732
+ localVarQueryParameter['timeSpan'] = timeSpan;
61733
+ }
61734
+
61735
+ if (start !== undefined) {
61736
+ localVarQueryParameter['start'] = start;
61737
+ }
61738
+
61739
+ if (end !== undefined) {
61740
+ localVarQueryParameter['end'] = end;
61741
+ }
61742
+
61743
+ if (businessId !== undefined) {
61744
+ localVarQueryParameter['businessId'] = businessId;
61745
+ }
61746
+
61747
+ if (timezone !== undefined) {
61748
+ localVarQueryParameter['timezone'] = timezone;
61749
+ }
61750
+
61751
+ if (language !== undefined) {
61752
+ localVarQueryParameter['language'] = language;
61753
+ }
61754
+
61755
+ if (format !== undefined) {
61756
+ localVarQueryParameter['format'] = format;
61757
+ }
61758
+
61759
+
61760
+
61761
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
61762
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
61763
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
61764
+
61765
+ return {
61766
+ url: toPathString(localVarUrlObj),
61767
+ options: localVarRequestOptions,
61768
+ };
61769
+ },
61770
+ /**
61771
+ * The period GET /api/v6/report/sales would add up, for the same venues, apps, time zone and breakdown, with the same access, per hour of each venue\'s own clock (hourly_summary): each hour\'s orders and totalWithTax, added up by the report\'s own rules, and their average over the period\'s calendar days, of isoWeekday only when it is sent. Busy hours: a month, its averageOrderCount. A normal Tuesday beside today: the last 8 weeks with isoWeekday 2, against today\'s own hours. A day sold on before hours were kept answers in no hour and is counted in daysWithoutHours.
61772
+ * @summary Sales of the venues and apps per hour of the day, with each hour\'s average day
61773
+ * @param {Array<number>} businessIds The venues asked about, by business id
61774
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
61775
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
61776
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
61777
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
61778
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
61779
+ * @param {ReportBreakdown} [breakdown] How the venues and apps are split into groups; every currency always splits, and one app asked is never added into several apps. Absent: venue for several venues, none for one
61780
+ * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
61781
+ * @param {number} [isoWeekday] Only the business days of this ISO weekday count, 1 Monday to 7 Sunday, in the report\&#39;s time zone; the average then is over those days. Absent: every day of the period. A normal Tuesday: the last 8 weeks before today with isoWeekday 2
61782
+ * @param {*} [options] Override http request option.
61783
+ * @throws {RequiredError}
61784
+ */
61785
+ getSalesReportHours: async (businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, isoWeekday?: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
61786
+ // verify required parameter 'businessIds' is not null or undefined
61787
+ assertParamExists('getSalesReportHours', 'businessIds', businessIds)
61788
+ const localVarPath = `/api/v6/report/sales/hours`;
61789
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
61790
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
61791
+ let baseOptions;
61792
+ if (configuration) {
61793
+ baseOptions = configuration.baseOptions;
61794
+ }
61795
+
61796
+ const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
61797
+ const localVarHeaderParameter = {} as any;
61798
+ const localVarQueryParameter = {} as any;
61799
+
61800
+ // authentication JWT-auth required
61801
+ // http bearer authentication required
61802
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
61803
+
61804
+ if (timeSpan !== undefined) {
61805
+ localVarQueryParameter['timeSpan'] = timeSpan;
61806
+ }
61807
+
61808
+ if (start !== undefined) {
61809
+ localVarQueryParameter['start'] = start;
61810
+ }
61811
+
61812
+ if (end !== undefined) {
61813
+ localVarQueryParameter['end'] = end;
61814
+ }
61815
+
61816
+ if (businessIds) {
61817
+ localVarQueryParameter['businessIds'] = businessIds;
61818
+ }
61819
+
61820
+ if (timezone !== undefined) {
61821
+ localVarQueryParameter['timezone'] = timezone;
61822
+ }
61823
+
61824
+ if (apps) {
61825
+ localVarQueryParameter['apps'] = apps;
61826
+ }
61827
+
61828
+ if (breakdown !== undefined) {
61829
+ localVarQueryParameter['breakdown'] = breakdown;
61830
+ }
61831
+
61832
+ if (language !== undefined) {
61833
+ localVarQueryParameter['language'] = language;
61834
+ }
61835
+
61836
+ if (isoWeekday !== undefined) {
61837
+ localVarQueryParameter['isoWeekday'] = isoWeekday;
61838
+ }
61839
+
61840
+
61841
+
61842
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
61843
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
61844
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
61845
+
61846
+ return {
61847
+ url: toPathString(localVarUrlObj),
61848
+ options: localVarRequestOptions,
61849
+ };
61850
+ },
61851
+ /**
61852
+ * The period GET /api/v6/report/sales would add up, for the same venues, apps, time zone and breakdown, with the same access, per order type (daily_order_types): each type\'s orders and sales, added up by the report\'s own rules. The till and the kiosk write dine_in or pick_up, the online store\'s Vendure dine_in, pickup or delivery; anything else, and an online order counted from its Postgres copy, is unknown, never guessed. A day sold on before order types were kept answers in no type and is counted in daysWithoutOrderTypes.
61853
+ * @summary Sales of the venues and apps per order type: eat in, takeaway, delivery
61854
+ * @param {Array<number>} businessIds The venues asked about, by business id
61855
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
61856
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
61857
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
61858
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
61859
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
61860
+ * @param {ReportBreakdown} [breakdown] How the venues and apps are split into groups; every currency always splits, and one app asked is never added into several apps. Absent: venue for several venues, none for one
61861
+ * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
61862
+ * @param {*} [options] Override http request option.
61863
+ * @throws {RequiredError}
61864
+ */
61865
+ getSalesReportOrderTypes: async (businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
61866
+ // verify required parameter 'businessIds' is not null or undefined
61867
+ assertParamExists('getSalesReportOrderTypes', 'businessIds', businessIds)
61868
+ const localVarPath = `/api/v6/report/sales/order-types`;
61869
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
61870
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
61871
+ let baseOptions;
61872
+ if (configuration) {
61873
+ baseOptions = configuration.baseOptions;
61874
+ }
61875
+
61876
+ const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
61877
+ const localVarHeaderParameter = {} as any;
61878
+ const localVarQueryParameter = {} as any;
61879
+
61880
+ // authentication JWT-auth required
61881
+ // http bearer authentication required
61882
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
61883
+
61884
+ if (timeSpan !== undefined) {
61885
+ localVarQueryParameter['timeSpan'] = timeSpan;
61886
+ }
61887
+
61888
+ if (start !== undefined) {
61889
+ localVarQueryParameter['start'] = start;
61890
+ }
61891
+
61892
+ if (end !== undefined) {
61893
+ localVarQueryParameter['end'] = end;
61894
+ }
61895
+
61896
+ if (businessIds) {
61897
+ localVarQueryParameter['businessIds'] = businessIds;
61898
+ }
61899
+
61900
+ if (timezone !== undefined) {
61901
+ localVarQueryParameter['timezone'] = timezone;
61902
+ }
61903
+
61904
+ if (apps) {
61905
+ localVarQueryParameter['apps'] = apps;
61906
+ }
61907
+
61908
+ if (breakdown !== undefined) {
61909
+ localVarQueryParameter['breakdown'] = breakdown;
61910
+ }
61911
+
61912
+ if (language !== undefined) {
61913
+ localVarQueryParameter['language'] = language;
61914
+ }
61915
+
61916
+
61917
+
61918
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
61919
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
61920
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
61921
+
61922
+ return {
61923
+ url: toPathString(localVarUrlObj),
61924
+ options: localVarRequestOptions,
61925
+ };
61926
+ },
61927
+ /**
61928
+ * The report GET /api/v6/report/sales answers for the same query, with the same access, short enough to read whole: the same totals, orderCount, averageOrderValue, days, VAT, payments, discounts, comparison, changes and changesFromBaseline, every amount rounded to the currency\'s minor digits; with part items, each category\'s totals (with and without VAT) without its items, and topItemsBySales and topItemsByQuantity, the 10 best-selling items with an item of the same name in several categories added up once. For every item with its VAT, its net and its options, read GET /api/v6/report/sales.
61929
+ * @summary Sales report of the venues and apps, short: totals, categories and best-selling items
61930
+ * @param {Array<number>} businessIds The venues asked about, by business id
61931
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
61932
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
61933
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
61934
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
61935
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
61936
+ * @param {Array<ReportPart>} [parts] The parts to answer, the parameter repeated or a JSON list; only their daily tables are read. Absent: all five
61937
+ * @param {ReportBreakdown} [breakdown] How the venues and apps are split into groups; every currency always splits, and one app asked is never added into several apps. Absent: venue for several venues, none for one
61938
+ * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
61939
+ * @param {string} [compareStart] With compareEnd, compares the report with these whole days: each group then also answers comparison, the same group over them, and the change of every total worked out exactly. The first business day compared, YYYY-MM-DD, in the report\&#39;s time zone; not later than today. Neither sent: no comparison, and the answer is as before. Sent without compareEnd: refused
61940
+ * @param {string} [compareEnd] With compareStart: the last business day compared, YYYY-MM-DD, inclusive; a day later than today is read up to now. Sent without compareStart: refused
61941
+ * @param {boolean} [compareSameTime] With compareStart and compareEnd, true compares up to the same time: while the report\&#39;s last day is still running, both last days, the report\&#39;s and the compared one, are added up only to the last full hour the data has reached, on each venue\&#39;s own clock (today until 14:00 against that day until 14:00), so neither side counts minutes the other does not; earlier days stay whole. Each group whose compared day was cut answers comparison.comparedUntil. Only totals are cut (salesReport\&#39;s and paymentReport.summary\&#39;s totals, totalDiscounts, orderCount, averageOrderValue, the changes and the day\&#39;s dailyBreakdown); the lists (categories, items, VAT rates, payment methods, discounts) of the compared last day stay whole, since the hours hold totals only, not lines per item, payment method, VAT rate or discount. A day without hours yet is compared whole. Absent or false: the comparison is as before
61942
+ * @param {string} [baseline] One group of the answer every other group is compared with: venue:&lt;id&gt; with breakdown venue, app:&lt;app&gt; with breakdown app, venue:&lt;id&gt;,app:&lt;app&gt; with breakdown venue_app. Every other group then answers changesFromBaseline (current: the group; previous: the baseline), of the main period only; a group in another currency than the baseline\&#39;s answers changesFromBaselineLeftOut instead. Refused when the breakdown does not split on what it names, or it names a venue or app not asked
61943
+ * @param {*} [options] Override http request option.
61944
+ * @throws {RequiredError}
61945
+ */
61946
+ getShortSalesReport: async (businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, parts?: Array<ReportPart>, breakdown?: ReportBreakdown, language?: string, compareStart?: string, compareEnd?: string, compareSameTime?: boolean, baseline?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
61947
+ // verify required parameter 'businessIds' is not null or undefined
61948
+ assertParamExists('getShortSalesReport', 'businessIds', businessIds)
61949
+ const localVarPath = `/api/v6/report/sales/short`;
61950
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
61951
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
61952
+ let baseOptions;
61953
+ if (configuration) {
61954
+ baseOptions = configuration.baseOptions;
61955
+ }
61956
+
61957
+ const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
61958
+ const localVarHeaderParameter = {} as any;
61959
+ const localVarQueryParameter = {} as any;
61960
+
61961
+ // authentication JWT-auth required
61962
+ // http bearer authentication required
61963
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
61964
+
61965
+ if (timeSpan !== undefined) {
61966
+ localVarQueryParameter['timeSpan'] = timeSpan;
61967
+ }
61968
+
61969
+ if (start !== undefined) {
61970
+ localVarQueryParameter['start'] = start;
61971
+ }
61972
+
61973
+ if (end !== undefined) {
61974
+ localVarQueryParameter['end'] = end;
61975
+ }
61976
+
61977
+ if (businessIds) {
61978
+ localVarQueryParameter['businessIds'] = businessIds;
61979
+ }
61980
+
61981
+ if (timezone !== undefined) {
61982
+ localVarQueryParameter['timezone'] = timezone;
61983
+ }
61984
+
61985
+ if (apps) {
61986
+ localVarQueryParameter['apps'] = apps;
61987
+ }
61988
+
61989
+ if (parts) {
61990
+ localVarQueryParameter['parts'] = parts;
61991
+ }
61992
+
61993
+ if (breakdown !== undefined) {
61994
+ localVarQueryParameter['breakdown'] = breakdown;
61995
+ }
61996
+
61997
+ if (language !== undefined) {
61998
+ localVarQueryParameter['language'] = language;
61999
+ }
62000
+
62001
+ if (compareStart !== undefined) {
62002
+ localVarQueryParameter['compareStart'] = compareStart;
62003
+ }
62004
+
62005
+ if (compareEnd !== undefined) {
62006
+ localVarQueryParameter['compareEnd'] = compareEnd;
62007
+ }
62008
+
62009
+ if (compareSameTime !== undefined) {
62010
+ localVarQueryParameter['compareSameTime'] = compareSameTime;
62011
+ }
62012
+
59070
62013
  if (baseline !== undefined) {
59071
62014
  localVarQueryParameter['baseline'] = baseline;
59072
62015
  }
@@ -59162,6 +62105,43 @@ export const ReportApiAxiosParamCreator = function (configuration?: Configuratio
59162
62105
  export const ReportApiFp = function(configuration?: Configuration) {
59163
62106
  const localVarAxiosParamCreator = ReportApiAxiosParamCreator(configuration)
59164
62107
  return {
62108
+ /**
62109
+ * The period GET /api/v6/report/sales would add up, for the same venues, apps, time zone and breakdown, with the same access: each group\'s pairs of base items (an item\'s own line, never an option) sold in the most orders, each order once, with every order of each item, so percentOfItemA is exact: of the orders with A, how many also had B. Each venue-day keeps its top 25 pairs (daily_item_pairs); a group whose daysWithPairsCut is not 0 answers each pair\'s orders as a lower bound. itemKey answers the pairs of one item only.
62110
+ * @summary Items bought together in one order, over the period
62111
+ * @param {Array<number>} businessIds The venues asked about, by business id
62112
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62113
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62114
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62115
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
62116
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
62117
+ * @param {ReportBreakdown} [breakdown] How the venues and apps are split into groups; every currency always splits, and one app asked is never added into several apps. Absent: venue for several venues, none for one
62118
+ * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
62119
+ * @param {string} [itemKey] Only the pairs with this item, by its key (an item\&#39;s itemKey of an earlier answer: the POS posId, the online product id). Absent: every pair
62120
+ * @param {number} [limit] How many pairs each group answers, most orders first: 1 to 100. Absent: 20
62121
+ * @param {*} [options] Override http request option.
62122
+ * @throws {RequiredError}
62123
+ */
62124
+ async getBoughtTogether(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, itemKey?: string, limit?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SalesReportBoughtTogetherResponseDto>> {
62125
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getBoughtTogether(businessIds, timeSpan, start, end, timezone, apps, breakdown, language, itemKey, limit, options);
62126
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
62127
+ },
62128
+ /**
62129
+ * The same report, rendered by the same generator, as the PDF the report e-mail (POST /api/v6/report/email) attaches, answered as the file itself instead of e-mailed. The period is the e-mail\'s: timeSpan DAY (the venue\'s business day), WEEK, MONTH, YEAR, or CUSTOM between start and end. A till\'s ticket gets it narrowed to the person on the till, as the e-mail is. Answers application/pdf with Content-Disposition attachment and the file\'s name.
62130
+ * @summary End-of-day sales report of a venue as a PDF file to download, for a day, week, month, year or custom period
62131
+ * @param {number} businessId The venue the file is of, by business id
62132
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62133
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62134
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62135
+ * @param {string} [timezone] The IANA time zone the period\&#39;s days are counted in. Absent: the venue\&#39;s own
62136
+ * @param {ProviderEnum} [provider] The order source the report counts. Absent: MunchiPos, as the till\&#39;s report
62137
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
62138
+ * @param {*} [options] Override http request option.
62139
+ * @throws {RequiredError}
62140
+ */
62141
+ async getEndOfDayReportFile(businessId: number, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, provider?: ProviderEnum, language?: ReportLanguage, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<File>> {
62142
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getEndOfDayReportFile(businessId, timeSpan, start, end, timezone, provider, language, options);
62143
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
62144
+ },
59165
62145
  /**
59166
62146
  *
59167
62147
  * @summary Get end-of-day financial report (V5)
@@ -59192,12 +62172,90 @@ export const ReportApiFp = function(configuration?: Configuration) {
59192
62172
  * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
59193
62173
  * @param {string} [compareStart] With compareEnd, compares the report with these whole days: each group then also answers comparison, the same group over them, and the change of every total worked out exactly. The first business day compared, YYYY-MM-DD, in the report\&#39;s time zone; not later than today. Neither sent: no comparison, and the answer is as before. Sent without compareEnd: refused
59194
62174
  * @param {string} [compareEnd] With compareStart: the last business day compared, YYYY-MM-DD, inclusive; a day later than today is read up to now. Sent without compareStart: refused
62175
+ * @param {boolean} [compareSameTime] With compareStart and compareEnd, true compares up to the same time: while the report\&#39;s last day is still running, both last days, the report\&#39;s and the compared one, are added up only to the last full hour the data has reached, on each venue\&#39;s own clock (today until 14:00 against that day until 14:00), so neither side counts minutes the other does not; earlier days stay whole. Each group whose compared day was cut answers comparison.comparedUntil. Only totals are cut (salesReport\&#39;s and paymentReport.summary\&#39;s totals, totalDiscounts, orderCount, averageOrderValue, the changes and the day\&#39;s dailyBreakdown); the lists (categories, items, VAT rates, payment methods, discounts) of the compared last day stay whole, since the hours hold totals only, not lines per item, payment method, VAT rate or discount. A day without hours yet is compared whole. Absent or false: the comparison is as before
62176
+ * @param {string} [baseline] One group of the answer every other group is compared with: venue:&lt;id&gt; with breakdown venue, app:&lt;app&gt; with breakdown app, venue:&lt;id&gt;,app:&lt;app&gt; with breakdown venue_app. Every other group then answers changesFromBaseline (current: the group; previous: the baseline), of the main period only; a group in another currency than the baseline\&#39;s answers changesFromBaselineLeftOut instead. Refused when the breakdown does not split on what it names, or it names a venue or app not asked
62177
+ * @param {*} [options] Override http request option.
62178
+ * @throws {RequiredError}
62179
+ */
62180
+ async getSalesReport(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, parts?: Array<ReportPart>, breakdown?: ReportBreakdown, language?: string, compareStart?: string, compareEnd?: string, compareSameTime?: boolean, baseline?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SalesReportResponseDto>> {
62181
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getSalesReport(businessIds, timeSpan, start, end, timezone, apps, parts, breakdown, language, compareStart, compareEnd, compareSameTime, baseline, options);
62182
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
62183
+ },
62184
+ /**
62185
+ * The venue\'s sales report over the channels it has enabled (its active providers: MunchiPos is POS; MunchiKiosk, MunchiKioskV2 and Kiosk are the kiosk; Storefront is the storefront and the mobile app), added together: the same report GET /api/v6/report/sales answers for those apps with breakdown none, so its totals are that route\'s. The PDF prints a summary (channels, orders, average order value, gross sales, refunds), the sales breakdown (categories, items, VAT) and the payments breakdown (payment methods, vouchers, tips, discounts). With format xlsx the same report is an Excel workbook of plain numbers in the venue\'s currency, with the PDF\'s totals: sheets Summary, Items (every item and every option on its own row), Categories, VAT by rate, Payments, Vouchers & extras and Discounts. The period is whole business days, as that route reads them: timeSpan DAY, WEEK, MONTH or YEAR, or CUSTOM between start and end. Answers application/pdf (format pdf, the default) or application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (format xlsx) with Content-Disposition attachment, named sales-report-<businessId>-<first day>-<last day>.pdf or .xlsx.
62186
+ * @summary Sales report of a venue, every channel it has enabled (POS, kiosk, storefront and mobile app), as a PDF or Excel (xlsx) file to download
62187
+ * @param {number} businessId The venue the file is of, by business id
62188
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62189
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62190
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62191
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the venue\&#39;s own (Business.timeZone)
62192
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
62193
+ * @param {FileFormat} [format] The file\&#39;s format: pdf, or xlsx for an Excel workbook of the same report with every item and option on its own row. Absent: pdf
62194
+ * @param {*} [options] Override http request option.
62195
+ * @throws {RequiredError}
62196
+ */
62197
+ async getSalesReportFile(businessId: number, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, language?: ReportLanguage, format?: FileFormat, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<File>> {
62198
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getSalesReportFile(businessId, timeSpan, start, end, timezone, language, format, options);
62199
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
62200
+ },
62201
+ /**
62202
+ * The period GET /api/v6/report/sales would add up, for the same venues, apps, time zone and breakdown, with the same access, per hour of each venue\'s own clock (hourly_summary): each hour\'s orders and totalWithTax, added up by the report\'s own rules, and their average over the period\'s calendar days, of isoWeekday only when it is sent. Busy hours: a month, its averageOrderCount. A normal Tuesday beside today: the last 8 weeks with isoWeekday 2, against today\'s own hours. A day sold on before hours were kept answers in no hour and is counted in daysWithoutHours.
62203
+ * @summary Sales of the venues and apps per hour of the day, with each hour\'s average day
62204
+ * @param {Array<number>} businessIds The venues asked about, by business id
62205
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62206
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62207
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62208
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
62209
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
62210
+ * @param {ReportBreakdown} [breakdown] How the venues and apps are split into groups; every currency always splits, and one app asked is never added into several apps. Absent: venue for several venues, none for one
62211
+ * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
62212
+ * @param {number} [isoWeekday] Only the business days of this ISO weekday count, 1 Monday to 7 Sunday, in the report\&#39;s time zone; the average then is over those days. Absent: every day of the period. A normal Tuesday: the last 8 weeks before today with isoWeekday 2
62213
+ * @param {*} [options] Override http request option.
62214
+ * @throws {RequiredError}
62215
+ */
62216
+ async getSalesReportHours(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, isoWeekday?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SalesReportHoursResponseDto>> {
62217
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getSalesReportHours(businessIds, timeSpan, start, end, timezone, apps, breakdown, language, isoWeekday, options);
62218
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
62219
+ },
62220
+ /**
62221
+ * The period GET /api/v6/report/sales would add up, for the same venues, apps, time zone and breakdown, with the same access, per order type (daily_order_types): each type\'s orders and sales, added up by the report\'s own rules. The till and the kiosk write dine_in or pick_up, the online store\'s Vendure dine_in, pickup or delivery; anything else, and an online order counted from its Postgres copy, is unknown, never guessed. A day sold on before order types were kept answers in no type and is counted in daysWithoutOrderTypes.
62222
+ * @summary Sales of the venues and apps per order type: eat in, takeaway, delivery
62223
+ * @param {Array<number>} businessIds The venues asked about, by business id
62224
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62225
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62226
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62227
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
62228
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
62229
+ * @param {ReportBreakdown} [breakdown] How the venues and apps are split into groups; every currency always splits, and one app asked is never added into several apps. Absent: venue for several venues, none for one
62230
+ * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
62231
+ * @param {*} [options] Override http request option.
62232
+ * @throws {RequiredError}
62233
+ */
62234
+ async getSalesReportOrderTypes(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SalesReportOrderTypesResponseDto>> {
62235
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getSalesReportOrderTypes(businessIds, timeSpan, start, end, timezone, apps, breakdown, language, options);
62236
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
62237
+ },
62238
+ /**
62239
+ * The report GET /api/v6/report/sales answers for the same query, with the same access, short enough to read whole: the same totals, orderCount, averageOrderValue, days, VAT, payments, discounts, comparison, changes and changesFromBaseline, every amount rounded to the currency\'s minor digits; with part items, each category\'s totals (with and without VAT) without its items, and topItemsBySales and topItemsByQuantity, the 10 best-selling items with an item of the same name in several categories added up once. For every item with its VAT, its net and its options, read GET /api/v6/report/sales.
62240
+ * @summary Sales report of the venues and apps, short: totals, categories and best-selling items
62241
+ * @param {Array<number>} businessIds The venues asked about, by business id
62242
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62243
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62244
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62245
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
62246
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
62247
+ * @param {Array<ReportPart>} [parts] The parts to answer, the parameter repeated or a JSON list; only their daily tables are read. Absent: all five
62248
+ * @param {ReportBreakdown} [breakdown] How the venues and apps are split into groups; every currency always splits, and one app asked is never added into several apps. Absent: venue for several venues, none for one
62249
+ * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
62250
+ * @param {string} [compareStart] With compareEnd, compares the report with these whole days: each group then also answers comparison, the same group over them, and the change of every total worked out exactly. The first business day compared, YYYY-MM-DD, in the report\&#39;s time zone; not later than today. Neither sent: no comparison, and the answer is as before. Sent without compareEnd: refused
62251
+ * @param {string} [compareEnd] With compareStart: the last business day compared, YYYY-MM-DD, inclusive; a day later than today is read up to now. Sent without compareStart: refused
62252
+ * @param {boolean} [compareSameTime] With compareStart and compareEnd, true compares up to the same time: while the report\&#39;s last day is still running, both last days, the report\&#39;s and the compared one, are added up only to the last full hour the data has reached, on each venue\&#39;s own clock (today until 14:00 against that day until 14:00), so neither side counts minutes the other does not; earlier days stay whole. Each group whose compared day was cut answers comparison.comparedUntil. Only totals are cut (salesReport\&#39;s and paymentReport.summary\&#39;s totals, totalDiscounts, orderCount, averageOrderValue, the changes and the day\&#39;s dailyBreakdown); the lists (categories, items, VAT rates, payment methods, discounts) of the compared last day stay whole, since the hours hold totals only, not lines per item, payment method, VAT rate or discount. A day without hours yet is compared whole. Absent or false: the comparison is as before
59195
62253
  * @param {string} [baseline] One group of the answer every other group is compared with: venue:&lt;id&gt; with breakdown venue, app:&lt;app&gt; with breakdown app, venue:&lt;id&gt;,app:&lt;app&gt; with breakdown venue_app. Every other group then answers changesFromBaseline (current: the group; previous: the baseline), of the main period only; a group in another currency than the baseline\&#39;s answers changesFromBaselineLeftOut instead. Refused when the breakdown does not split on what it names, or it names a venue or app not asked
59196
62254
  * @param {*} [options] Override http request option.
59197
62255
  * @throws {RequiredError}
59198
62256
  */
59199
- async getSalesReport(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, parts?: Array<ReportPart>, breakdown?: ReportBreakdown, language?: string, compareStart?: string, compareEnd?: string, baseline?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SalesReportResponseDto>> {
59200
- const localVarAxiosArgs = await localVarAxiosParamCreator.getSalesReport(businessIds, timeSpan, start, end, timezone, apps, parts, breakdown, language, compareStart, compareEnd, baseline, options);
62257
+ async getShortSalesReport(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, parts?: Array<ReportPart>, breakdown?: ReportBreakdown, language?: string, compareStart?: string, compareEnd?: string, compareSameTime?: boolean, baseline?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SalesReportShortResponseDto>> {
62258
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getShortSalesReport(businessIds, timeSpan, start, end, timezone, apps, parts, breakdown, language, compareStart, compareEnd, compareSameTime, baseline, options);
59201
62259
  return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
59202
62260
  },
59203
62261
  /**
@@ -59227,6 +62285,41 @@ export const ReportApiFp = function(configuration?: Configuration) {
59227
62285
  export const ReportApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
59228
62286
  const localVarFp = ReportApiFp(configuration)
59229
62287
  return {
62288
+ /**
62289
+ * The period GET /api/v6/report/sales would add up, for the same venues, apps, time zone and breakdown, with the same access: each group\'s pairs of base items (an item\'s own line, never an option) sold in the most orders, each order once, with every order of each item, so percentOfItemA is exact: of the orders with A, how many also had B. Each venue-day keeps its top 25 pairs (daily_item_pairs); a group whose daysWithPairsCut is not 0 answers each pair\'s orders as a lower bound. itemKey answers the pairs of one item only.
62290
+ * @summary Items bought together in one order, over the period
62291
+ * @param {Array<number>} businessIds The venues asked about, by business id
62292
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62293
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62294
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62295
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
62296
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
62297
+ * @param {ReportBreakdown} [breakdown] How the venues and apps are split into groups; every currency always splits, and one app asked is never added into several apps. Absent: venue for several venues, none for one
62298
+ * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
62299
+ * @param {string} [itemKey] Only the pairs with this item, by its key (an item\&#39;s itemKey of an earlier answer: the POS posId, the online product id). Absent: every pair
62300
+ * @param {number} [limit] How many pairs each group answers, most orders first: 1 to 100. Absent: 20
62301
+ * @param {*} [options] Override http request option.
62302
+ * @throws {RequiredError}
62303
+ */
62304
+ getBoughtTogether(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, itemKey?: string, limit?: number, options?: any): AxiosPromise<SalesReportBoughtTogetherResponseDto> {
62305
+ return localVarFp.getBoughtTogether(businessIds, timeSpan, start, end, timezone, apps, breakdown, language, itemKey, limit, options).then((request) => request(axios, basePath));
62306
+ },
62307
+ /**
62308
+ * The same report, rendered by the same generator, as the PDF the report e-mail (POST /api/v6/report/email) attaches, answered as the file itself instead of e-mailed. The period is the e-mail\'s: timeSpan DAY (the venue\'s business day), WEEK, MONTH, YEAR, or CUSTOM between start and end. A till\'s ticket gets it narrowed to the person on the till, as the e-mail is. Answers application/pdf with Content-Disposition attachment and the file\'s name.
62309
+ * @summary End-of-day sales report of a venue as a PDF file to download, for a day, week, month, year or custom period
62310
+ * @param {number} businessId The venue the file is of, by business id
62311
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62312
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62313
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62314
+ * @param {string} [timezone] The IANA time zone the period\&#39;s days are counted in. Absent: the venue\&#39;s own
62315
+ * @param {ProviderEnum} [provider] The order source the report counts. Absent: MunchiPos, as the till\&#39;s report
62316
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
62317
+ * @param {*} [options] Override http request option.
62318
+ * @throws {RequiredError}
62319
+ */
62320
+ getEndOfDayReportFile(businessId: number, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, provider?: ProviderEnum, language?: ReportLanguage, options?: any): AxiosPromise<File> {
62321
+ return localVarFp.getEndOfDayReportFile(businessId, timeSpan, start, end, timezone, provider, language, options).then((request) => request(axios, basePath));
62322
+ },
59230
62323
  /**
59231
62324
  *
59232
62325
  * @summary Get end-of-day financial report (V5)
@@ -59256,12 +62349,86 @@ export const ReportApiFactory = function (configuration?: Configuration, basePat
59256
62349
  * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
59257
62350
  * @param {string} [compareStart] With compareEnd, compares the report with these whole days: each group then also answers comparison, the same group over them, and the change of every total worked out exactly. The first business day compared, YYYY-MM-DD, in the report\&#39;s time zone; not later than today. Neither sent: no comparison, and the answer is as before. Sent without compareEnd: refused
59258
62351
  * @param {string} [compareEnd] With compareStart: the last business day compared, YYYY-MM-DD, inclusive; a day later than today is read up to now. Sent without compareStart: refused
62352
+ * @param {boolean} [compareSameTime] With compareStart and compareEnd, true compares up to the same time: while the report\&#39;s last day is still running, both last days, the report\&#39;s and the compared one, are added up only to the last full hour the data has reached, on each venue\&#39;s own clock (today until 14:00 against that day until 14:00), so neither side counts minutes the other does not; earlier days stay whole. Each group whose compared day was cut answers comparison.comparedUntil. Only totals are cut (salesReport\&#39;s and paymentReport.summary\&#39;s totals, totalDiscounts, orderCount, averageOrderValue, the changes and the day\&#39;s dailyBreakdown); the lists (categories, items, VAT rates, payment methods, discounts) of the compared last day stay whole, since the hours hold totals only, not lines per item, payment method, VAT rate or discount. A day without hours yet is compared whole. Absent or false: the comparison is as before
59259
62353
  * @param {string} [baseline] One group of the answer every other group is compared with: venue:&lt;id&gt; with breakdown venue, app:&lt;app&gt; with breakdown app, venue:&lt;id&gt;,app:&lt;app&gt; with breakdown venue_app. Every other group then answers changesFromBaseline (current: the group; previous: the baseline), of the main period only; a group in another currency than the baseline\&#39;s answers changesFromBaselineLeftOut instead. Refused when the breakdown does not split on what it names, or it names a venue or app not asked
59260
62354
  * @param {*} [options] Override http request option.
59261
62355
  * @throws {RequiredError}
59262
62356
  */
59263
- getSalesReport(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, parts?: Array<ReportPart>, breakdown?: ReportBreakdown, language?: string, compareStart?: string, compareEnd?: string, baseline?: string, options?: any): AxiosPromise<SalesReportResponseDto> {
59264
- return localVarFp.getSalesReport(businessIds, timeSpan, start, end, timezone, apps, parts, breakdown, language, compareStart, compareEnd, baseline, options).then((request) => request(axios, basePath));
62357
+ getSalesReport(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, parts?: Array<ReportPart>, breakdown?: ReportBreakdown, language?: string, compareStart?: string, compareEnd?: string, compareSameTime?: boolean, baseline?: string, options?: any): AxiosPromise<SalesReportResponseDto> {
62358
+ return localVarFp.getSalesReport(businessIds, timeSpan, start, end, timezone, apps, parts, breakdown, language, compareStart, compareEnd, compareSameTime, baseline, options).then((request) => request(axios, basePath));
62359
+ },
62360
+ /**
62361
+ * The venue\'s sales report over the channels it has enabled (its active providers: MunchiPos is POS; MunchiKiosk, MunchiKioskV2 and Kiosk are the kiosk; Storefront is the storefront and the mobile app), added together: the same report GET /api/v6/report/sales answers for those apps with breakdown none, so its totals are that route\'s. The PDF prints a summary (channels, orders, average order value, gross sales, refunds), the sales breakdown (categories, items, VAT) and the payments breakdown (payment methods, vouchers, tips, discounts). With format xlsx the same report is an Excel workbook of plain numbers in the venue\'s currency, with the PDF\'s totals: sheets Summary, Items (every item and every option on its own row), Categories, VAT by rate, Payments, Vouchers & extras and Discounts. The period is whole business days, as that route reads them: timeSpan DAY, WEEK, MONTH or YEAR, or CUSTOM between start and end. Answers application/pdf (format pdf, the default) or application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (format xlsx) with Content-Disposition attachment, named sales-report-<businessId>-<first day>-<last day>.pdf or .xlsx.
62362
+ * @summary Sales report of a venue, every channel it has enabled (POS, kiosk, storefront and mobile app), as a PDF or Excel (xlsx) file to download
62363
+ * @param {number} businessId The venue the file is of, by business id
62364
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62365
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62366
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62367
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the venue\&#39;s own (Business.timeZone)
62368
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
62369
+ * @param {FileFormat} [format] The file\&#39;s format: pdf, or xlsx for an Excel workbook of the same report with every item and option on its own row. Absent: pdf
62370
+ * @param {*} [options] Override http request option.
62371
+ * @throws {RequiredError}
62372
+ */
62373
+ getSalesReportFile(businessId: number, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, language?: ReportLanguage, format?: FileFormat, options?: any): AxiosPromise<File> {
62374
+ return localVarFp.getSalesReportFile(businessId, timeSpan, start, end, timezone, language, format, options).then((request) => request(axios, basePath));
62375
+ },
62376
+ /**
62377
+ * The period GET /api/v6/report/sales would add up, for the same venues, apps, time zone and breakdown, with the same access, per hour of each venue\'s own clock (hourly_summary): each hour\'s orders and totalWithTax, added up by the report\'s own rules, and their average over the period\'s calendar days, of isoWeekday only when it is sent. Busy hours: a month, its averageOrderCount. A normal Tuesday beside today: the last 8 weeks with isoWeekday 2, against today\'s own hours. A day sold on before hours were kept answers in no hour and is counted in daysWithoutHours.
62378
+ * @summary Sales of the venues and apps per hour of the day, with each hour\'s average day
62379
+ * @param {Array<number>} businessIds The venues asked about, by business id
62380
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62381
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62382
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62383
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
62384
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
62385
+ * @param {ReportBreakdown} [breakdown] How the venues and apps are split into groups; every currency always splits, and one app asked is never added into several apps. Absent: venue for several venues, none for one
62386
+ * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
62387
+ * @param {number} [isoWeekday] Only the business days of this ISO weekday count, 1 Monday to 7 Sunday, in the report\&#39;s time zone; the average then is over those days. Absent: every day of the period. A normal Tuesday: the last 8 weeks before today with isoWeekday 2
62388
+ * @param {*} [options] Override http request option.
62389
+ * @throws {RequiredError}
62390
+ */
62391
+ getSalesReportHours(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, isoWeekday?: number, options?: any): AxiosPromise<SalesReportHoursResponseDto> {
62392
+ return localVarFp.getSalesReportHours(businessIds, timeSpan, start, end, timezone, apps, breakdown, language, isoWeekday, options).then((request) => request(axios, basePath));
62393
+ },
62394
+ /**
62395
+ * The period GET /api/v6/report/sales would add up, for the same venues, apps, time zone and breakdown, with the same access, per order type (daily_order_types): each type\'s orders and sales, added up by the report\'s own rules. The till and the kiosk write dine_in or pick_up, the online store\'s Vendure dine_in, pickup or delivery; anything else, and an online order counted from its Postgres copy, is unknown, never guessed. A day sold on before order types were kept answers in no type and is counted in daysWithoutOrderTypes.
62396
+ * @summary Sales of the venues and apps per order type: eat in, takeaway, delivery
62397
+ * @param {Array<number>} businessIds The venues asked about, by business id
62398
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62399
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62400
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62401
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
62402
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
62403
+ * @param {ReportBreakdown} [breakdown] How the venues and apps are split into groups; every currency always splits, and one app asked is never added into several apps. Absent: venue for several venues, none for one
62404
+ * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
62405
+ * @param {*} [options] Override http request option.
62406
+ * @throws {RequiredError}
62407
+ */
62408
+ getSalesReportOrderTypes(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, options?: any): AxiosPromise<SalesReportOrderTypesResponseDto> {
62409
+ return localVarFp.getSalesReportOrderTypes(businessIds, timeSpan, start, end, timezone, apps, breakdown, language, options).then((request) => request(axios, basePath));
62410
+ },
62411
+ /**
62412
+ * The report GET /api/v6/report/sales answers for the same query, with the same access, short enough to read whole: the same totals, orderCount, averageOrderValue, days, VAT, payments, discounts, comparison, changes and changesFromBaseline, every amount rounded to the currency\'s minor digits; with part items, each category\'s totals (with and without VAT) without its items, and topItemsBySales and topItemsByQuantity, the 10 best-selling items with an item of the same name in several categories added up once. For every item with its VAT, its net and its options, read GET /api/v6/report/sales.
62413
+ * @summary Sales report of the venues and apps, short: totals, categories and best-selling items
62414
+ * @param {Array<number>} businessIds The venues asked about, by business id
62415
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62416
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62417
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62418
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
62419
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
62420
+ * @param {Array<ReportPart>} [parts] The parts to answer, the parameter repeated or a JSON list; only their daily tables are read. Absent: all five
62421
+ * @param {ReportBreakdown} [breakdown] How the venues and apps are split into groups; every currency always splits, and one app asked is never added into several apps. Absent: venue for several venues, none for one
62422
+ * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
62423
+ * @param {string} [compareStart] With compareEnd, compares the report with these whole days: each group then also answers comparison, the same group over them, and the change of every total worked out exactly. The first business day compared, YYYY-MM-DD, in the report\&#39;s time zone; not later than today. Neither sent: no comparison, and the answer is as before. Sent without compareEnd: refused
62424
+ * @param {string} [compareEnd] With compareStart: the last business day compared, YYYY-MM-DD, inclusive; a day later than today is read up to now. Sent without compareStart: refused
62425
+ * @param {boolean} [compareSameTime] With compareStart and compareEnd, true compares up to the same time: while the report\&#39;s last day is still running, both last days, the report\&#39;s and the compared one, are added up only to the last full hour the data has reached, on each venue\&#39;s own clock (today until 14:00 against that day until 14:00), so neither side counts minutes the other does not; earlier days stay whole. Each group whose compared day was cut answers comparison.comparedUntil. Only totals are cut (salesReport\&#39;s and paymentReport.summary\&#39;s totals, totalDiscounts, orderCount, averageOrderValue, the changes and the day\&#39;s dailyBreakdown); the lists (categories, items, VAT rates, payment methods, discounts) of the compared last day stay whole, since the hours hold totals only, not lines per item, payment method, VAT rate or discount. A day without hours yet is compared whole. Absent or false: the comparison is as before
62426
+ * @param {string} [baseline] One group of the answer every other group is compared with: venue:&lt;id&gt; with breakdown venue, app:&lt;app&gt; with breakdown app, venue:&lt;id&gt;,app:&lt;app&gt; with breakdown venue_app. Every other group then answers changesFromBaseline (current: the group; previous: the baseline), of the main period only; a group in another currency than the baseline\&#39;s answers changesFromBaselineLeftOut instead. Refused when the breakdown does not split on what it names, or it names a venue or app not asked
62427
+ * @param {*} [options] Override http request option.
62428
+ * @throws {RequiredError}
62429
+ */
62430
+ getShortSalesReport(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, parts?: Array<ReportPart>, breakdown?: ReportBreakdown, language?: string, compareStart?: string, compareEnd?: string, compareSameTime?: boolean, baseline?: string, options?: any): AxiosPromise<SalesReportShortResponseDto> {
62431
+ return localVarFp.getShortSalesReport(businessIds, timeSpan, start, end, timezone, apps, parts, breakdown, language, compareStart, compareEnd, compareSameTime, baseline, options).then((request) => request(axios, basePath));
59265
62432
  },
59266
62433
  /**
59267
62434
  *
@@ -59288,6 +62455,41 @@ export const ReportApiFactory = function (configuration?: Configuration, basePat
59288
62455
  * @interface ReportApi
59289
62456
  */
59290
62457
  export interface ReportApiInterface {
62458
+ /**
62459
+ * The period GET /api/v6/report/sales would add up, for the same venues, apps, time zone and breakdown, with the same access: each group\'s pairs of base items (an item\'s own line, never an option) sold in the most orders, each order once, with every order of each item, so percentOfItemA is exact: of the orders with A, how many also had B. Each venue-day keeps its top 25 pairs (daily_item_pairs); a group whose daysWithPairsCut is not 0 answers each pair\'s orders as a lower bound. itemKey answers the pairs of one item only.
62460
+ * @summary Items bought together in one order, over the period
62461
+ * @param {Array<number>} businessIds The venues asked about, by business id
62462
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62463
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62464
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62465
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
62466
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
62467
+ * @param {ReportBreakdown} [breakdown] How the venues and apps are split into groups; every currency always splits, and one app asked is never added into several apps. Absent: venue for several venues, none for one
62468
+ * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
62469
+ * @param {string} [itemKey] Only the pairs with this item, by its key (an item\&#39;s itemKey of an earlier answer: the POS posId, the online product id). Absent: every pair
62470
+ * @param {number} [limit] How many pairs each group answers, most orders first: 1 to 100. Absent: 20
62471
+ * @param {*} [options] Override http request option.
62472
+ * @throws {RequiredError}
62473
+ * @memberof ReportApiInterface
62474
+ */
62475
+ getBoughtTogether(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, itemKey?: string, limit?: number, options?: AxiosRequestConfig): AxiosPromise<SalesReportBoughtTogetherResponseDto>;
62476
+
62477
+ /**
62478
+ * The same report, rendered by the same generator, as the PDF the report e-mail (POST /api/v6/report/email) attaches, answered as the file itself instead of e-mailed. The period is the e-mail\'s: timeSpan DAY (the venue\'s business day), WEEK, MONTH, YEAR, or CUSTOM between start and end. A till\'s ticket gets it narrowed to the person on the till, as the e-mail is. Answers application/pdf with Content-Disposition attachment and the file\'s name.
62479
+ * @summary End-of-day sales report of a venue as a PDF file to download, for a day, week, month, year or custom period
62480
+ * @param {number} businessId The venue the file is of, by business id
62481
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62482
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62483
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62484
+ * @param {string} [timezone] The IANA time zone the period\&#39;s days are counted in. Absent: the venue\&#39;s own
62485
+ * @param {ProviderEnum} [provider] The order source the report counts. Absent: MunchiPos, as the till\&#39;s report
62486
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
62487
+ * @param {*} [options] Override http request option.
62488
+ * @throws {RequiredError}
62489
+ * @memberof ReportApiInterface
62490
+ */
62491
+ getEndOfDayReportFile(businessId: number, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, provider?: ProviderEnum, language?: ReportLanguage, options?: AxiosRequestConfig): AxiosPromise<File>;
62492
+
59291
62493
  /**
59292
62494
  *
59293
62495
  * @summary Get end-of-day financial report (V5)
@@ -59317,12 +62519,86 @@ export interface ReportApiInterface {
59317
62519
  * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
59318
62520
  * @param {string} [compareStart] With compareEnd, compares the report with these whole days: each group then also answers comparison, the same group over them, and the change of every total worked out exactly. The first business day compared, YYYY-MM-DD, in the report\&#39;s time zone; not later than today. Neither sent: no comparison, and the answer is as before. Sent without compareEnd: refused
59319
62521
  * @param {string} [compareEnd] With compareStart: the last business day compared, YYYY-MM-DD, inclusive; a day later than today is read up to now. Sent without compareStart: refused
62522
+ * @param {boolean} [compareSameTime] With compareStart and compareEnd, true compares up to the same time: while the report\&#39;s last day is still running, both last days, the report\&#39;s and the compared one, are added up only to the last full hour the data has reached, on each venue\&#39;s own clock (today until 14:00 against that day until 14:00), so neither side counts minutes the other does not; earlier days stay whole. Each group whose compared day was cut answers comparison.comparedUntil. Only totals are cut (salesReport\&#39;s and paymentReport.summary\&#39;s totals, totalDiscounts, orderCount, averageOrderValue, the changes and the day\&#39;s dailyBreakdown); the lists (categories, items, VAT rates, payment methods, discounts) of the compared last day stay whole, since the hours hold totals only, not lines per item, payment method, VAT rate or discount. A day without hours yet is compared whole. Absent or false: the comparison is as before
59320
62523
  * @param {string} [baseline] One group of the answer every other group is compared with: venue:&lt;id&gt; with breakdown venue, app:&lt;app&gt; with breakdown app, venue:&lt;id&gt;,app:&lt;app&gt; with breakdown venue_app. Every other group then answers changesFromBaseline (current: the group; previous: the baseline), of the main period only; a group in another currency than the baseline\&#39;s answers changesFromBaselineLeftOut instead. Refused when the breakdown does not split on what it names, or it names a venue or app not asked
59321
62524
  * @param {*} [options] Override http request option.
59322
62525
  * @throws {RequiredError}
59323
62526
  * @memberof ReportApiInterface
59324
62527
  */
59325
- getSalesReport(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, parts?: Array<ReportPart>, breakdown?: ReportBreakdown, language?: string, compareStart?: string, compareEnd?: string, baseline?: string, options?: AxiosRequestConfig): AxiosPromise<SalesReportResponseDto>;
62528
+ getSalesReport(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, parts?: Array<ReportPart>, breakdown?: ReportBreakdown, language?: string, compareStart?: string, compareEnd?: string, compareSameTime?: boolean, baseline?: string, options?: AxiosRequestConfig): AxiosPromise<SalesReportResponseDto>;
62529
+
62530
+ /**
62531
+ * The venue\'s sales report over the channels it has enabled (its active providers: MunchiPos is POS; MunchiKiosk, MunchiKioskV2 and Kiosk are the kiosk; Storefront is the storefront and the mobile app), added together: the same report GET /api/v6/report/sales answers for those apps with breakdown none, so its totals are that route\'s. The PDF prints a summary (channels, orders, average order value, gross sales, refunds), the sales breakdown (categories, items, VAT) and the payments breakdown (payment methods, vouchers, tips, discounts). With format xlsx the same report is an Excel workbook of plain numbers in the venue\'s currency, with the PDF\'s totals: sheets Summary, Items (every item and every option on its own row), Categories, VAT by rate, Payments, Vouchers & extras and Discounts. The period is whole business days, as that route reads them: timeSpan DAY, WEEK, MONTH or YEAR, or CUSTOM between start and end. Answers application/pdf (format pdf, the default) or application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (format xlsx) with Content-Disposition attachment, named sales-report-<businessId>-<first day>-<last day>.pdf or .xlsx.
62532
+ * @summary Sales report of a venue, every channel it has enabled (POS, kiosk, storefront and mobile app), as a PDF or Excel (xlsx) file to download
62533
+ * @param {number} businessId The venue the file is of, by business id
62534
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62535
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62536
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62537
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the venue\&#39;s own (Business.timeZone)
62538
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
62539
+ * @param {FileFormat} [format] The file\&#39;s format: pdf, or xlsx for an Excel workbook of the same report with every item and option on its own row. Absent: pdf
62540
+ * @param {*} [options] Override http request option.
62541
+ * @throws {RequiredError}
62542
+ * @memberof ReportApiInterface
62543
+ */
62544
+ getSalesReportFile(businessId: number, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, language?: ReportLanguage, format?: FileFormat, options?: AxiosRequestConfig): AxiosPromise<File>;
62545
+
62546
+ /**
62547
+ * The period GET /api/v6/report/sales would add up, for the same venues, apps, time zone and breakdown, with the same access, per hour of each venue\'s own clock (hourly_summary): each hour\'s orders and totalWithTax, added up by the report\'s own rules, and their average over the period\'s calendar days, of isoWeekday only when it is sent. Busy hours: a month, its averageOrderCount. A normal Tuesday beside today: the last 8 weeks with isoWeekday 2, against today\'s own hours. A day sold on before hours were kept answers in no hour and is counted in daysWithoutHours.
62548
+ * @summary Sales of the venues and apps per hour of the day, with each hour\'s average day
62549
+ * @param {Array<number>} businessIds The venues asked about, by business id
62550
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62551
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62552
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62553
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
62554
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
62555
+ * @param {ReportBreakdown} [breakdown] How the venues and apps are split into groups; every currency always splits, and one app asked is never added into several apps. Absent: venue for several venues, none for one
62556
+ * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
62557
+ * @param {number} [isoWeekday] Only the business days of this ISO weekday count, 1 Monday to 7 Sunday, in the report\&#39;s time zone; the average then is over those days. Absent: every day of the period. A normal Tuesday: the last 8 weeks before today with isoWeekday 2
62558
+ * @param {*} [options] Override http request option.
62559
+ * @throws {RequiredError}
62560
+ * @memberof ReportApiInterface
62561
+ */
62562
+ getSalesReportHours(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, isoWeekday?: number, options?: AxiosRequestConfig): AxiosPromise<SalesReportHoursResponseDto>;
62563
+
62564
+ /**
62565
+ * The period GET /api/v6/report/sales would add up, for the same venues, apps, time zone and breakdown, with the same access, per order type (daily_order_types): each type\'s orders and sales, added up by the report\'s own rules. The till and the kiosk write dine_in or pick_up, the online store\'s Vendure dine_in, pickup or delivery; anything else, and an online order counted from its Postgres copy, is unknown, never guessed. A day sold on before order types were kept answers in no type and is counted in daysWithoutOrderTypes.
62566
+ * @summary Sales of the venues and apps per order type: eat in, takeaway, delivery
62567
+ * @param {Array<number>} businessIds The venues asked about, by business id
62568
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62569
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62570
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62571
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
62572
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
62573
+ * @param {ReportBreakdown} [breakdown] How the venues and apps are split into groups; every currency always splits, and one app asked is never added into several apps. Absent: venue for several venues, none for one
62574
+ * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
62575
+ * @param {*} [options] Override http request option.
62576
+ * @throws {RequiredError}
62577
+ * @memberof ReportApiInterface
62578
+ */
62579
+ getSalesReportOrderTypes(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, options?: AxiosRequestConfig): AxiosPromise<SalesReportOrderTypesResponseDto>;
62580
+
62581
+ /**
62582
+ * The report GET /api/v6/report/sales answers for the same query, with the same access, short enough to read whole: the same totals, orderCount, averageOrderValue, days, VAT, payments, discounts, comparison, changes and changesFromBaseline, every amount rounded to the currency\'s minor digits; with part items, each category\'s totals (with and without VAT) without its items, and topItemsBySales and topItemsByQuantity, the 10 best-selling items with an item of the same name in several categories added up once. For every item with its VAT, its net and its options, read GET /api/v6/report/sales.
62583
+ * @summary Sales report of the venues and apps, short: totals, categories and best-selling items
62584
+ * @param {Array<number>} businessIds The venues asked about, by business id
62585
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62586
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62587
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62588
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
62589
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
62590
+ * @param {Array<ReportPart>} [parts] The parts to answer, the parameter repeated or a JSON list; only their daily tables are read. Absent: all five
62591
+ * @param {ReportBreakdown} [breakdown] How the venues and apps are split into groups; every currency always splits, and one app asked is never added into several apps. Absent: venue for several venues, none for one
62592
+ * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
62593
+ * @param {string} [compareStart] With compareEnd, compares the report with these whole days: each group then also answers comparison, the same group over them, and the change of every total worked out exactly. The first business day compared, YYYY-MM-DD, in the report\&#39;s time zone; not later than today. Neither sent: no comparison, and the answer is as before. Sent without compareEnd: refused
62594
+ * @param {string} [compareEnd] With compareStart: the last business day compared, YYYY-MM-DD, inclusive; a day later than today is read up to now. Sent without compareStart: refused
62595
+ * @param {boolean} [compareSameTime] With compareStart and compareEnd, true compares up to the same time: while the report\&#39;s last day is still running, both last days, the report\&#39;s and the compared one, are added up only to the last full hour the data has reached, on each venue\&#39;s own clock (today until 14:00 against that day until 14:00), so neither side counts minutes the other does not; earlier days stay whole. Each group whose compared day was cut answers comparison.comparedUntil. Only totals are cut (salesReport\&#39;s and paymentReport.summary\&#39;s totals, totalDiscounts, orderCount, averageOrderValue, the changes and the day\&#39;s dailyBreakdown); the lists (categories, items, VAT rates, payment methods, discounts) of the compared last day stay whole, since the hours hold totals only, not lines per item, payment method, VAT rate or discount. A day without hours yet is compared whole. Absent or false: the comparison is as before
62596
+ * @param {string} [baseline] One group of the answer every other group is compared with: venue:&lt;id&gt; with breakdown venue, app:&lt;app&gt; with breakdown app, venue:&lt;id&gt;,app:&lt;app&gt; with breakdown venue_app. Every other group then answers changesFromBaseline (current: the group; previous: the baseline), of the main period only; a group in another currency than the baseline\&#39;s answers changesFromBaselineLeftOut instead. Refused when the breakdown does not split on what it names, or it names a venue or app not asked
62597
+ * @param {*} [options] Override http request option.
62598
+ * @throws {RequiredError}
62599
+ * @memberof ReportApiInterface
62600
+ */
62601
+ getShortSalesReport(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, parts?: Array<ReportPart>, breakdown?: ReportBreakdown, language?: string, compareStart?: string, compareEnd?: string, compareSameTime?: boolean, baseline?: string, options?: AxiosRequestConfig): AxiosPromise<SalesReportShortResponseDto>;
59326
62602
 
59327
62603
  /**
59328
62604
  *
@@ -59349,6 +62625,45 @@ export interface ReportApiInterface {
59349
62625
  * @extends {BaseAPI}
59350
62626
  */
59351
62627
  export class ReportApi extends BaseAPI implements ReportApiInterface {
62628
+ /**
62629
+ * The period GET /api/v6/report/sales would add up, for the same venues, apps, time zone and breakdown, with the same access: each group\'s pairs of base items (an item\'s own line, never an option) sold in the most orders, each order once, with every order of each item, so percentOfItemA is exact: of the orders with A, how many also had B. Each venue-day keeps its top 25 pairs (daily_item_pairs); a group whose daysWithPairsCut is not 0 answers each pair\'s orders as a lower bound. itemKey answers the pairs of one item only.
62630
+ * @summary Items bought together in one order, over the period
62631
+ * @param {Array<number>} businessIds The venues asked about, by business id
62632
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62633
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62634
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62635
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
62636
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
62637
+ * @param {ReportBreakdown} [breakdown] How the venues and apps are split into groups; every currency always splits, and one app asked is never added into several apps. Absent: venue for several venues, none for one
62638
+ * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
62639
+ * @param {string} [itemKey] Only the pairs with this item, by its key (an item\&#39;s itemKey of an earlier answer: the POS posId, the online product id). Absent: every pair
62640
+ * @param {number} [limit] How many pairs each group answers, most orders first: 1 to 100. Absent: 20
62641
+ * @param {*} [options] Override http request option.
62642
+ * @throws {RequiredError}
62643
+ * @memberof ReportApi
62644
+ */
62645
+ public getBoughtTogether(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, itemKey?: string, limit?: number, options?: AxiosRequestConfig) {
62646
+ return ReportApiFp(this.configuration).getBoughtTogether(businessIds, timeSpan, start, end, timezone, apps, breakdown, language, itemKey, limit, options).then((request) => request(this.axios, this.basePath));
62647
+ }
62648
+
62649
+ /**
62650
+ * The same report, rendered by the same generator, as the PDF the report e-mail (POST /api/v6/report/email) attaches, answered as the file itself instead of e-mailed. The period is the e-mail\'s: timeSpan DAY (the venue\'s business day), WEEK, MONTH, YEAR, or CUSTOM between start and end. A till\'s ticket gets it narrowed to the person on the till, as the e-mail is. Answers application/pdf with Content-Disposition attachment and the file\'s name.
62651
+ * @summary End-of-day sales report of a venue as a PDF file to download, for a day, week, month, year or custom period
62652
+ * @param {number} businessId The venue the file is of, by business id
62653
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62654
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62655
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62656
+ * @param {string} [timezone] The IANA time zone the period\&#39;s days are counted in. Absent: the venue\&#39;s own
62657
+ * @param {ProviderEnum} [provider] The order source the report counts. Absent: MunchiPos, as the till\&#39;s report
62658
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
62659
+ * @param {*} [options] Override http request option.
62660
+ * @throws {RequiredError}
62661
+ * @memberof ReportApi
62662
+ */
62663
+ public getEndOfDayReportFile(businessId: number, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, provider?: ProviderEnum, language?: ReportLanguage, options?: AxiosRequestConfig) {
62664
+ return ReportApiFp(this.configuration).getEndOfDayReportFile(businessId, timeSpan, start, end, timezone, provider, language, options).then((request) => request(this.axios, this.basePath));
62665
+ }
62666
+
59352
62667
  /**
59353
62668
  *
59354
62669
  * @summary Get end-of-day financial report (V5)
@@ -59380,13 +62695,95 @@ export class ReportApi extends BaseAPI implements ReportApiInterface {
59380
62695
  * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
59381
62696
  * @param {string} [compareStart] With compareEnd, compares the report with these whole days: each group then also answers comparison, the same group over them, and the change of every total worked out exactly. The first business day compared, YYYY-MM-DD, in the report\&#39;s time zone; not later than today. Neither sent: no comparison, and the answer is as before. Sent without compareEnd: refused
59382
62697
  * @param {string} [compareEnd] With compareStart: the last business day compared, YYYY-MM-DD, inclusive; a day later than today is read up to now. Sent without compareStart: refused
62698
+ * @param {boolean} [compareSameTime] With compareStart and compareEnd, true compares up to the same time: while the report\&#39;s last day is still running, both last days, the report\&#39;s and the compared one, are added up only to the last full hour the data has reached, on each venue\&#39;s own clock (today until 14:00 against that day until 14:00), so neither side counts minutes the other does not; earlier days stay whole. Each group whose compared day was cut answers comparison.comparedUntil. Only totals are cut (salesReport\&#39;s and paymentReport.summary\&#39;s totals, totalDiscounts, orderCount, averageOrderValue, the changes and the day\&#39;s dailyBreakdown); the lists (categories, items, VAT rates, payment methods, discounts) of the compared last day stay whole, since the hours hold totals only, not lines per item, payment method, VAT rate or discount. A day without hours yet is compared whole. Absent or false: the comparison is as before
62699
+ * @param {string} [baseline] One group of the answer every other group is compared with: venue:&lt;id&gt; with breakdown venue, app:&lt;app&gt; with breakdown app, venue:&lt;id&gt;,app:&lt;app&gt; with breakdown venue_app. Every other group then answers changesFromBaseline (current: the group; previous: the baseline), of the main period only; a group in another currency than the baseline\&#39;s answers changesFromBaselineLeftOut instead. Refused when the breakdown does not split on what it names, or it names a venue or app not asked
62700
+ * @param {*} [options] Override http request option.
62701
+ * @throws {RequiredError}
62702
+ * @memberof ReportApi
62703
+ */
62704
+ public getSalesReport(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, parts?: Array<ReportPart>, breakdown?: ReportBreakdown, language?: string, compareStart?: string, compareEnd?: string, compareSameTime?: boolean, baseline?: string, options?: AxiosRequestConfig) {
62705
+ return ReportApiFp(this.configuration).getSalesReport(businessIds, timeSpan, start, end, timezone, apps, parts, breakdown, language, compareStart, compareEnd, compareSameTime, baseline, options).then((request) => request(this.axios, this.basePath));
62706
+ }
62707
+
62708
+ /**
62709
+ * The venue\'s sales report over the channels it has enabled (its active providers: MunchiPos is POS; MunchiKiosk, MunchiKioskV2 and Kiosk are the kiosk; Storefront is the storefront and the mobile app), added together: the same report GET /api/v6/report/sales answers for those apps with breakdown none, so its totals are that route\'s. The PDF prints a summary (channels, orders, average order value, gross sales, refunds), the sales breakdown (categories, items, VAT) and the payments breakdown (payment methods, vouchers, tips, discounts). With format xlsx the same report is an Excel workbook of plain numbers in the venue\'s currency, with the PDF\'s totals: sheets Summary, Items (every item and every option on its own row), Categories, VAT by rate, Payments, Vouchers & extras and Discounts. The period is whole business days, as that route reads them: timeSpan DAY, WEEK, MONTH or YEAR, or CUSTOM between start and end. Answers application/pdf (format pdf, the default) or application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (format xlsx) with Content-Disposition attachment, named sales-report-<businessId>-<first day>-<last day>.pdf or .xlsx.
62710
+ * @summary Sales report of a venue, every channel it has enabled (POS, kiosk, storefront and mobile app), as a PDF or Excel (xlsx) file to download
62711
+ * @param {number} businessId The venue the file is of, by business id
62712
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62713
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62714
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62715
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the venue\&#39;s own (Business.timeZone)
62716
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
62717
+ * @param {FileFormat} [format] The file\&#39;s format: pdf, or xlsx for an Excel workbook of the same report with every item and option on its own row. Absent: pdf
62718
+ * @param {*} [options] Override http request option.
62719
+ * @throws {RequiredError}
62720
+ * @memberof ReportApi
62721
+ */
62722
+ public getSalesReportFile(businessId: number, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, language?: ReportLanguage, format?: FileFormat, options?: AxiosRequestConfig) {
62723
+ return ReportApiFp(this.configuration).getSalesReportFile(businessId, timeSpan, start, end, timezone, language, format, options).then((request) => request(this.axios, this.basePath));
62724
+ }
62725
+
62726
+ /**
62727
+ * The period GET /api/v6/report/sales would add up, for the same venues, apps, time zone and breakdown, with the same access, per hour of each venue\'s own clock (hourly_summary): each hour\'s orders and totalWithTax, added up by the report\'s own rules, and their average over the period\'s calendar days, of isoWeekday only when it is sent. Busy hours: a month, its averageOrderCount. A normal Tuesday beside today: the last 8 weeks with isoWeekday 2, against today\'s own hours. A day sold on before hours were kept answers in no hour and is counted in daysWithoutHours.
62728
+ * @summary Sales of the venues and apps per hour of the day, with each hour\'s average day
62729
+ * @param {Array<number>} businessIds The venues asked about, by business id
62730
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62731
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62732
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62733
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
62734
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
62735
+ * @param {ReportBreakdown} [breakdown] How the venues and apps are split into groups; every currency always splits, and one app asked is never added into several apps. Absent: venue for several venues, none for one
62736
+ * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
62737
+ * @param {number} [isoWeekday] Only the business days of this ISO weekday count, 1 Monday to 7 Sunday, in the report\&#39;s time zone; the average then is over those days. Absent: every day of the period. A normal Tuesday: the last 8 weeks before today with isoWeekday 2
62738
+ * @param {*} [options] Override http request option.
62739
+ * @throws {RequiredError}
62740
+ * @memberof ReportApi
62741
+ */
62742
+ public getSalesReportHours(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, isoWeekday?: number, options?: AxiosRequestConfig) {
62743
+ return ReportApiFp(this.configuration).getSalesReportHours(businessIds, timeSpan, start, end, timezone, apps, breakdown, language, isoWeekday, options).then((request) => request(this.axios, this.basePath));
62744
+ }
62745
+
62746
+ /**
62747
+ * The period GET /api/v6/report/sales would add up, for the same venues, apps, time zone and breakdown, with the same access, per order type (daily_order_types): each type\'s orders and sales, added up by the report\'s own rules. The till and the kiosk write dine_in or pick_up, the online store\'s Vendure dine_in, pickup or delivery; anything else, and an online order counted from its Postgres copy, is unknown, never guessed. A day sold on before order types were kept answers in no type and is counted in daysWithoutOrderTypes.
62748
+ * @summary Sales of the venues and apps per order type: eat in, takeaway, delivery
62749
+ * @param {Array<number>} businessIds The venues asked about, by business id
62750
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62751
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62752
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62753
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
62754
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
62755
+ * @param {ReportBreakdown} [breakdown] How the venues and apps are split into groups; every currency always splits, and one app asked is never added into several apps. Absent: venue for several venues, none for one
62756
+ * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
62757
+ * @param {*} [options] Override http request option.
62758
+ * @throws {RequiredError}
62759
+ * @memberof ReportApi
62760
+ */
62761
+ public getSalesReportOrderTypes(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, options?: AxiosRequestConfig) {
62762
+ return ReportApiFp(this.configuration).getSalesReportOrderTypes(businessIds, timeSpan, start, end, timezone, apps, breakdown, language, options).then((request) => request(this.axios, this.basePath));
62763
+ }
62764
+
62765
+ /**
62766
+ * The report GET /api/v6/report/sales answers for the same query, with the same access, short enough to read whole: the same totals, orderCount, averageOrderValue, days, VAT, payments, discounts, comparison, changes and changesFromBaseline, every amount rounded to the currency\'s minor digits; with part items, each category\'s totals (with and without VAT) without its items, and topItemsBySales and topItemsByQuantity, the 10 best-selling items with an item of the same name in several categories added up once. For every item with its VAT, its net and its options, read GET /api/v6/report/sales.
62767
+ * @summary Sales report of the venues and apps, short: totals, categories and best-selling items
62768
+ * @param {Array<number>} businessIds The venues asked about, by business id
62769
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
62770
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62771
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
62772
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
62773
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
62774
+ * @param {Array<ReportPart>} [parts] The parts to answer, the parameter repeated or a JSON list; only their daily tables are read. Absent: all five
62775
+ * @param {ReportBreakdown} [breakdown] How the venues and apps are split into groups; every currency always splits, and one app asked is never added into several apps. Absent: venue for several venues, none for one
62776
+ * @param {string} [language] Accepted and not read, so a request copied from the portal\&#39;s report works: the report has no text to translate
62777
+ * @param {string} [compareStart] With compareEnd, compares the report with these whole days: each group then also answers comparison, the same group over them, and the change of every total worked out exactly. The first business day compared, YYYY-MM-DD, in the report\&#39;s time zone; not later than today. Neither sent: no comparison, and the answer is as before. Sent without compareEnd: refused
62778
+ * @param {string} [compareEnd] With compareStart: the last business day compared, YYYY-MM-DD, inclusive; a day later than today is read up to now. Sent without compareStart: refused
62779
+ * @param {boolean} [compareSameTime] With compareStart and compareEnd, true compares up to the same time: while the report\&#39;s last day is still running, both last days, the report\&#39;s and the compared one, are added up only to the last full hour the data has reached, on each venue\&#39;s own clock (today until 14:00 against that day until 14:00), so neither side counts minutes the other does not; earlier days stay whole. Each group whose compared day was cut answers comparison.comparedUntil. Only totals are cut (salesReport\&#39;s and paymentReport.summary\&#39;s totals, totalDiscounts, orderCount, averageOrderValue, the changes and the day\&#39;s dailyBreakdown); the lists (categories, items, VAT rates, payment methods, discounts) of the compared last day stay whole, since the hours hold totals only, not lines per item, payment method, VAT rate or discount. A day without hours yet is compared whole. Absent or false: the comparison is as before
59383
62780
  * @param {string} [baseline] One group of the answer every other group is compared with: venue:&lt;id&gt; with breakdown venue, app:&lt;app&gt; with breakdown app, venue:&lt;id&gt;,app:&lt;app&gt; with breakdown venue_app. Every other group then answers changesFromBaseline (current: the group; previous: the baseline), of the main period only; a group in another currency than the baseline\&#39;s answers changesFromBaselineLeftOut instead. Refused when the breakdown does not split on what it names, or it names a venue or app not asked
59384
62781
  * @param {*} [options] Override http request option.
59385
62782
  * @throws {RequiredError}
59386
62783
  * @memberof ReportApi
59387
62784
  */
59388
- public getSalesReport(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, parts?: Array<ReportPart>, breakdown?: ReportBreakdown, language?: string, compareStart?: string, compareEnd?: string, baseline?: string, options?: AxiosRequestConfig) {
59389
- return ReportApiFp(this.configuration).getSalesReport(businessIds, timeSpan, start, end, timezone, apps, parts, breakdown, language, compareStart, compareEnd, baseline, options).then((request) => request(this.axios, this.basePath));
62785
+ public getShortSalesReport(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, parts?: Array<ReportPart>, breakdown?: ReportBreakdown, language?: string, compareStart?: string, compareEnd?: string, compareSameTime?: boolean, baseline?: string, options?: AxiosRequestConfig) {
62786
+ return ReportApiFp(this.configuration).getShortSalesReport(businessIds, timeSpan, start, end, timezone, apps, parts, breakdown, language, compareStart, compareEnd, compareSameTime, baseline, options).then((request) => request(this.axios, this.basePath));
59390
62787
  }
59391
62788
 
59392
62789
  /**