@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.
@@ -421,6 +421,138 @@ export interface AmountDto {
421
421
  */
422
422
  'currency': string;
423
423
  }
424
+ /**
425
+ *
426
+ * @export
427
+ * @interface AnalyticsDashboardCardDto
428
+ */
429
+ export interface AnalyticsDashboardCardDto {
430
+ /**
431
+ * Which card this is, in dashboard-one\'s own words. The server keeps it as sent and never checks it against a list.
432
+ * @type {string}
433
+ * @memberof AnalyticsDashboardCardDto
434
+ */
435
+ 'id': string;
436
+ }
437
+ /**
438
+ *
439
+ * @export
440
+ * @interface AnalyticsDashboardGoalsDto
441
+ */
442
+ export interface AnalyticsDashboardGoalsDto {
443
+ /**
444
+ * The day\'s sales goal, a whole number in the minor unit of the store\'s currency (cents for EUR). Absent: no day goal.
445
+ * @type {number}
446
+ * @memberof AnalyticsDashboardGoalsDto
447
+ */
448
+ 'daySales'?: number;
449
+ /**
450
+ * The month\'s sales goal, a whole number in the minor unit of the store\'s currency (cents for EUR). Absent: no month goal.
451
+ * @type {number}
452
+ * @memberof AnalyticsDashboardGoalsDto
453
+ */
454
+ 'monthSales'?: number;
455
+ }
456
+ /**
457
+ *
458
+ * @export
459
+ * @interface AnalyticsDashboardResponseDto
460
+ */
461
+ export interface AnalyticsDashboardResponseDto {
462
+ /**
463
+ * The cards in the order they are shown, first card first
464
+ * @type {Array<AnalyticsDashboardCardDto>}
465
+ * @memberof AnalyticsDashboardResponseDto
466
+ */
467
+ 'cards': Array<AnalyticsDashboardCardDto>;
468
+ /**
469
+ *
470
+ * @type {AnalyticsDashboardResponseDtoGoals}
471
+ * @memberof AnalyticsDashboardResponseDto
472
+ */
473
+ 'goals': AnalyticsDashboardResponseDtoGoals;
474
+ /**
475
+ * When the dashboard was last saved, ISO 8601 in UTC
476
+ * @type {string}
477
+ * @memberof AnalyticsDashboardResponseDto
478
+ */
479
+ 'updatedAt': string;
480
+ /**
481
+ * The dashboard\'s version: 1 when first saved, one more on each save. Send it back as expectedVersion to save.
482
+ * @type {number}
483
+ * @memberof AnalyticsDashboardResponseDto
484
+ */
485
+ 'version': number;
486
+ /**
487
+ * The Clerk user id of the person who last saved it
488
+ * @type {string}
489
+ * @memberof AnalyticsDashboardResponseDto
490
+ */
491
+ 'updatedBy': string;
492
+ }
493
+ /**
494
+ * The sales goals, in the minor unit of the store\'s currency; a goal not set is absent
495
+ * @export
496
+ * @interface AnalyticsDashboardResponseDtoGoals
497
+ */
498
+ export interface AnalyticsDashboardResponseDtoGoals {
499
+ /**
500
+ * The day\'s sales goal, a whole number in the minor unit of the store\'s currency (cents for EUR). Absent: no day goal.
501
+ * @type {number}
502
+ * @memberof AnalyticsDashboardResponseDtoGoals
503
+ */
504
+ 'daySales'?: number;
505
+ /**
506
+ * The month\'s sales goal, a whole number in the minor unit of the store\'s currency (cents for EUR). Absent: no month goal.
507
+ * @type {number}
508
+ * @memberof AnalyticsDashboardResponseDtoGoals
509
+ */
510
+ 'monthSales'?: number;
511
+ }
512
+ /**
513
+ *
514
+ * @export
515
+ * @interface AutomaticPromotionDto
516
+ */
517
+ export interface AutomaticPromotionDto {
518
+ /**
519
+ * The Vendure promotion\'s id
520
+ * @type {number}
521
+ * @memberof AutomaticPromotionDto
522
+ */
523
+ 'id': number;
524
+ /**
525
+ * The promotion\'s name
526
+ * @type {string}
527
+ * @memberof AutomaticPromotionDto
528
+ */
529
+ 'name': string;
530
+ /**
531
+ * When the promotion starts, an ISO date-time; null when it has no start
532
+ * @type {string}
533
+ * @memberof AutomaticPromotionDto
534
+ */
535
+ 'startsAt': string | null;
536
+ /**
537
+ * When the promotion ends, an ISO date-time; null when it has no end
538
+ * @type {string}
539
+ * @memberof AutomaticPromotionDto
540
+ */
541
+ 'endsAt': string | null;
542
+ }
543
+ /**
544
+ *
545
+ * @export
546
+ * @interface AutomaticPromotionsAnswerDto
547
+ */
548
+ export interface AutomaticPromotionsAnswerDto {
549
+ /**
550
+ * 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
551
+ * @type {Array<AutomaticPromotionDto>}
552
+ * @memberof AutomaticPromotionsAnswerDto
553
+ */
554
+ 'automaticPromotions': Array<AutomaticPromotionDto>;
555
+ }
424
556
  /**
425
557
  *
426
558
  * @export
@@ -462,6 +594,15 @@ export interface AvailablePaymentMethodDto {
462
594
  */
463
595
  'requiresCredentials': boolean;
464
596
  }
597
+ /**
598
+ *
599
+ * @export
600
+ * @enum {string}
601
+ */
602
+ export declare const BasketNotPricedReason: {
603
+ readonly Unavailable: "UNAVAILABLE";
604
+ };
605
+ export type BasketNotPricedReason = typeof BasketNotPricedReason[keyof typeof BasketNotPricedReason];
465
606
  /**
466
607
  *
467
608
  * @export
@@ -6053,7 +6194,7 @@ export interface DiscountDto {
6053
6194
  */
6054
6195
  'updatedAt': string;
6055
6196
  /**
6056
- * The discount\'s id in data-bridge
6197
+ * 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
6057
6198
  * @type {number}
6058
6199
  * @memberof DiscountDto
6059
6200
  */
@@ -6083,13 +6224,13 @@ export interface DiscountDto {
6083
6224
  */
6084
6225
  'type'?: PromotionDiscountType;
6085
6226
  /**
6086
- * The discount\'s description; absent when it has none
6227
+ * The discount\'s description; an empty string when it has none
6087
6228
  * @type {string}
6088
6229
  * @memberof DiscountDto
6089
6230
  */
6090
6231
  'description'?: string;
6091
6232
  /**
6092
- * Whether the discount is available, as data-bridge stores it
6233
+ * Whether the discount is switched on; always true, since a switched-off one is not answered
6093
6234
  * @type {boolean}
6094
6235
  * @memberof DiscountDto
6095
6236
  */
@@ -6113,7 +6254,7 @@ export interface DiscountDto {
6113
6254
  */
6114
6255
  'maxUsesPerOrder'?: number | null;
6115
6256
  /**
6116
- * Which discount wins when several apply: the higher priority wins
6257
+ * The Vendure promotion\'s buttonOrder, which a button copied from data-bridge took from the discount\'s priority; 1 when it has none
6117
6258
  * @type {number}
6118
6259
  * @memberof DiscountDto
6119
6260
  */
@@ -7690,6 +7831,16 @@ export interface FeesDto {
7690
7831
  */
7691
7832
  'parts': Array<FeePartDto>;
7692
7833
  }
7834
+ /**
7835
+ *
7836
+ * @export
7837
+ * @enum {string}
7838
+ */
7839
+ export declare const FileFormat: {
7840
+ readonly Pdf: "pdf";
7841
+ readonly Xlsx: "xlsx";
7842
+ };
7843
+ export type FileFormat = typeof FileFormat[keyof typeof FileFormat];
7693
7844
  /**
7694
7845
  *
7695
7846
  * @export
@@ -8266,6 +8417,15 @@ export interface InboundReservationWebhookDto {
8266
8417
  */
8267
8418
  'payload': object;
8268
8419
  }
8420
+ /**
8421
+ *
8422
+ * @export
8423
+ * @enum {string}
8424
+ */
8425
+ export declare const IngredientSectionHeadingCode: {
8426
+ readonly IngredientsDefaultHeading: "INGREDIENTS_DEFAULT_HEADING";
8427
+ };
8428
+ export type IngredientSectionHeadingCode = typeof IngredientSectionHeadingCode[keyof typeof IngredientSectionHeadingCode];
8269
8429
  /**
8270
8430
  *
8271
8431
  * @export
@@ -9640,6 +9800,12 @@ export interface KdsOrderItemDto {
9640
9800
  * @memberof KdsOrderItemDto
9641
9801
  */
9642
9802
  'options': Array<KdsOrderOptionDto>;
9803
+ /**
9804
+ * 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.
9805
+ * @type {Array<OrderIngredientDto>}
9806
+ * @memberof KdsOrderItemDto
9807
+ */
9808
+ 'ingredients'?: Array<OrderIngredientDto>;
9643
9809
  }
9644
9810
  /**
9645
9811
  *
@@ -14131,6 +14297,31 @@ export interface OrderHistoryResponseDtoSummary {
14131
14297
  */
14132
14298
  'totalTipAmount'?: number;
14133
14299
  }
14300
+ /**
14301
+ *
14302
+ * @export
14303
+ * @interface OrderIngredientDto
14304
+ */
14305
+ export interface OrderIngredientDto {
14306
+ /**
14307
+ * Id of the inventory item behind the ingredient, in Vendure
14308
+ * @type {number}
14309
+ * @memberof OrderIngredientDto
14310
+ */
14311
+ 'itemId': number;
14312
+ /**
14313
+ * The ingredient\'s name as the guest saw it
14314
+ * @type {string}
14315
+ * @memberof OrderIngredientDto
14316
+ */
14317
+ 'name': string;
14318
+ /**
14319
+ * true when the guest removed the ingredient from the product
14320
+ * @type {boolean}
14321
+ * @memberof OrderIngredientDto
14322
+ */
14323
+ 'removed': boolean;
14324
+ }
14134
14325
  /**
14135
14326
  *
14136
14327
  * @export
@@ -19118,6 +19309,56 @@ export interface PosMenuExtraDto {
19118
19309
  */
19119
19310
  'options': Array<PosMenuOptionDto>;
19120
19311
  }
19312
+ /**
19313
+ *
19314
+ * @export
19315
+ * @interface PosMenuIngredientDto
19316
+ */
19317
+ export interface PosMenuIngredientDto {
19318
+ /**
19319
+ * The ingredient\'s inventory item id
19320
+ * @type {number}
19321
+ * @memberof PosMenuIngredientDto
19322
+ */
19323
+ 'id': number;
19324
+ /**
19325
+ * The name customers see: the venue\'s customer name, else the ingredient\'s own name. Never translated
19326
+ * @type {string}
19327
+ * @memberof PosMenuIngredientDto
19328
+ */
19329
+ 'name': string;
19330
+ /**
19331
+ * Its place in the section, from 1. The list is already in this order
19332
+ * @type {number}
19333
+ * @memberof PosMenuIngredientDto
19334
+ */
19335
+ 'rank': number;
19336
+ }
19337
+ /**
19338
+ *
19339
+ * @export
19340
+ * @interface PosMenuIngredientSectionDto
19341
+ */
19342
+ export interface PosMenuIngredientSectionDto {
19343
+ /**
19344
+ *
19345
+ * @type {IngredientSectionHeadingCode}
19346
+ * @memberof PosMenuIngredientSectionDto
19347
+ */
19348
+ 'heading_code'?: IngredientSectionHeadingCode;
19349
+ /**
19350
+ * The venue\'s own heading, or null when the app shows its own translation of heading_code
19351
+ * @type {string}
19352
+ * @memberof PosMenuIngredientSectionDto
19353
+ */
19354
+ 'heading': string | null;
19355
+ /**
19356
+ * The ingredients the customer may remove, all ticked to start with. Never empty; hidden ones are not sent
19357
+ * @type {Array<PosMenuIngredientDto>}
19358
+ * @memberof PosMenuIngredientSectionDto
19359
+ */
19360
+ 'ingredients': Array<PosMenuIngredientDto>;
19361
+ }
19121
19362
  /**
19122
19363
  *
19123
19364
  * @export
@@ -19342,6 +19583,37 @@ export interface PosMenuProductDto {
19342
19583
  * @memberof PosMenuProductDto
19343
19584
  */
19344
19585
  'extras': Array<PosMenuExtraDto>;
19586
+ /**
19587
+ *
19588
+ * @type {PosMenuProductDtoIngredientSection}
19589
+ * @memberof PosMenuProductDto
19590
+ */
19591
+ 'ingredient_section'?: PosMenuProductDtoIngredientSection;
19592
+ }
19593
+ /**
19594
+ * 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
19595
+ * @export
19596
+ * @interface PosMenuProductDtoIngredientSection
19597
+ */
19598
+ export interface PosMenuProductDtoIngredientSection {
19599
+ /**
19600
+ *
19601
+ * @type {IngredientSectionHeadingCode}
19602
+ * @memberof PosMenuProductDtoIngredientSection
19603
+ */
19604
+ 'heading_code'?: IngredientSectionHeadingCode;
19605
+ /**
19606
+ * The venue\'s own heading, or null when the app shows its own translation of heading_code
19607
+ * @type {string}
19608
+ * @memberof PosMenuProductDtoIngredientSection
19609
+ */
19610
+ 'heading': string | null;
19611
+ /**
19612
+ * The ingredients the customer may remove, all ticked to start with. Never empty; hidden ones are not sent
19613
+ * @type {Array<PosMenuIngredientDto>}
19614
+ * @memberof PosMenuProductDtoIngredientSection
19615
+ */
19616
+ 'ingredients': Array<PosMenuIngredientDto>;
19345
19617
  }
19346
19618
  /**
19347
19619
  * The reporting category the product\'s sales are counted under, or null when it has none
@@ -20305,6 +20577,12 @@ export interface PosOrderItemDto {
20305
20577
  * @memberof PosOrderItemDto
20306
20578
  */
20307
20579
  'options': Array<PosOrderOptionDto>;
20580
+ /**
20581
+ * 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.
20582
+ * @type {Array<OrderIngredientDto>}
20583
+ * @memberof PosOrderItemDto
20584
+ */
20585
+ 'ingredients'?: Array<OrderIngredientDto>;
20308
20586
  /**
20309
20587
  * Whether the product has a display label
20310
20588
  * @type {boolean}
@@ -21198,6 +21476,68 @@ export declare const PreorderStatus: {
21198
21476
  readonly Confirm: "confirm";
21199
21477
  };
21200
21478
  export type PreorderStatus = typeof PreorderStatus[keyof typeof PreorderStatus];
21479
+ /**
21480
+ *
21481
+ * @export
21482
+ * @interface PriceBasketAnswerDto
21483
+ */
21484
+ export interface PriceBasketAnswerDto {
21485
+ /**
21486
+ * true when Vendure priced the basket; false when it could not, and nothing is known of its discounts
21487
+ * @type {boolean}
21488
+ * @memberof PriceBasketAnswerDto
21489
+ */
21490
+ 'priced': boolean;
21491
+ /**
21492
+ *
21493
+ * @type {BasketNotPricedReason}
21494
+ * @memberof PriceBasketAnswerDto
21495
+ */
21496
+ 'reason': BasketNotPricedReason | null;
21497
+ /**
21498
+ * Every line sent, in the order sent, with its discounts; empty when priced is false
21499
+ * @type {Array<PricedLineDto>}
21500
+ * @memberof PriceBasketAnswerDto
21501
+ */
21502
+ 'lines': Array<PricedLineDto>;
21503
+ /**
21504
+ * 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
21505
+ * @type {Array<PricedDiscountDto>}
21506
+ * @memberof PriceBasketAnswerDto
21507
+ */
21508
+ 'orderDiscounts': Array<PricedDiscountDto>;
21509
+ /**
21510
+ * The basket\'s total in cents, VAT included, after the discounts, as Vendure worked it out; null when priced is false
21511
+ * @type {number}
21512
+ * @memberof PriceBasketAnswerDto
21513
+ */
21514
+ 'subTotalWithTax': number | null;
21515
+ }
21516
+ /**
21517
+ *
21518
+ * @export
21519
+ * @interface PriceBasketDto
21520
+ */
21521
+ export interface PriceBasketDto {
21522
+ /**
21523
+ *
21524
+ * @type {OrderTypePOS}
21525
+ * @memberof PriceBasketDto
21526
+ */
21527
+ 'orderType': OrderTypePOS;
21528
+ /**
21529
+ * 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
21530
+ * @type {Array<string>}
21531
+ * @memberof PriceBasketDto
21532
+ */
21533
+ 'couponCodes'?: Array<string>;
21534
+ /**
21535
+ * The order\'s lines as they stand, VAT included; priced again whenever the basket changes
21536
+ * @type {Array<PricingBasketLineDto>}
21537
+ * @memberof PriceBasketDto
21538
+ */
21539
+ 'lines': Array<PricingBasketLineDto>;
21540
+ }
21201
21541
  /**
21202
21542
  *
21203
21543
  * @export
@@ -21258,6 +21598,117 @@ export declare const PriceType: {
21258
21598
  readonly Open: "OPEN";
21259
21599
  };
21260
21600
  export type PriceType = typeof PriceType[keyof typeof PriceType];
21601
+ /**
21602
+ *
21603
+ * @export
21604
+ * @interface PricedDiscountDto
21605
+ */
21606
+ export interface PricedDiscountDto {
21607
+ /**
21608
+ *
21609
+ * @type {DiscountSourceType}
21610
+ * @memberof PricedDiscountDto
21611
+ */
21612
+ 'sourceType': DiscountSourceType;
21613
+ /**
21614
+ * The Vendure promotion\'s id, as text
21615
+ * @type {string}
21616
+ * @memberof PricedDiscountDto
21617
+ */
21618
+ 'sourceId': string;
21619
+ /**
21620
+ * The promotion\'s name, in English, else Finnish; shown on the till, the receipt and the reports
21621
+ * @type {string}
21622
+ * @memberof PricedDiscountDto
21623
+ */
21624
+ 'name': string;
21625
+ /**
21626
+ * true when Vendure applies the promotion by itself, with no code; false when one of the basket\'s coupon codes applies it
21627
+ * @type {boolean}
21628
+ * @memberof PricedDiscountDto
21629
+ */
21630
+ 'isAutomatic': boolean;
21631
+ /**
21632
+ * The coupon code as the promotion holds it; null for an automatic promotion
21633
+ * @type {string}
21634
+ * @memberof PricedDiscountDto
21635
+ */
21636
+ 'couponCode': string | null;
21637
+ /**
21638
+ *
21639
+ * @type {DiscountScope}
21640
+ * @memberof PricedDiscountDto
21641
+ */
21642
+ 'scope': DiscountScope;
21643
+ /**
21644
+ * The discount in cents, VAT included, negative, exactly as Vendure worked it out: the cents the till takes off
21645
+ * @type {number}
21646
+ * @memberof PricedDiscountDto
21647
+ */
21648
+ 'amountWithTax': number;
21649
+ /**
21650
+ * The same discount in cents before VAT, negative
21651
+ * @type {number}
21652
+ * @memberof PricedDiscountDto
21653
+ */
21654
+ 'amount': number;
21655
+ }
21656
+ /**
21657
+ *
21658
+ * @export
21659
+ * @interface PricedLineDto
21660
+ */
21661
+ export interface PricedLineDto {
21662
+ /**
21663
+ * The line\'s id, as sent
21664
+ * @type {string}
21665
+ * @memberof PricedLineDto
21666
+ */
21667
+ 'lineItemId': string;
21668
+ /**
21669
+ * The discounts on this line, each order discount\'s share included; empty when none reaches it
21670
+ * @type {Array<PricedDiscountDto>}
21671
+ * @memberof PricedLineDto
21672
+ */
21673
+ 'discounts': Array<PricedDiscountDto>;
21674
+ }
21675
+ /**
21676
+ *
21677
+ * @export
21678
+ * @interface PricingBasketLineDto
21679
+ */
21680
+ export interface PricingBasketLineDto {
21681
+ /**
21682
+ * The line\'s stable id, the one the order\'s discounts point at
21683
+ * @type {string}
21684
+ * @memberof PricingBasketLineDto
21685
+ */
21686
+ 'lineItemId': string;
21687
+ /**
21688
+ * How many of the product the line holds, a whole number
21689
+ * @type {number}
21690
+ * @memberof PricingBasketLineDto
21691
+ */
21692
+ 'quantity': number;
21693
+ /**
21694
+ * The price of one unit as the till charges it, options included, in cents
21695
+ * @type {number}
21696
+ * @memberof PricingBasketLineDto
21697
+ */
21698
+ 'unitAmount': number;
21699
+ /**
21700
+ * 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
21701
+ * @type {number}
21702
+ * @memberof PricingBasketLineDto
21703
+ */
21704
+ 'vatRate'?: number;
21705
+ /**
21706
+ * The product\'s Vendure id: the line\'s posId, as a number
21707
+ * @type {number}
21708
+ * @memberof PricingBasketLineDto
21709
+ */
21710
+ 'productId'?: number;
21711
+ }
21261
21712
  /**
21262
21713
  *
21263
21714
  * @export
@@ -21777,6 +22228,12 @@ export interface ProductDto {
21777
22228
  * @memberof ProductDto
21778
22229
  */
21779
22230
  'customField': object | null;
22231
+ /**
22232
+ * 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.
22233
+ * @type {Array<OrderIngredientDto>}
22234
+ * @memberof ProductDto
22235
+ */
22236
+ 'ingredients'?: Array<OrderIngredientDto>;
21780
22237
  /**
21781
22238
  * Kitchen status of the product
21782
22239
  * @type {string}
@@ -23881,6 +24338,8 @@ export declare const ReportChangeField: {
23881
24338
  readonly PaymentReportSummaryTotalRefunds: "paymentReport.summary.totalRefunds";
23882
24339
  readonly PaymentReportSummaryRefundCount: "paymentReport.summary.refundCount";
23883
24340
  readonly PaymentReportTotalDiscounts: "paymentReport.totalDiscounts";
24341
+ readonly OrderCount: "orderCount";
24342
+ readonly AverageOrderValue: "averageOrderValue";
23884
24343
  };
23885
24344
  export type ReportChangeField = typeof ReportChangeField[keyof typeof ReportChangeField];
23886
24345
  /**
@@ -23893,6 +24352,18 @@ export declare const ReportLanguage: {
23893
24352
  readonly En: "en";
23894
24353
  };
23895
24354
  export type ReportLanguage = typeof ReportLanguage[keyof typeof ReportLanguage];
24355
+ /**
24356
+ *
24357
+ * @export
24358
+ * @enum {string}
24359
+ */
24360
+ export declare const ReportOrderType: {
24361
+ readonly EatIn: "eat_in";
24362
+ readonly Takeaway: "takeaway";
24363
+ readonly Delivery: "delivery";
24364
+ readonly Unknown: "unknown";
24365
+ };
24366
+ export type ReportOrderType = typeof ReportOrderType[keyof typeof ReportOrderType];
23896
24367
  /**
23897
24368
  *
23898
24369
  * @export
@@ -24661,6 +25132,92 @@ export declare const SYNCKEY: {
24661
25132
  readonly ReceiptFooter: "RECEIPT_FOOTER";
24662
25133
  };
24663
25134
  export type SYNCKEY = typeof SYNCKEY[keyof typeof SYNCKEY];
25135
+ /**
25136
+ *
25137
+ * @export
25138
+ * @interface SalesReportBoughtTogetherGroupDto
25139
+ */
25140
+ export interface SalesReportBoughtTogetherGroupDto {
25141
+ /**
25142
+ * The venue\'s orderingBusinessId, or null when the breakdown adds venues together
25143
+ * @type {number}
25144
+ * @memberof SalesReportBoughtTogetherGroupDto
25145
+ */
25146
+ 'businessId': number | null;
25147
+ /**
25148
+ *
25149
+ * @type {ReportApp}
25150
+ * @memberof SalesReportBoughtTogetherGroupDto
25151
+ */
25152
+ 'app': ReportApp | null;
25153
+ /**
25154
+ *
25155
+ * @type {CurrencyCode}
25156
+ * @memberof SalesReportBoughtTogetherGroupDto
25157
+ */
25158
+ 'currency': CurrencyCode;
25159
+ /**
25160
+ * 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
25161
+ * @type {number}
25162
+ * @memberof SalesReportBoughtTogetherGroupDto
25163
+ */
25164
+ 'daysWithPairsCut': number;
25165
+ /**
25166
+ * The pairs bought in the most orders, most first, ties by the items\' keys
25167
+ * @type {Array<SalesReportPairDto>}
25168
+ * @memberof SalesReportBoughtTogetherGroupDto
25169
+ */
25170
+ 'pairs': Array<SalesReportPairDto>;
25171
+ }
25172
+ /**
25173
+ *
25174
+ * @export
25175
+ * @interface SalesReportBoughtTogetherResponseDto
25176
+ */
25177
+ export interface SalesReportBoughtTogetherResponseDto {
25178
+ /**
25179
+ * The first instant of the period, ISO 8601 in UTC
25180
+ * @type {string}
25181
+ * @memberof SalesReportBoughtTogetherResponseDto
25182
+ */
25183
+ 'reportDateStart': string;
25184
+ /**
25185
+ * The last instant of the period, ISO 8601 in UTC; now, when the period ends later
25186
+ * @type {string}
25187
+ * @memberof SalesReportBoughtTogetherResponseDto
25188
+ */
25189
+ 'reportDateEnd': string;
25190
+ /**
25191
+ * The IANA time zone the period\'s days are read in
25192
+ * @type {string}
25193
+ * @memberof SalesReportBoughtTogetherResponseDto
25194
+ */
25195
+ 'timezone': string;
25196
+ /**
25197
+ * The first business day, YYYY-MM-DD
25198
+ * @type {string}
25199
+ * @memberof SalesReportBoughtTogetherResponseDto
25200
+ */
25201
+ 'firstBusinessDay': string;
25202
+ /**
25203
+ * The last business day, YYYY-MM-DD, inclusive
25204
+ * @type {string}
25205
+ * @memberof SalesReportBoughtTogetherResponseDto
25206
+ */
25207
+ 'lastBusinessDay': string;
25208
+ /**
25209
+ * The newest BigQuery rebuild the rows read, ISO 8601 in UTC; null when none
25210
+ * @type {string}
25211
+ * @memberof SalesReportBoughtTogetherResponseDto
25212
+ */
25213
+ 'dataUntil': string | null;
25214
+ /**
25215
+ * One group per venue, app and currency the breakdown keeps
25216
+ * @type {Array<SalesReportBoughtTogetherGroupDto>}
25217
+ * @memberof SalesReportBoughtTogetherResponseDto
25218
+ */
25219
+ 'groups': Array<SalesReportBoughtTogetherGroupDto>;
25220
+ }
24664
25221
  /**
24665
25222
  *
24666
25223
  * @export
@@ -24771,6 +25328,12 @@ export interface SalesReportComparisonDto {
24771
25328
  * @memberof SalesReportComparisonDto
24772
25329
  */
24773
25330
  'lastBusinessDay': string;
25331
+ /**
25332
+ * 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
25333
+ * @type {string}
25334
+ * @memberof SalesReportComparisonDto
25335
+ */
25336
+ 'comparedUntil'?: string;
24774
25337
  /**
24775
25338
  *
24776
25339
  * @type {SalesReportComparisonDtoSalesReport}
@@ -24789,6 +25352,18 @@ export interface SalesReportComparisonDto {
24789
25352
  * @memberof SalesReportComparisonDto
24790
25353
  */
24791
25354
  'dailyBreakdown'?: Array<SalesReportDayDto>;
25355
+ /**
25356
+ * 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
25357
+ * @type {number}
25358
+ * @memberof SalesReportComparisonDto
25359
+ */
25360
+ 'orderCount'?: number;
25361
+ /**
25362
+ * 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
25363
+ * @type {number}
25364
+ * @memberof SalesReportComparisonDto
25365
+ */
25366
+ 'averageOrderValue'?: number | null;
24792
25367
  /**
24793
25368
  * The change of each total either period answers, in ReportChangeField\'s order; empty when part summary was not asked
24794
25369
  * @type {Array<SalesReportChangeDto>}
@@ -24895,7 +25470,7 @@ export interface SalesReportDayDto {
24895
25470
  */
24896
25471
  'date': string;
24897
25472
  /**
24898
- * How many orders were sold that day
25473
+ * 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
24899
25474
  * @type {number}
24900
25475
  * @memberof SalesReportDayDto
24901
25476
  */
@@ -25010,6 +25585,18 @@ export interface SalesReportGroupDto {
25010
25585
  * @memberof SalesReportGroupDto
25011
25586
  */
25012
25587
  'dailyBreakdown'?: Array<SalesReportDayDto>;
25588
+ /**
25589
+ * 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
25590
+ * @type {number}
25591
+ * @memberof SalesReportGroupDto
25592
+ */
25593
+ 'orderCount'?: number;
25594
+ /**
25595
+ * 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
25596
+ * @type {number}
25597
+ * @memberof SalesReportGroupDto
25598
+ */
25599
+ 'averageOrderValue'?: number | null;
25013
25600
  /**
25014
25601
  *
25015
25602
  * @type {SalesReportGroupDtoComparison}
@@ -25059,6 +25646,12 @@ export interface SalesReportGroupDtoComparison {
25059
25646
  * @memberof SalesReportGroupDtoComparison
25060
25647
  */
25061
25648
  'lastBusinessDay': string;
25649
+ /**
25650
+ * 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
25651
+ * @type {string}
25652
+ * @memberof SalesReportGroupDtoComparison
25653
+ */
25654
+ 'comparedUntil'?: string;
25062
25655
  /**
25063
25656
  *
25064
25657
  * @type {SalesReportComparisonDtoSalesReport}
@@ -25077,6 +25670,18 @@ export interface SalesReportGroupDtoComparison {
25077
25670
  * @memberof SalesReportGroupDtoComparison
25078
25671
  */
25079
25672
  'dailyBreakdown'?: Array<SalesReportDayDto>;
25673
+ /**
25674
+ * 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
25675
+ * @type {number}
25676
+ * @memberof SalesReportGroupDtoComparison
25677
+ */
25678
+ 'orderCount'?: number;
25679
+ /**
25680
+ * 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
25681
+ * @type {number}
25682
+ * @memberof SalesReportGroupDtoComparison
25683
+ */
25684
+ 'averageOrderValue'?: number | null;
25080
25685
  /**
25081
25686
  * The change of each total either period answers, in ReportChangeField\'s order; empty when part summary was not asked
25082
25687
  * @type {Array<SalesReportChangeDto>}
@@ -25170,6 +25775,165 @@ export interface SalesReportGroupDtoSalesReport {
25170
25775
  */
25171
25776
  'deliveryTax'?: number;
25172
25777
  }
25778
+ /**
25779
+ *
25780
+ * @export
25781
+ * @interface SalesReportHourDto
25782
+ */
25783
+ export interface SalesReportHourDto {
25784
+ /**
25785
+ * 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
25786
+ * @type {number}
25787
+ * @memberof SalesReportHourDto
25788
+ */
25789
+ 'hour': number;
25790
+ /**
25791
+ * The period\'s orders counted in this hour, as orderCount counts them
25792
+ * @type {number}
25793
+ * @memberof SalesReportHourDto
25794
+ */
25795
+ 'orderCount': number;
25796
+ /**
25797
+ * 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
25798
+ * @type {number}
25799
+ * @memberof SalesReportHourDto
25800
+ */
25801
+ 'totalWithTax': number;
25802
+ /**
25803
+ * The hour\'s orders on an average finished day: orderCount less today\'s, divided by the group\'s daysAveraged, 2 decimals, rounded half up
25804
+ * @type {number}
25805
+ * @memberof SalesReportHourDto
25806
+ */
25807
+ 'averageOrderCount': number;
25808
+ /**
25809
+ * 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
25810
+ * @type {number}
25811
+ * @memberof SalesReportHourDto
25812
+ */
25813
+ 'averageTotalWithTax': number;
25814
+ /**
25815
+ * 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
25816
+ * @type {number}
25817
+ * @memberof SalesReportHourDto
25818
+ */
25819
+ 'totalWithoutTax': number;
25820
+ /**
25821
+ * 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
25822
+ * @type {number}
25823
+ * @memberof SalesReportHourDto
25824
+ */
25825
+ 'averageTotalWithoutTax': number;
25826
+ }
25827
+ /**
25828
+ *
25829
+ * @export
25830
+ * @interface SalesReportHoursGroupDto
25831
+ */
25832
+ export interface SalesReportHoursGroupDto {
25833
+ /**
25834
+ * The venue\'s orderingBusinessId, or null when the breakdown adds venues together
25835
+ * @type {number}
25836
+ * @memberof SalesReportHoursGroupDto
25837
+ */
25838
+ 'businessId': number | null;
25839
+ /**
25840
+ *
25841
+ * @type {ReportApp}
25842
+ * @memberof SalesReportHoursGroupDto
25843
+ */
25844
+ 'app': ReportApp | null;
25845
+ /**
25846
+ *
25847
+ * @type {CurrencyCode}
25848
+ * @memberof SalesReportHoursGroupDto
25849
+ */
25850
+ 'currency': CurrencyCode;
25851
+ /**
25852
+ * Decimals of the currency\'s minor unit (2 for EUR)
25853
+ * @type {number}
25854
+ * @memberof SalesReportHoursGroupDto
25855
+ */
25856
+ 'minorDigits': number;
25857
+ /**
25858
+ * 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
25859
+ * @type {number}
25860
+ * @memberof SalesReportHoursGroupDto
25861
+ */
25862
+ 'daysWithoutHours': number;
25863
+ /**
25864
+ * What the group\'s averages divide by: daysCounted less daysWithoutHours
25865
+ * @type {number}
25866
+ * @memberof SalesReportHoursGroupDto
25867
+ */
25868
+ 'daysAveraged': number;
25869
+ /**
25870
+ * Every hour of the day, 0 to 23, in order
25871
+ * @type {Array<SalesReportHourDto>}
25872
+ * @memberof SalesReportHoursGroupDto
25873
+ */
25874
+ 'hours': Array<SalesReportHourDto>;
25875
+ }
25876
+ /**
25877
+ *
25878
+ * @export
25879
+ * @interface SalesReportHoursResponseDto
25880
+ */
25881
+ export interface SalesReportHoursResponseDto {
25882
+ /**
25883
+ * The first instant of the period, ISO 8601 in UTC
25884
+ * @type {string}
25885
+ * @memberof SalesReportHoursResponseDto
25886
+ */
25887
+ 'reportDateStart': string;
25888
+ /**
25889
+ * The last instant of the period, ISO 8601 in UTC; now, when the period ends later
25890
+ * @type {string}
25891
+ * @memberof SalesReportHoursResponseDto
25892
+ */
25893
+ 'reportDateEnd': string;
25894
+ /**
25895
+ * The IANA time zone the period\'s days are read in
25896
+ * @type {string}
25897
+ * @memberof SalesReportHoursResponseDto
25898
+ */
25899
+ 'timezone': string;
25900
+ /**
25901
+ * The first business day, YYYY-MM-DD
25902
+ * @type {string}
25903
+ * @memberof SalesReportHoursResponseDto
25904
+ */
25905
+ 'firstBusinessDay': string;
25906
+ /**
25907
+ * The last business day, YYYY-MM-DD, inclusive
25908
+ * @type {string}
25909
+ * @memberof SalesReportHoursResponseDto
25910
+ */
25911
+ 'lastBusinessDay': string;
25912
+ /**
25913
+ * The ISO weekday counted, 1 Monday to 7 Sunday, or null for every day
25914
+ * @type {number}
25915
+ * @memberof SalesReportHoursResponseDto
25916
+ */
25917
+ 'isoWeekday': number | null;
25918
+ /**
25919
+ * 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
25920
+ * @type {number}
25921
+ * @memberof SalesReportHoursResponseDto
25922
+ */
25923
+ 'daysCounted': number;
25924
+ /**
25925
+ * The newest BigQuery rebuild the rows read, ISO 8601 in UTC; null when none
25926
+ * @type {string}
25927
+ * @memberof SalesReportHoursResponseDto
25928
+ */
25929
+ 'dataUntil': string | null;
25930
+ /**
25931
+ * One group per venue, app and currency the breakdown keeps
25932
+ * @type {Array<SalesReportHoursGroupDto>}
25933
+ * @memberof SalesReportHoursResponseDto
25934
+ */
25935
+ 'groups': Array<SalesReportHoursGroupDto>;
25936
+ }
25173
25937
  /**
25174
25938
  *
25175
25939
  * @export
@@ -25268,6 +26032,247 @@ export interface SalesReportOptionDto {
25268
26032
  */
25269
26033
  'taxRate': object | null;
25270
26034
  }
26035
+ /**
26036
+ *
26037
+ * @export
26038
+ * @interface SalesReportOrderTypeDto
26039
+ */
26040
+ export interface SalesReportOrderTypeDto {
26041
+ /**
26042
+ *
26043
+ * @type {ReportOrderType}
26044
+ * @memberof SalesReportOrderTypeDto
26045
+ */
26046
+ 'orderType': ReportOrderType;
26047
+ /**
26048
+ * The period\'s orders of this type, as orderCount counts them
26049
+ * @type {number}
26050
+ * @memberof SalesReportOrderTypeDto
26051
+ */
26052
+ 'orderCount': number;
26053
+ /**
26054
+ * 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
26055
+ * @type {number}
26056
+ * @memberof SalesReportOrderTypeDto
26057
+ */
26058
+ 'totalWithTax': number;
26059
+ /**
26060
+ * Their VAT, as salesReport.totalTaxAmount, in the major unit
26061
+ * @type {number}
26062
+ * @memberof SalesReportOrderTypeDto
26063
+ */
26064
+ 'totalTaxAmount': number;
26065
+ /**
26066
+ * Their sales without VAT, as salesReport.totalWithoutTax, in the major unit
26067
+ * @type {number}
26068
+ * @memberof SalesReportOrderTypeDto
26069
+ */
26070
+ 'totalWithoutTax': number;
26071
+ }
26072
+ /**
26073
+ *
26074
+ * @export
26075
+ * @interface SalesReportOrderTypesGroupDto
26076
+ */
26077
+ export interface SalesReportOrderTypesGroupDto {
26078
+ /**
26079
+ * The venue\'s orderingBusinessId, or null when the breakdown adds venues together
26080
+ * @type {number}
26081
+ * @memberof SalesReportOrderTypesGroupDto
26082
+ */
26083
+ 'businessId': number | null;
26084
+ /**
26085
+ *
26086
+ * @type {ReportApp}
26087
+ * @memberof SalesReportOrderTypesGroupDto
26088
+ */
26089
+ 'app': ReportApp | null;
26090
+ /**
26091
+ *
26092
+ * @type {CurrencyCode}
26093
+ * @memberof SalesReportOrderTypesGroupDto
26094
+ */
26095
+ 'currency': CurrencyCode;
26096
+ /**
26097
+ * Decimals of the currency\'s minor unit (2 for EUR)
26098
+ * @type {number}
26099
+ * @memberof SalesReportOrderTypesGroupDto
26100
+ */
26101
+ 'minorDigits': number;
26102
+ /**
26103
+ * 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
26104
+ * @type {number}
26105
+ * @memberof SalesReportOrderTypesGroupDto
26106
+ */
26107
+ 'daysWithoutOrderTypes': number;
26108
+ /**
26109
+ * Every order type, in the order eat_in, takeaway, delivery, unknown; a type nobody ordered answers zeros
26110
+ * @type {Array<SalesReportOrderTypeDto>}
26111
+ * @memberof SalesReportOrderTypesGroupDto
26112
+ */
26113
+ 'orderTypes': Array<SalesReportOrderTypeDto>;
26114
+ }
26115
+ /**
26116
+ *
26117
+ * @export
26118
+ * @interface SalesReportOrderTypesResponseDto
26119
+ */
26120
+ export interface SalesReportOrderTypesResponseDto {
26121
+ /**
26122
+ * The first instant of the period, ISO 8601 in UTC
26123
+ * @type {string}
26124
+ * @memberof SalesReportOrderTypesResponseDto
26125
+ */
26126
+ 'reportDateStart': string;
26127
+ /**
26128
+ * The last instant of the period, ISO 8601 in UTC; now, when the period ends later
26129
+ * @type {string}
26130
+ * @memberof SalesReportOrderTypesResponseDto
26131
+ */
26132
+ 'reportDateEnd': string;
26133
+ /**
26134
+ * The IANA time zone the period\'s days are read in
26135
+ * @type {string}
26136
+ * @memberof SalesReportOrderTypesResponseDto
26137
+ */
26138
+ 'timezone': string;
26139
+ /**
26140
+ * The first business day, YYYY-MM-DD
26141
+ * @type {string}
26142
+ * @memberof SalesReportOrderTypesResponseDto
26143
+ */
26144
+ 'firstBusinessDay': string;
26145
+ /**
26146
+ * The last business day, YYYY-MM-DD, inclusive
26147
+ * @type {string}
26148
+ * @memberof SalesReportOrderTypesResponseDto
26149
+ */
26150
+ 'lastBusinessDay': string;
26151
+ /**
26152
+ * The newest BigQuery rebuild the rows read, ISO 8601 in UTC; null when none
26153
+ * @type {string}
26154
+ * @memberof SalesReportOrderTypesResponseDto
26155
+ */
26156
+ 'dataUntil': string | null;
26157
+ /**
26158
+ * One group per venue, app and currency the breakdown keeps
26159
+ * @type {Array<SalesReportOrderTypesGroupDto>}
26160
+ * @memberof SalesReportOrderTypesResponseDto
26161
+ */
26162
+ 'groups': Array<SalesReportOrderTypesGroupDto>;
26163
+ }
26164
+ /**
26165
+ *
26166
+ * @export
26167
+ * @interface SalesReportPairDto
26168
+ */
26169
+ export interface SalesReportPairDto {
26170
+ /**
26171
+ *
26172
+ * @type {SalesReportPairDtoItemA}
26173
+ * @memberof SalesReportPairDto
26174
+ */
26175
+ 'itemA': SalesReportPairDtoItemA;
26176
+ /**
26177
+ *
26178
+ * @type {SalesReportPairDtoItemB}
26179
+ * @memberof SalesReportPairDto
26180
+ */
26181
+ 'itemB': SalesReportPairDtoItemB;
26182
+ /**
26183
+ * 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
26184
+ * @type {number}
26185
+ * @memberof SalesReportPairDto
26186
+ */
26187
+ 'orders': number;
26188
+ /**
26189
+ * Of the orders with itemA, the percent that also had itemB: orders / itemA.orders × 100, 2 decimals, half up
26190
+ * @type {number}
26191
+ * @memberof SalesReportPairDto
26192
+ */
26193
+ 'percentOfItemA': number;
26194
+ /**
26195
+ * Of the orders with itemB, the percent that also had itemA: orders / itemB.orders × 100, 2 decimals, half up
26196
+ * @type {number}
26197
+ * @memberof SalesReportPairDto
26198
+ */
26199
+ 'percentOfItemB': number;
26200
+ }
26201
+ /**
26202
+ * One item of the pair: the one whose key sorts first
26203
+ * @export
26204
+ * @interface SalesReportPairDtoItemA
26205
+ */
26206
+ export interface SalesReportPairDtoItemA {
26207
+ /**
26208
+ * The item\'s key: the POS posId, the online product id
26209
+ * @type {string}
26210
+ * @memberof SalesReportPairDtoItemA
26211
+ */
26212
+ 'itemKey': string;
26213
+ /**
26214
+ * The item\'s least name over the period, as the sales report names it; null when none was recorded
26215
+ * @type {string}
26216
+ * @memberof SalesReportPairDtoItemA
26217
+ */
26218
+ 'name': string | null;
26219
+ /**
26220
+ * The period\'s orders with the item (as its own line, never as an option)
26221
+ * @type {number}
26222
+ * @memberof SalesReportPairDtoItemA
26223
+ */
26224
+ 'orders': number;
26225
+ }
26226
+ /**
26227
+ * The other item of the pair
26228
+ * @export
26229
+ * @interface SalesReportPairDtoItemB
26230
+ */
26231
+ export interface SalesReportPairDtoItemB {
26232
+ /**
26233
+ * The item\'s key: the POS posId, the online product id
26234
+ * @type {string}
26235
+ * @memberof SalesReportPairDtoItemB
26236
+ */
26237
+ 'itemKey': string;
26238
+ /**
26239
+ * The item\'s least name over the period, as the sales report names it; null when none was recorded
26240
+ * @type {string}
26241
+ * @memberof SalesReportPairDtoItemB
26242
+ */
26243
+ 'name': string | null;
26244
+ /**
26245
+ * The period\'s orders with the item (as its own line, never as an option)
26246
+ * @type {number}
26247
+ * @memberof SalesReportPairDtoItemB
26248
+ */
26249
+ 'orders': number;
26250
+ }
26251
+ /**
26252
+ *
26253
+ * @export
26254
+ * @interface SalesReportPairItemDto
26255
+ */
26256
+ export interface SalesReportPairItemDto {
26257
+ /**
26258
+ * The item\'s key: the POS posId, the online product id
26259
+ * @type {string}
26260
+ * @memberof SalesReportPairItemDto
26261
+ */
26262
+ 'itemKey': string;
26263
+ /**
26264
+ * The item\'s least name over the period, as the sales report names it; null when none was recorded
26265
+ * @type {string}
26266
+ * @memberof SalesReportPairItemDto
26267
+ */
26268
+ 'name': string | null;
26269
+ /**
26270
+ * The period\'s orders with the item (as its own line, never as an option)
26271
+ * @type {number}
26272
+ * @memberof SalesReportPairItemDto
26273
+ */
26274
+ 'orders': number;
26275
+ }
25271
26276
  /**
25272
26277
  *
25273
26278
  * @export
@@ -25584,6 +26589,12 @@ export interface SalesReportResponseDto {
25584
26589
  * @memberof SalesReportResponseDto
25585
26590
  */
25586
26591
  'reports': Array<SalesReportGroupDto>;
26592
+ /**
26593
+ * 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
26594
+ * @type {Array<SalesReportGroupDto>}
26595
+ * @memberof SalesReportResponseDto
26596
+ */
26597
+ 'totals'?: Array<SalesReportGroupDto>;
25587
26598
  }
25588
26599
  /**
25589
26600
  *
@@ -25640,6 +26651,561 @@ export interface SalesReportSalesDto {
25640
26651
  */
25641
26652
  'deliveryTax'?: number;
25642
26653
  }
26654
+ /**
26655
+ *
26656
+ * @export
26657
+ * @interface SalesReportShortCategoryDto
26658
+ */
26659
+ export interface SalesReportShortCategoryDto {
26660
+ /**
26661
+ * The category\'s name
26662
+ * @type {string}
26663
+ * @memberof SalesReportShortCategoryDto
26664
+ */
26665
+ 'categoryName': string;
26666
+ /**
26667
+ * How many of its items were sold
26668
+ * @type {number}
26669
+ * @memberof SalesReportShortCategoryDto
26670
+ */
26671
+ 'totalQuantity': number;
26672
+ /**
26673
+ * Sales with VAT, in the major unit of the group\'s currency (euros for EUR)
26674
+ * @type {number}
26675
+ * @memberof SalesReportShortCategoryDto
26676
+ */
26677
+ 'totalWithTax': number;
26678
+ /**
26679
+ * The VAT, in the major unit of the group\'s currency (euros for EUR)
26680
+ * @type {number}
26681
+ * @memberof SalesReportShortCategoryDto
26682
+ */
26683
+ 'taxAmount': number;
26684
+ /**
26685
+ * Sales without VAT, in the major unit of the group\'s currency (euros for EUR)
26686
+ * @type {number}
26687
+ * @memberof SalesReportShortCategoryDto
26688
+ */
26689
+ 'totalWithoutTax': number;
26690
+ }
26691
+ /**
26692
+ *
26693
+ * @export
26694
+ * @interface SalesReportShortComparisonDto
26695
+ */
26696
+ export interface SalesReportShortComparisonDto {
26697
+ /**
26698
+ * The first instant of the compared period, ISO 8601 in UTC
26699
+ * @type {string}
26700
+ * @memberof SalesReportShortComparisonDto
26701
+ */
26702
+ 'reportDateStart': string;
26703
+ /**
26704
+ * The last instant of the compared period, ISO 8601 in UTC; now, when the period ends later
26705
+ * @type {string}
26706
+ * @memberof SalesReportShortComparisonDto
26707
+ */
26708
+ 'reportDateEnd': string;
26709
+ /**
26710
+ * The first business day compared, YYYY-MM-DD, in the report\'s time zone
26711
+ * @type {string}
26712
+ * @memberof SalesReportShortComparisonDto
26713
+ */
26714
+ 'firstBusinessDay': string;
26715
+ /**
26716
+ * The last business day compared, YYYY-MM-DD, inclusive
26717
+ * @type {string}
26718
+ * @memberof SalesReportShortComparisonDto
26719
+ */
26720
+ 'lastBusinessDay': string;
26721
+ /**
26722
+ * 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
26723
+ * @type {string}
26724
+ * @memberof SalesReportShortComparisonDto
26725
+ */
26726
+ 'comparedUntil'?: string;
26727
+ /**
26728
+ *
26729
+ * @type {SalesReportComparisonDtoPaymentReport}
26730
+ * @memberof SalesReportShortComparisonDto
26731
+ */
26732
+ 'paymentReport'?: SalesReportComparisonDtoPaymentReport;
26733
+ /**
26734
+ * The compared period\'s days that sold, oldest first, as the group\'s own dailyBreakdown: present when it is
26735
+ * @type {Array<SalesReportDayDto>}
26736
+ * @memberof SalesReportShortComparisonDto
26737
+ */
26738
+ 'dailyBreakdown'?: Array<SalesReportDayDto>;
26739
+ /**
26740
+ * 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
26741
+ * @type {number}
26742
+ * @memberof SalesReportShortComparisonDto
26743
+ */
26744
+ 'orderCount'?: number;
26745
+ /**
26746
+ * 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
26747
+ * @type {number}
26748
+ * @memberof SalesReportShortComparisonDto
26749
+ */
26750
+ 'averageOrderValue'?: number | null;
26751
+ /**
26752
+ * The change of each total either period answers, in ReportChangeField\'s order; empty when part summary was not asked
26753
+ * @type {Array<SalesReportChangeDto>}
26754
+ * @memberof SalesReportShortComparisonDto
26755
+ */
26756
+ 'changes': Array<SalesReportChangeDto>;
26757
+ /**
26758
+ *
26759
+ * @type {SalesReportShortComparisonDtoSalesReport}
26760
+ * @memberof SalesReportShortComparisonDto
26761
+ */
26762
+ 'salesReport'?: SalesReportShortComparisonDtoSalesReport;
26763
+ }
26764
+ /**
26765
+ * The compared period\'s salesReport, short as the group\'s own: present when it is
26766
+ * @export
26767
+ * @interface SalesReportShortComparisonDtoSalesReport
26768
+ */
26769
+ export interface SalesReportShortComparisonDtoSalesReport {
26770
+ /**
26771
+ * Part vat: one row per VAT rate, lowest first
26772
+ * @type {Array<SalesReportVatRateDto>}
26773
+ * @memberof SalesReportShortComparisonDtoSalesReport
26774
+ */
26775
+ 'taxSummary'?: Array<SalesReportVatRateDto>;
26776
+ /**
26777
+ * Part summary: how many items were sold
26778
+ * @type {number}
26779
+ * @memberof SalesReportShortComparisonDtoSalesReport
26780
+ */
26781
+ 'totalQuantity'?: number;
26782
+ /**
26783
+ * Part summary: sales with VAT, in the major unit of the group\'s currency (euros for EUR)
26784
+ * @type {number}
26785
+ * @memberof SalesReportShortComparisonDtoSalesReport
26786
+ */
26787
+ 'totalWithTax'?: number;
26788
+ /**
26789
+ * Part summary: the VAT, in the major unit of the group\'s currency (euros for EUR)
26790
+ * @type {number}
26791
+ * @memberof SalesReportShortComparisonDtoSalesReport
26792
+ */
26793
+ 'totalTaxAmount'?: number;
26794
+ /**
26795
+ * Part summary: sales without VAT, in the major unit of the group\'s currency (euros for EUR)
26796
+ * @type {number}
26797
+ * @memberof SalesReportShortComparisonDtoSalesReport
26798
+ */
26799
+ 'totalWithoutTax'?: number;
26800
+ /**
26801
+ * 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
26802
+ * @type {number}
26803
+ * @memberof SalesReportShortComparisonDtoSalesReport
26804
+ */
26805
+ 'deliveryFee'?: number;
26806
+ /**
26807
+ * Part summary, with deliveryFee: the VAT of the delivery fees, in the major unit of the group\'s currency (euros for EUR)
26808
+ * @type {number}
26809
+ * @memberof SalesReportShortComparisonDtoSalesReport
26810
+ */
26811
+ 'deliveryTax'?: number;
26812
+ /**
26813
+ * Part items: each category\'s totals, without its items
26814
+ * @type {Array<SalesReportShortCategoryDto>}
26815
+ * @memberof SalesReportShortComparisonDtoSalesReport
26816
+ */
26817
+ 'categories'?: Array<SalesReportShortCategoryDto>;
26818
+ /**
26819
+ * 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
26820
+ * @type {Array<SalesReportTopItemDto>}
26821
+ * @memberof SalesReportShortComparisonDtoSalesReport
26822
+ */
26823
+ 'topItemsBySales'?: Array<SalesReportTopItemDto>;
26824
+ /**
26825
+ * Part items: the 10 items sold most often, most first (then the most sales); an item in several categories is added up once
26826
+ * @type {Array<SalesReportTopItemDto>}
26827
+ * @memberof SalesReportShortComparisonDtoSalesReport
26828
+ */
26829
+ 'topItemsByQuantity'?: Array<SalesReportTopItemDto>;
26830
+ }
26831
+ /**
26832
+ *
26833
+ * @export
26834
+ * @interface SalesReportShortGroupDto
26835
+ */
26836
+ export interface SalesReportShortGroupDto {
26837
+ /**
26838
+ * The venue\'s business id; null when the breakdown adds venues together (none, app)
26839
+ * @type {object}
26840
+ * @memberof SalesReportShortGroupDto
26841
+ */
26842
+ 'businessId': object | null;
26843
+ /**
26844
+ *
26845
+ * @type {ReportApp}
26846
+ * @memberof SalesReportShortGroupDto
26847
+ */
26848
+ 'app': ReportApp | null;
26849
+ /**
26850
+ *
26851
+ * @type {CurrencyCode}
26852
+ * @memberof SalesReportShortGroupDto
26853
+ */
26854
+ 'currency': CurrencyCode;
26855
+ /**
26856
+ * The currency\'s ISO 4217 minor digits: EUR 2, ISK 0, BHD 3
26857
+ * @type {number}
26858
+ * @memberof SalesReportShortGroupDto
26859
+ */
26860
+ 'minorDigits': number;
26861
+ /**
26862
+ *
26863
+ * @type {SalesReportGroupDtoPaymentReport}
26864
+ * @memberof SalesReportShortGroupDto
26865
+ */
26866
+ 'paymentReport'?: SalesReportGroupDtoPaymentReport;
26867
+ /**
26868
+ * Part summary: one row per business day that sold, oldest first. POS leaves it out when no day sold
26869
+ * @type {Array<SalesReportDayDto>}
26870
+ * @memberof SalesReportShortGroupDto
26871
+ */
26872
+ 'dailyBreakdown'?: Array<SalesReportDayDto>;
26873
+ /**
26874
+ * 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
26875
+ * @type {number}
26876
+ * @memberof SalesReportShortGroupDto
26877
+ */
26878
+ 'orderCount'?: number;
26879
+ /**
26880
+ * 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
26881
+ * @type {number}
26882
+ * @memberof SalesReportShortGroupDto
26883
+ */
26884
+ 'averageOrderValue'?: number | null;
26885
+ /**
26886
+ * 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
26887
+ * @type {Array<SalesReportChangeDto>}
26888
+ * @memberof SalesReportShortGroupDto
26889
+ */
26890
+ 'changesFromBaseline'?: Array<SalesReportChangeDto>;
26891
+ /**
26892
+ *
26893
+ * @type {ReportBaselineLeftOut}
26894
+ * @memberof SalesReportShortGroupDto
26895
+ */
26896
+ 'changesFromBaselineLeftOut'?: ReportBaselineLeftOut;
26897
+ /**
26898
+ *
26899
+ * @type {SalesReportShortGroupDtoSalesReport}
26900
+ * @memberof SalesReportShortGroupDto
26901
+ */
26902
+ 'salesReport'?: SalesReportShortGroupDtoSalesReport;
26903
+ /**
26904
+ *
26905
+ * @type {SalesReportShortGroupDtoComparison}
26906
+ * @memberof SalesReportShortGroupDto
26907
+ */
26908
+ 'comparison'?: SalesReportShortGroupDtoComparison;
26909
+ }
26910
+ /**
26911
+ * With compareStart and compareEnd: the same group\'s short report of those days and the change of each total
26912
+ * @export
26913
+ * @interface SalesReportShortGroupDtoComparison
26914
+ */
26915
+ export interface SalesReportShortGroupDtoComparison {
26916
+ /**
26917
+ * The first instant of the compared period, ISO 8601 in UTC
26918
+ * @type {string}
26919
+ * @memberof SalesReportShortGroupDtoComparison
26920
+ */
26921
+ 'reportDateStart': string;
26922
+ /**
26923
+ * The last instant of the compared period, ISO 8601 in UTC; now, when the period ends later
26924
+ * @type {string}
26925
+ * @memberof SalesReportShortGroupDtoComparison
26926
+ */
26927
+ 'reportDateEnd': string;
26928
+ /**
26929
+ * The first business day compared, YYYY-MM-DD, in the report\'s time zone
26930
+ * @type {string}
26931
+ * @memberof SalesReportShortGroupDtoComparison
26932
+ */
26933
+ 'firstBusinessDay': string;
26934
+ /**
26935
+ * The last business day compared, YYYY-MM-DD, inclusive
26936
+ * @type {string}
26937
+ * @memberof SalesReportShortGroupDtoComparison
26938
+ */
26939
+ 'lastBusinessDay': string;
26940
+ /**
26941
+ * 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
26942
+ * @type {string}
26943
+ * @memberof SalesReportShortGroupDtoComparison
26944
+ */
26945
+ 'comparedUntil'?: string;
26946
+ /**
26947
+ *
26948
+ * @type {SalesReportComparisonDtoPaymentReport}
26949
+ * @memberof SalesReportShortGroupDtoComparison
26950
+ */
26951
+ 'paymentReport'?: SalesReportComparisonDtoPaymentReport;
26952
+ /**
26953
+ * The compared period\'s days that sold, oldest first, as the group\'s own dailyBreakdown: present when it is
26954
+ * @type {Array<SalesReportDayDto>}
26955
+ * @memberof SalesReportShortGroupDtoComparison
26956
+ */
26957
+ 'dailyBreakdown'?: Array<SalesReportDayDto>;
26958
+ /**
26959
+ * 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
26960
+ * @type {number}
26961
+ * @memberof SalesReportShortGroupDtoComparison
26962
+ */
26963
+ 'orderCount'?: number;
26964
+ /**
26965
+ * 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
26966
+ * @type {number}
26967
+ * @memberof SalesReportShortGroupDtoComparison
26968
+ */
26969
+ 'averageOrderValue'?: number | null;
26970
+ /**
26971
+ * The change of each total either period answers, in ReportChangeField\'s order; empty when part summary was not asked
26972
+ * @type {Array<SalesReportChangeDto>}
26973
+ * @memberof SalesReportShortGroupDtoComparison
26974
+ */
26975
+ 'changes': Array<SalesReportChangeDto>;
26976
+ /**
26977
+ *
26978
+ * @type {SalesReportShortComparisonDtoSalesReport}
26979
+ * @memberof SalesReportShortGroupDtoComparison
26980
+ */
26981
+ 'salesReport'?: SalesReportShortComparisonDtoSalesReport;
26982
+ }
26983
+ /**
26984
+ * The group\'s salesReport, short: present when part summary, items or vat was asked
26985
+ * @export
26986
+ * @interface SalesReportShortGroupDtoSalesReport
26987
+ */
26988
+ export interface SalesReportShortGroupDtoSalesReport {
26989
+ /**
26990
+ * Part vat: one row per VAT rate, lowest first
26991
+ * @type {Array<SalesReportVatRateDto>}
26992
+ * @memberof SalesReportShortGroupDtoSalesReport
26993
+ */
26994
+ 'taxSummary'?: Array<SalesReportVatRateDto>;
26995
+ /**
26996
+ * Part summary: how many items were sold
26997
+ * @type {number}
26998
+ * @memberof SalesReportShortGroupDtoSalesReport
26999
+ */
27000
+ 'totalQuantity'?: number;
27001
+ /**
27002
+ * Part summary: sales with VAT, in the major unit of the group\'s currency (euros for EUR)
27003
+ * @type {number}
27004
+ * @memberof SalesReportShortGroupDtoSalesReport
27005
+ */
27006
+ 'totalWithTax'?: number;
27007
+ /**
27008
+ * Part summary: the VAT, in the major unit of the group\'s currency (euros for EUR)
27009
+ * @type {number}
27010
+ * @memberof SalesReportShortGroupDtoSalesReport
27011
+ */
27012
+ 'totalTaxAmount'?: number;
27013
+ /**
27014
+ * Part summary: sales without VAT, in the major unit of the group\'s currency (euros for EUR)
27015
+ * @type {number}
27016
+ * @memberof SalesReportShortGroupDtoSalesReport
27017
+ */
27018
+ 'totalWithoutTax'?: number;
27019
+ /**
27020
+ * 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
27021
+ * @type {number}
27022
+ * @memberof SalesReportShortGroupDtoSalesReport
27023
+ */
27024
+ 'deliveryFee'?: number;
27025
+ /**
27026
+ * Part summary, with deliveryFee: the VAT of the delivery fees, in the major unit of the group\'s currency (euros for EUR)
27027
+ * @type {number}
27028
+ * @memberof SalesReportShortGroupDtoSalesReport
27029
+ */
27030
+ 'deliveryTax'?: number;
27031
+ /**
27032
+ * Part items: each category\'s totals, without its items
27033
+ * @type {Array<SalesReportShortCategoryDto>}
27034
+ * @memberof SalesReportShortGroupDtoSalesReport
27035
+ */
27036
+ 'categories'?: Array<SalesReportShortCategoryDto>;
27037
+ /**
27038
+ * 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
27039
+ * @type {Array<SalesReportTopItemDto>}
27040
+ * @memberof SalesReportShortGroupDtoSalesReport
27041
+ */
27042
+ 'topItemsBySales'?: Array<SalesReportTopItemDto>;
27043
+ /**
27044
+ * Part items: the 10 items sold most often, most first (then the most sales); an item in several categories is added up once
27045
+ * @type {Array<SalesReportTopItemDto>}
27046
+ * @memberof SalesReportShortGroupDtoSalesReport
27047
+ */
27048
+ 'topItemsByQuantity'?: Array<SalesReportTopItemDto>;
27049
+ }
27050
+ /**
27051
+ *
27052
+ * @export
27053
+ * @interface SalesReportShortResponseDto
27054
+ */
27055
+ export interface SalesReportShortResponseDto {
27056
+ /**
27057
+ * The first instant of the period, ISO 8601 in UTC
27058
+ * @type {string}
27059
+ * @memberof SalesReportShortResponseDto
27060
+ */
27061
+ 'reportDateStart': string;
27062
+ /**
27063
+ * The last instant of the period, ISO 8601 in UTC; now, when the period ends later
27064
+ * @type {string}
27065
+ * @memberof SalesReportShortResponseDto
27066
+ */
27067
+ 'reportDateEnd': string;
27068
+ /**
27069
+ * When the report was answered, ISO 8601 in UTC
27070
+ * @type {string}
27071
+ * @memberof SalesReportShortResponseDto
27072
+ */
27073
+ 'reportGeneratedAt': string;
27074
+ /**
27075
+ * The time zone the period was read in: the request\'s, or else the first venue\'s
27076
+ * @type {string}
27077
+ * @memberof SalesReportShortResponseDto
27078
+ */
27079
+ 'timezone': string;
27080
+ /**
27081
+ * The first business day added up, YYYY-MM-DD; each venue\'s rows of that date in its own zone
27082
+ * @type {string}
27083
+ * @memberof SalesReportShortResponseDto
27084
+ */
27085
+ 'firstBusinessDay': string;
27086
+ /**
27087
+ * The last business day added up, YYYY-MM-DD, inclusive
27088
+ * @type {string}
27089
+ * @memberof SalesReportShortResponseDto
27090
+ */
27091
+ 'lastBusinessDay': string;
27092
+ /**
27093
+ * 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
27094
+ * @type {object}
27095
+ * @memberof SalesReportShortResponseDto
27096
+ */
27097
+ 'dataUntil': object | null;
27098
+ /**
27099
+ * One group per venue, app and currency the breakdown keeps, as GET /api/v6/report/sales answers them, short
27100
+ * @type {Array<SalesReportShortGroupDto>}
27101
+ * @memberof SalesReportShortResponseDto
27102
+ */
27103
+ 'reports': Array<SalesReportShortGroupDto>;
27104
+ /**
27105
+ * When the breakdown splits several venues or apps: their groups added together, one per currency, short
27106
+ * @type {Array<SalesReportShortGroupDto>}
27107
+ * @memberof SalesReportShortResponseDto
27108
+ */
27109
+ 'totals'?: Array<SalesReportShortGroupDto>;
27110
+ }
27111
+ /**
27112
+ *
27113
+ * @export
27114
+ * @interface SalesReportShortSalesDto
27115
+ */
27116
+ export interface SalesReportShortSalesDto {
27117
+ /**
27118
+ * Part vat: one row per VAT rate, lowest first
27119
+ * @type {Array<SalesReportVatRateDto>}
27120
+ * @memberof SalesReportShortSalesDto
27121
+ */
27122
+ 'taxSummary'?: Array<SalesReportVatRateDto>;
27123
+ /**
27124
+ * Part summary: how many items were sold
27125
+ * @type {number}
27126
+ * @memberof SalesReportShortSalesDto
27127
+ */
27128
+ 'totalQuantity'?: number;
27129
+ /**
27130
+ * Part summary: sales with VAT, in the major unit of the group\'s currency (euros for EUR)
27131
+ * @type {number}
27132
+ * @memberof SalesReportShortSalesDto
27133
+ */
27134
+ 'totalWithTax'?: number;
27135
+ /**
27136
+ * Part summary: the VAT, in the major unit of the group\'s currency (euros for EUR)
27137
+ * @type {number}
27138
+ * @memberof SalesReportShortSalesDto
27139
+ */
27140
+ 'totalTaxAmount'?: number;
27141
+ /**
27142
+ * Part summary: sales without VAT, in the major unit of the group\'s currency (euros for EUR)
27143
+ * @type {number}
27144
+ * @memberof SalesReportShortSalesDto
27145
+ */
27146
+ 'totalWithoutTax'?: number;
27147
+ /**
27148
+ * 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
27149
+ * @type {number}
27150
+ * @memberof SalesReportShortSalesDto
27151
+ */
27152
+ 'deliveryFee'?: number;
27153
+ /**
27154
+ * Part summary, with deliveryFee: the VAT of the delivery fees, in the major unit of the group\'s currency (euros for EUR)
27155
+ * @type {number}
27156
+ * @memberof SalesReportShortSalesDto
27157
+ */
27158
+ 'deliveryTax'?: number;
27159
+ /**
27160
+ * Part items: each category\'s totals, without its items
27161
+ * @type {Array<SalesReportShortCategoryDto>}
27162
+ * @memberof SalesReportShortSalesDto
27163
+ */
27164
+ 'categories'?: Array<SalesReportShortCategoryDto>;
27165
+ /**
27166
+ * 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
27167
+ * @type {Array<SalesReportTopItemDto>}
27168
+ * @memberof SalesReportShortSalesDto
27169
+ */
27170
+ 'topItemsBySales'?: Array<SalesReportTopItemDto>;
27171
+ /**
27172
+ * Part items: the 10 items sold most often, most first (then the most sales); an item in several categories is added up once
27173
+ * @type {Array<SalesReportTopItemDto>}
27174
+ * @memberof SalesReportShortSalesDto
27175
+ */
27176
+ 'topItemsByQuantity'?: Array<SalesReportTopItemDto>;
27177
+ }
27178
+ /**
27179
+ *
27180
+ * @export
27181
+ * @interface SalesReportTopItemDto
27182
+ */
27183
+ export interface SalesReportTopItemDto {
27184
+ /**
27185
+ * 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
27186
+ * @type {object}
27187
+ * @memberof SalesReportTopItemDto
27188
+ */
27189
+ 'name': object | null;
27190
+ /**
27191
+ * The categories it sold in
27192
+ * @type {Array<string>}
27193
+ * @memberof SalesReportTopItemDto
27194
+ */
27195
+ 'categoryNames': Array<string>;
27196
+ /**
27197
+ * How many were sold, in every category
27198
+ * @type {number}
27199
+ * @memberof SalesReportTopItemDto
27200
+ */
27201
+ 'quantity': number;
27202
+ /**
27203
+ * Sales with VAT, in every category, in the major unit of the group\'s currency (euros for EUR), rounded to its minor digits
27204
+ * @type {number}
27205
+ * @memberof SalesReportTopItemDto
27206
+ */
27207
+ 'totalWithTax': number;
27208
+ }
25643
27209
  /**
25644
27210
  *
25645
27211
  * @export
@@ -25774,6 +27340,50 @@ export interface SalesSummaryDtoV2 {
25774
27340
  */
25775
27341
  'totalSurchargeAmount': number;
25776
27342
  }
27343
+ /**
27344
+ *
27345
+ * @export
27346
+ * @interface SaveAnalyticsDashboardDto
27347
+ */
27348
+ export interface SaveAnalyticsDashboardDto {
27349
+ /**
27350
+ * The cards in the order they are shown, first card first; at most 60. An empty list saves an empty dashboard.
27351
+ * @type {Array<AnalyticsDashboardCardDto>}
27352
+ * @memberof SaveAnalyticsDashboardDto
27353
+ */
27354
+ 'cards': Array<AnalyticsDashboardCardDto>;
27355
+ /**
27356
+ *
27357
+ * @type {SaveAnalyticsDashboardDtoGoals}
27358
+ * @memberof SaveAnalyticsDashboardDto
27359
+ */
27360
+ 'goals': SaveAnalyticsDashboardDtoGoals;
27361
+ /**
27362
+ * 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.
27363
+ * @type {number}
27364
+ * @memberof SaveAnalyticsDashboardDto
27365
+ */
27366
+ 'expectedVersion'?: number | null;
27367
+ }
27368
+ /**
27369
+ * The sales goals the cards measure against; an empty object saves none.
27370
+ * @export
27371
+ * @interface SaveAnalyticsDashboardDtoGoals
27372
+ */
27373
+ export interface SaveAnalyticsDashboardDtoGoals {
27374
+ /**
27375
+ * The day\'s sales goal, a whole number in the minor unit of the store\'s currency (cents for EUR). Absent: no day goal.
27376
+ * @type {number}
27377
+ * @memberof SaveAnalyticsDashboardDtoGoals
27378
+ */
27379
+ 'daySales'?: number;
27380
+ /**
27381
+ * The month\'s sales goal, a whole number in the minor unit of the store\'s currency (cents for EUR). Absent: no month goal.
27382
+ * @type {number}
27383
+ * @memberof SaveAnalyticsDashboardDtoGoals
27384
+ */
27385
+ 'monthSales'?: number;
27386
+ }
25777
27387
  /**
25778
27388
  *
25779
27389
  * @export
@@ -25948,6 +27558,31 @@ export interface SendReportEmailDto {
25948
27558
  */
25949
27559
  'language'?: ReportLanguage;
25950
27560
  }
27561
+ /**
27562
+ *
27563
+ * @export
27564
+ * @interface ServeMcpRequest403Response
27565
+ */
27566
+ export interface ServeMcpRequest403Response {
27567
+ /**
27568
+ * Why the person\'s request is refused
27569
+ * @type {string}
27570
+ * @memberof ServeMcpRequest403Response
27571
+ */
27572
+ 'error'?: ErrorEnum;
27573
+ /**
27574
+ * With NOT_STORE_OWNER: each venue a tool call named that the person does not own
27575
+ * @type {Array<any>}
27576
+ * @memberof ServeMcpRequest403Response
27577
+ */
27578
+ 'venueIds'?: Array<any>;
27579
+ }
27580
+ export declare const ErrorEnum: {
27581
+ readonly NoAriAccess: "NO_ARI_ACCESS";
27582
+ readonly NotStoreOwner: "NOT_STORE_OWNER";
27583
+ readonly RightsUnavailable: "RIGHTS_UNAVAILABLE";
27584
+ };
27585
+ export type ErrorEnum = typeof ErrorEnum[keyof typeof ErrorEnum];
25951
27586
  /**
25952
27587
  *
25953
27588
  * @export
@@ -30328,6 +31963,12 @@ export interface UnifiedProductDto {
30328
31963
  * @memberof UnifiedProductDto
30329
31964
  */
30330
31965
  'options': Array<UnifiedOptionDto>;
31966
+ /**
31967
+ * 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.
31968
+ * @type {Array<OrderIngredientDto>}
31969
+ * @memberof UnifiedProductDto
31970
+ */
31971
+ 'ingredients'?: Array<OrderIngredientDto>;
30331
31972
  }
30332
31973
  /**
30333
31974
  *
@@ -35382,6 +37023,217 @@ export declare class ActionPasscodesApi extends BaseAPI implements ActionPasscod
35382
37023
  */
35383
37024
  checkActionPasscode(businessId: number, xPosPin: string, checkActionPasscodeDto: CheckActionPasscodeDto, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<ActionPasscodeCheckResponseDto, any, {}>>;
35384
37025
  }
37026
+ /**
37027
+ * AnalyticsDashboardsApi - axios parameter creator
37028
+ * @export
37029
+ */
37030
+ export declare const AnalyticsDashboardsApiAxiosParamCreator: (configuration?: Configuration) => {
37031
+ /**
37032
+ * 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.
37033
+ * @summary Read an organisation\'s Analytics dashboard
37034
+ * @param {string} groupId The organisation\&#39;s id: its group\&#39;s accountId in the licence server
37035
+ * @param {*} [options] Override http request option.
37036
+ * @throws {RequiredError}
37037
+ */
37038
+ getOrganisationAnalyticsDashboard: (groupId: string, options?: AxiosRequestConfig) => Promise<RequestArgs>;
37039
+ /**
37040
+ * 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.
37041
+ * @summary Read a store\'s Analytics dashboard
37042
+ * @param {number} businessId The store\&#39;s orderingBusinessId
37043
+ * @param {*} [options] Override http request option.
37044
+ * @throws {RequiredError}
37045
+ */
37046
+ getStoreAnalyticsDashboard: (businessId: number, options?: AxiosRequestConfig) => Promise<RequestArgs>;
37047
+ /**
37048
+ * 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.
37049
+ * @summary Replace an organisation\'s Analytics dashboard
37050
+ * @param {string} groupId The organisation\&#39;s id: its group\&#39;s accountId in the licence server
37051
+ * @param {SaveAnalyticsDashboardDto} saveAnalyticsDashboardDto
37052
+ * @param {*} [options] Override http request option.
37053
+ * @throws {RequiredError}
37054
+ */
37055
+ saveOrganisationAnalyticsDashboard: (groupId: string, saveAnalyticsDashboardDto: SaveAnalyticsDashboardDto, options?: AxiosRequestConfig) => Promise<RequestArgs>;
37056
+ /**
37057
+ * 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.
37058
+ * @summary Replace a store\'s Analytics dashboard
37059
+ * @param {number} businessId The store\&#39;s orderingBusinessId
37060
+ * @param {SaveAnalyticsDashboardDto} saveAnalyticsDashboardDto
37061
+ * @param {*} [options] Override http request option.
37062
+ * @throws {RequiredError}
37063
+ */
37064
+ saveStoreAnalyticsDashboard: (businessId: number, saveAnalyticsDashboardDto: SaveAnalyticsDashboardDto, options?: AxiosRequestConfig) => Promise<RequestArgs>;
37065
+ };
37066
+ /**
37067
+ * AnalyticsDashboardsApi - functional programming interface
37068
+ * @export
37069
+ */
37070
+ export declare const AnalyticsDashboardsApiFp: (configuration?: Configuration) => {
37071
+ /**
37072
+ * 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.
37073
+ * @summary Read an organisation\'s Analytics dashboard
37074
+ * @param {string} groupId The organisation\&#39;s id: its group\&#39;s accountId in the licence server
37075
+ * @param {*} [options] Override http request option.
37076
+ * @throws {RequiredError}
37077
+ */
37078
+ getOrganisationAnalyticsDashboard(groupId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AnalyticsDashboardResponseDto>>;
37079
+ /**
37080
+ * 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.
37081
+ * @summary Read a store\'s Analytics dashboard
37082
+ * @param {number} businessId The store\&#39;s orderingBusinessId
37083
+ * @param {*} [options] Override http request option.
37084
+ * @throws {RequiredError}
37085
+ */
37086
+ getStoreAnalyticsDashboard(businessId: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AnalyticsDashboardResponseDto>>;
37087
+ /**
37088
+ * 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.
37089
+ * @summary Replace an organisation\'s Analytics dashboard
37090
+ * @param {string} groupId The organisation\&#39;s id: its group\&#39;s accountId in the licence server
37091
+ * @param {SaveAnalyticsDashboardDto} saveAnalyticsDashboardDto
37092
+ * @param {*} [options] Override http request option.
37093
+ * @throws {RequiredError}
37094
+ */
37095
+ saveOrganisationAnalyticsDashboard(groupId: string, saveAnalyticsDashboardDto: SaveAnalyticsDashboardDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AnalyticsDashboardResponseDto>>;
37096
+ /**
37097
+ * 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.
37098
+ * @summary Replace a store\'s Analytics dashboard
37099
+ * @param {number} businessId The store\&#39;s orderingBusinessId
37100
+ * @param {SaveAnalyticsDashboardDto} saveAnalyticsDashboardDto
37101
+ * @param {*} [options] Override http request option.
37102
+ * @throws {RequiredError}
37103
+ */
37104
+ saveStoreAnalyticsDashboard(businessId: number, saveAnalyticsDashboardDto: SaveAnalyticsDashboardDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AnalyticsDashboardResponseDto>>;
37105
+ };
37106
+ /**
37107
+ * AnalyticsDashboardsApi - factory interface
37108
+ * @export
37109
+ */
37110
+ export declare const AnalyticsDashboardsApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
37111
+ /**
37112
+ * 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.
37113
+ * @summary Read an organisation\'s Analytics dashboard
37114
+ * @param {string} groupId The organisation\&#39;s id: its group\&#39;s accountId in the licence server
37115
+ * @param {*} [options] Override http request option.
37116
+ * @throws {RequiredError}
37117
+ */
37118
+ getOrganisationAnalyticsDashboard(groupId: string, options?: any): AxiosPromise<AnalyticsDashboardResponseDto>;
37119
+ /**
37120
+ * 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.
37121
+ * @summary Read a store\'s Analytics dashboard
37122
+ * @param {number} businessId The store\&#39;s orderingBusinessId
37123
+ * @param {*} [options] Override http request option.
37124
+ * @throws {RequiredError}
37125
+ */
37126
+ getStoreAnalyticsDashboard(businessId: number, options?: any): AxiosPromise<AnalyticsDashboardResponseDto>;
37127
+ /**
37128
+ * 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.
37129
+ * @summary Replace an organisation\'s Analytics dashboard
37130
+ * @param {string} groupId The organisation\&#39;s id: its group\&#39;s accountId in the licence server
37131
+ * @param {SaveAnalyticsDashboardDto} saveAnalyticsDashboardDto
37132
+ * @param {*} [options] Override http request option.
37133
+ * @throws {RequiredError}
37134
+ */
37135
+ saveOrganisationAnalyticsDashboard(groupId: string, saveAnalyticsDashboardDto: SaveAnalyticsDashboardDto, options?: any): AxiosPromise<AnalyticsDashboardResponseDto>;
37136
+ /**
37137
+ * 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.
37138
+ * @summary Replace a store\'s Analytics dashboard
37139
+ * @param {number} businessId The store\&#39;s orderingBusinessId
37140
+ * @param {SaveAnalyticsDashboardDto} saveAnalyticsDashboardDto
37141
+ * @param {*} [options] Override http request option.
37142
+ * @throws {RequiredError}
37143
+ */
37144
+ saveStoreAnalyticsDashboard(businessId: number, saveAnalyticsDashboardDto: SaveAnalyticsDashboardDto, options?: any): AxiosPromise<AnalyticsDashboardResponseDto>;
37145
+ };
37146
+ /**
37147
+ * AnalyticsDashboardsApi - interface
37148
+ * @export
37149
+ * @interface AnalyticsDashboardsApi
37150
+ */
37151
+ export interface AnalyticsDashboardsApiInterface {
37152
+ /**
37153
+ * 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.
37154
+ * @summary Read an organisation\'s Analytics dashboard
37155
+ * @param {string} groupId The organisation\&#39;s id: its group\&#39;s accountId in the licence server
37156
+ * @param {*} [options] Override http request option.
37157
+ * @throws {RequiredError}
37158
+ * @memberof AnalyticsDashboardsApiInterface
37159
+ */
37160
+ getOrganisationAnalyticsDashboard(groupId: string, options?: AxiosRequestConfig): AxiosPromise<AnalyticsDashboardResponseDto>;
37161
+ /**
37162
+ * 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.
37163
+ * @summary Read a store\'s Analytics dashboard
37164
+ * @param {number} businessId The store\&#39;s orderingBusinessId
37165
+ * @param {*} [options] Override http request option.
37166
+ * @throws {RequiredError}
37167
+ * @memberof AnalyticsDashboardsApiInterface
37168
+ */
37169
+ getStoreAnalyticsDashboard(businessId: number, options?: AxiosRequestConfig): AxiosPromise<AnalyticsDashboardResponseDto>;
37170
+ /**
37171
+ * 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.
37172
+ * @summary Replace an organisation\'s Analytics dashboard
37173
+ * @param {string} groupId The organisation\&#39;s id: its group\&#39;s accountId in the licence server
37174
+ * @param {SaveAnalyticsDashboardDto} saveAnalyticsDashboardDto
37175
+ * @param {*} [options] Override http request option.
37176
+ * @throws {RequiredError}
37177
+ * @memberof AnalyticsDashboardsApiInterface
37178
+ */
37179
+ saveOrganisationAnalyticsDashboard(groupId: string, saveAnalyticsDashboardDto: SaveAnalyticsDashboardDto, options?: AxiosRequestConfig): AxiosPromise<AnalyticsDashboardResponseDto>;
37180
+ /**
37181
+ * 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.
37182
+ * @summary Replace a store\'s Analytics dashboard
37183
+ * @param {number} businessId The store\&#39;s orderingBusinessId
37184
+ * @param {SaveAnalyticsDashboardDto} saveAnalyticsDashboardDto
37185
+ * @param {*} [options] Override http request option.
37186
+ * @throws {RequiredError}
37187
+ * @memberof AnalyticsDashboardsApiInterface
37188
+ */
37189
+ saveStoreAnalyticsDashboard(businessId: number, saveAnalyticsDashboardDto: SaveAnalyticsDashboardDto, options?: AxiosRequestConfig): AxiosPromise<AnalyticsDashboardResponseDto>;
37190
+ }
37191
+ /**
37192
+ * AnalyticsDashboardsApi - object-oriented interface
37193
+ * @export
37194
+ * @class AnalyticsDashboardsApi
37195
+ * @extends {BaseAPI}
37196
+ */
37197
+ export declare class AnalyticsDashboardsApi extends BaseAPI implements AnalyticsDashboardsApiInterface {
37198
+ /**
37199
+ * 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.
37200
+ * @summary Read an organisation\'s Analytics dashboard
37201
+ * @param {string} groupId The organisation\&#39;s id: its group\&#39;s accountId in the licence server
37202
+ * @param {*} [options] Override http request option.
37203
+ * @throws {RequiredError}
37204
+ * @memberof AnalyticsDashboardsApi
37205
+ */
37206
+ getOrganisationAnalyticsDashboard(groupId: string, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<AnalyticsDashboardResponseDto, any, {}>>;
37207
+ /**
37208
+ * 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.
37209
+ * @summary Read a store\'s Analytics dashboard
37210
+ * @param {number} businessId The store\&#39;s orderingBusinessId
37211
+ * @param {*} [options] Override http request option.
37212
+ * @throws {RequiredError}
37213
+ * @memberof AnalyticsDashboardsApi
37214
+ */
37215
+ getStoreAnalyticsDashboard(businessId: number, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<AnalyticsDashboardResponseDto, any, {}>>;
37216
+ /**
37217
+ * 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.
37218
+ * @summary Replace an organisation\'s Analytics dashboard
37219
+ * @param {string} groupId The organisation\&#39;s id: its group\&#39;s accountId in the licence server
37220
+ * @param {SaveAnalyticsDashboardDto} saveAnalyticsDashboardDto
37221
+ * @param {*} [options] Override http request option.
37222
+ * @throws {RequiredError}
37223
+ * @memberof AnalyticsDashboardsApi
37224
+ */
37225
+ saveOrganisationAnalyticsDashboard(groupId: string, saveAnalyticsDashboardDto: SaveAnalyticsDashboardDto, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<AnalyticsDashboardResponseDto, any, {}>>;
37226
+ /**
37227
+ * 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.
37228
+ * @summary Replace a store\'s Analytics dashboard
37229
+ * @param {number} businessId The store\&#39;s orderingBusinessId
37230
+ * @param {SaveAnalyticsDashboardDto} saveAnalyticsDashboardDto
37231
+ * @param {*} [options] Override http request option.
37232
+ * @throws {RequiredError}
37233
+ * @memberof AnalyticsDashboardsApi
37234
+ */
37235
+ saveStoreAnalyticsDashboard(businessId: number, saveAnalyticsDashboardDto: SaveAnalyticsDashboardDto, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<AnalyticsDashboardResponseDto, any, {}>>;
37236
+ }
35385
37237
  /**
35386
37238
  * AuthApi - axios parameter creator
35387
37239
  * @export
@@ -35579,7 +37431,7 @@ export declare class AuthApi extends BaseAPI implements AuthApiInterface {
35579
37431
  */
35580
37432
  export declare const BusinessApiAxiosParamCreator: (configuration?: Configuration) => {
35581
37433
  /**
35582
- * 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.
37434
+ * 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.
35583
37435
  * @summary Get unified discounts for all business and venue
35584
37436
  * @param {string} businessId The venue\&#39;s business id
35585
37437
  * @param {*} [options] Override http request option.
@@ -35734,7 +37586,7 @@ export declare const BusinessApiAxiosParamCreator: (configuration?: Configuratio
35734
37586
  */
35735
37587
  export declare const BusinessApiFp: (configuration?: Configuration) => {
35736
37588
  /**
35737
- * 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.
37589
+ * 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.
35738
37590
  * @summary Get unified discounts for all business and venue
35739
37591
  * @param {string} businessId The venue\&#39;s business id
35740
37592
  * @param {*} [options] Override http request option.
@@ -35889,7 +37741,7 @@ export declare const BusinessApiFp: (configuration?: Configuration) => {
35889
37741
  */
35890
37742
  export declare const BusinessApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
35891
37743
  /**
35892
- * 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.
37744
+ * 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.
35893
37745
  * @summary Get unified discounts for all business and venue
35894
37746
  * @param {string} businessId The venue\&#39;s business id
35895
37747
  * @param {*} [options] Override http request option.
@@ -36045,7 +37897,7 @@ export declare const BusinessApiFactory: (configuration?: Configuration, basePat
36045
37897
  */
36046
37898
  export interface BusinessApiInterface {
36047
37899
  /**
36048
- * 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.
37900
+ * 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.
36049
37901
  * @summary Get unified discounts for all business and venue
36050
37902
  * @param {string} businessId The venue\&#39;s business id
36051
37903
  * @param {*} [options] Override http request option.
@@ -36219,7 +38071,7 @@ export interface BusinessApiInterface {
36219
38071
  */
36220
38072
  export declare class BusinessApi extends BaseAPI implements BusinessApiInterface {
36221
38073
  /**
36222
- * 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.
38074
+ * 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.
36223
38075
  * @summary Get unified discounts for all business and venue
36224
38076
  * @param {string} businessId The venue\&#39;s business id
36225
38077
  * @param {*} [options] Override http request option.
@@ -39837,7 +41689,7 @@ export declare const HistoryApiAxiosParamCreator: (configuration?: Configuration
39837
41689
  */
39838
41690
  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) => Promise<RequestArgs>;
39839
41691
  /**
39840
- * The same answer as GET history/orders/pos, for a service holding the service key.
41692
+ * 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.
39841
41693
  * @summary POS order history of the first venue named, for munchi-dashboard-server
39842
41694
  * @param {Array<number>} businessIds The venues asked about, by business id
39843
41695
  * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
@@ -39886,7 +41738,7 @@ export declare const HistoryApiFp: (configuration?: Configuration) => {
39886
41738
  */
39887
41739
  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): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<OrderHistoryPosResponseDtoV2>>;
39888
41740
  /**
39889
- * The same answer as GET history/orders/pos, for a service holding the service key.
41741
+ * 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.
39890
41742
  * @summary POS order history of the first venue named, for munchi-dashboard-server
39891
41743
  * @param {Array<number>} businessIds The venues asked about, by business id
39892
41744
  * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
@@ -39935,7 +41787,7 @@ export declare const HistoryApiFactory: (configuration?: Configuration, basePath
39935
41787
  */
39936
41788
  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?: any): AxiosPromise<OrderHistoryPosResponseDtoV2>;
39937
41789
  /**
39938
- * The same answer as GET history/orders/pos, for a service holding the service key.
41790
+ * 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.
39939
41791
  * @summary POS order history of the first venue named, for munchi-dashboard-server
39940
41792
  * @param {Array<number>} businessIds The venues asked about, by business id
39941
41793
  * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
@@ -39986,7 +41838,7 @@ export interface HistoryApiInterface {
39986
41838
  */
39987
41839
  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>;
39988
41840
  /**
39989
- * The same answer as GET history/orders/pos, for a service holding the service key.
41841
+ * 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.
39990
41842
  * @summary POS order history of the first venue named, for munchi-dashboard-server
39991
41843
  * @param {Array<number>} businessIds The venues asked about, by business id
39992
41844
  * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
@@ -40039,7 +41891,7 @@ export declare class HistoryApi extends BaseAPI implements HistoryApiInterface {
40039
41891
  */
40040
41892
  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): Promise<import("axios").AxiosResponse<OrderHistoryPosResponseDtoV2, any, {}>>;
40041
41893
  /**
40042
- * The same answer as GET history/orders/pos, for a service holding the service key.
41894
+ * 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.
40043
41895
  * @summary POS order history of the first venue named, for munchi-dashboard-server
40044
41896
  * @param {Array<number>} businessIds The venues asked about, by business id
40045
41897
  * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
@@ -40067,7 +41919,7 @@ export declare class HistoryApi extends BaseAPI implements HistoryApiInterface {
40067
41919
  */
40068
41920
  export declare const HistoryV6ApiAxiosParamCreator: (configuration?: Configuration) => {
40069
41921
  /**
40070
- * 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.
41922
+ * 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.
40071
41923
  * @summary Online order history of the venues, for munchi-dashboard-server
40072
41924
  * @param {Array<number>} businessIds The venues asked about, by business id
40073
41925
  * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
@@ -40136,7 +41988,7 @@ export declare const HistoryV6ApiAxiosParamCreator: (configuration?: Configurati
40136
41988
  */
40137
41989
  export declare const HistoryV6ApiFp: (configuration?: Configuration) => {
40138
41990
  /**
40139
- * 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.
41991
+ * 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.
40140
41992
  * @summary Online order history of the venues, for munchi-dashboard-server
40141
41993
  * @param {Array<number>} businessIds The venues asked about, by business id
40142
41994
  * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
@@ -40205,7 +42057,7 @@ export declare const HistoryV6ApiFp: (configuration?: Configuration) => {
40205
42057
  */
40206
42058
  export declare const HistoryV6ApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
40207
42059
  /**
40208
- * 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.
42060
+ * 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.
40209
42061
  * @summary Online order history of the venues, for munchi-dashboard-server
40210
42062
  * @param {Array<number>} businessIds The venues asked about, by business id
40211
42063
  * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
@@ -40275,7 +42127,7 @@ export declare const HistoryV6ApiFactory: (configuration?: Configuration, basePa
40275
42127
  */
40276
42128
  export interface HistoryV6ApiInterface {
40277
42129
  /**
40278
- * 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.
42130
+ * 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.
40279
42131
  * @summary Online order history of the venues, for munchi-dashboard-server
40280
42132
  * @param {Array<number>} businessIds The venues asked about, by business id
40281
42133
  * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
@@ -40349,7 +42201,7 @@ export interface HistoryV6ApiInterface {
40349
42201
  */
40350
42202
  export declare class HistoryV6Api extends BaseAPI implements HistoryV6ApiInterface {
40351
42203
  /**
40352
- * 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.
42204
+ * 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.
40353
42205
  * @summary Online order history of the venues, for munchi-dashboard-server
40354
42206
  * @param {Array<number>} businessIds The venues asked about, by business id
40355
42207
  * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
@@ -41963,7 +43815,7 @@ export declare const MCPApiAxiosParamCreator: (configuration?: Configuration) =>
41963
43815
  */
41964
43816
  refuseStream: (options?: AxiosRequestConfig) => Promise<RequestArgs>;
41965
43817
  /**
41966
- * 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).
43818
+ * 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).
41967
43819
  * @summary The MCP server for Munchi ops (Streamable HTTP, stateless)
41968
43820
  * @param {object} body A JSON-RPC 2.0 message
41969
43821
  * @param {*} [options] Override http request option.
@@ -41991,7 +43843,7 @@ export declare const MCPApiFp: (configuration?: Configuration) => {
41991
43843
  */
41992
43844
  refuseStream(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
41993
43845
  /**
41994
- * 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).
43846
+ * 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).
41995
43847
  * @summary The MCP server for Munchi ops (Streamable HTTP, stateless)
41996
43848
  * @param {object} body A JSON-RPC 2.0 message
41997
43849
  * @param {*} [options] Override http request option.
@@ -42019,7 +43871,7 @@ export declare const MCPApiFactory: (configuration?: Configuration, basePath?: s
42019
43871
  */
42020
43872
  refuseStream(options?: any): AxiosPromise<void>;
42021
43873
  /**
42022
- * 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).
43874
+ * 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).
42023
43875
  * @summary The MCP server for Munchi ops (Streamable HTTP, stateless)
42024
43876
  * @param {object} body A JSON-RPC 2.0 message
42025
43877
  * @param {*} [options] Override http request option.
@@ -42050,7 +43902,7 @@ export interface MCPApiInterface {
42050
43902
  */
42051
43903
  refuseStream(options?: AxiosRequestConfig): AxiosPromise<void>;
42052
43904
  /**
42053
- * 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).
43905
+ * 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).
42054
43906
  * @summary The MCP server for Munchi ops (Streamable HTTP, stateless)
42055
43907
  * @param {object} body A JSON-RPC 2.0 message
42056
43908
  * @param {*} [options] Override http request option.
@@ -42083,7 +43935,7 @@ export declare class MCPApi extends BaseAPI implements MCPApiInterface {
42083
43935
  */
42084
43936
  refuseStream(options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
42085
43937
  /**
42086
- * 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).
43938
+ * 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).
42087
43939
  * @summary The MCP server for Munchi ops (Streamable HTTP, stateless)
42088
43940
  * @param {object} body A JSON-RPC 2.0 message
42089
43941
  * @param {*} [options] Override http request option.
@@ -42839,7 +44691,7 @@ export declare class OrderCompletionApi extends BaseAPI implements OrderCompleti
42839
44691
  */
42840
44692
  export declare const OrderInternalApiAxiosParamCreator: (configuration?: Configuration) => {
42841
44693
  /**
42842
- * kds-service reads one platform order from Postgres, whole, with the shared service key in x-api-key or as a Bearer token.
44694
+ * 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.
42843
44695
  * @summary Get order data by external ID for internal microservice communication
42844
44696
  * @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
42845
44697
  * @param {*} [options] Override http request option.
@@ -42853,7 +44705,7 @@ export declare const OrderInternalApiAxiosParamCreator: (configuration?: Configu
42853
44705
  */
42854
44706
  export declare const OrderInternalApiFp: (configuration?: Configuration) => {
42855
44707
  /**
42856
- * kds-service reads one platform order from Postgres, whole, with the shared service key in x-api-key or as a Bearer token.
44708
+ * 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.
42857
44709
  * @summary Get order data by external ID for internal microservice communication
42858
44710
  * @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
42859
44711
  * @param {*} [options] Override http request option.
@@ -42867,7 +44719,7 @@ export declare const OrderInternalApiFp: (configuration?: Configuration) => {
42867
44719
  */
42868
44720
  export declare const OrderInternalApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
42869
44721
  /**
42870
- * kds-service reads one platform order from Postgres, whole, with the shared service key in x-api-key or as a Bearer token.
44722
+ * 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.
42871
44723
  * @summary Get order data by external ID for internal microservice communication
42872
44724
  * @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
42873
44725
  * @param {*} [options] Override http request option.
@@ -42882,7 +44734,7 @@ export declare const OrderInternalApiFactory: (configuration?: Configuration, ba
42882
44734
  */
42883
44735
  export interface OrderInternalApiInterface {
42884
44736
  /**
42885
- * kds-service reads one platform order from Postgres, whole, with the shared service key in x-api-key or as a Bearer token.
44737
+ * 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.
42886
44738
  * @summary Get order data by external ID for internal microservice communication
42887
44739
  * @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
42888
44740
  * @param {*} [options] Override http request option.
@@ -42899,7 +44751,7 @@ export interface OrderInternalApiInterface {
42899
44751
  */
42900
44752
  export declare class OrderInternalApi extends BaseAPI implements OrderInternalApiInterface {
42901
44753
  /**
42902
- * kds-service reads one platform order from Postgres, whole, with the shared service key in x-api-key or as a Bearer token.
44754
+ * 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.
42903
44755
  * @summary Get order data by external ID for internal microservice communication
42904
44756
  * @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
42905
44757
  * @param {*} [options] Override http request option.
@@ -46600,6 +48452,217 @@ export declare class ProductApi extends BaseAPI implements ProductApiInterface {
46600
48452
  */
46601
48453
  updateProductSkusV2(businessId: string, categoryId: string, productId: string, updateProductSkusDto: UpdateProductSkusDto, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<ProductSkusResponseDto, any, {}>>;
46602
48454
  }
48455
+ /**
48456
+ * PromotionsApi - axios parameter creator
48457
+ * @export
48458
+ */
48459
+ export declare const PromotionsApiAxiosParamCreator: (configuration?: Configuration) => {
48460
+ /**
48461
+ * 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.
48462
+ * @summary List the venue\'s automatic promotions running now on the POS
48463
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
48464
+ * @param {*} [options] Override http request option.
48465
+ * @throws {RequiredError}
48466
+ */
48467
+ listAutomaticPromotions: (businessId: number, options?: AxiosRequestConfig) => Promise<RequestArgs>;
48468
+ /**
48469
+ * 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.
48470
+ * @summary List the venue\'s automatic promotions running now on the kiosk
48471
+ * @param {number} businessId The venue\&#39;s orderingBusinessId, the kiosk\&#39;s own venue
48472
+ * @param {*} [options] Override http request option.
48473
+ * @throws {RequiredError}
48474
+ */
48475
+ listKioskAutomaticPromotions: (businessId: number, options?: AxiosRequestConfig) => Promise<RequestArgs>;
48476
+ /**
48477
+ * 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.
48478
+ * @summary Price a till\'s basket with the venue\'s promotions
48479
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
48480
+ * @param {PriceBasketDto} priceBasketDto
48481
+ * @param {*} [options] Override http request option.
48482
+ * @throws {RequiredError}
48483
+ */
48484
+ priceBasketWithPromotions: (businessId: number, priceBasketDto: PriceBasketDto, options?: AxiosRequestConfig) => Promise<RequestArgs>;
48485
+ /**
48486
+ * 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.
48487
+ * @summary Price a kiosk\'s basket with the venue\'s promotions
48488
+ * @param {number} businessId The venue\&#39;s orderingBusinessId, the kiosk\&#39;s own venue
48489
+ * @param {PriceBasketDto} priceBasketDto
48490
+ * @param {*} [options] Override http request option.
48491
+ * @throws {RequiredError}
48492
+ */
48493
+ priceKioskBasketWithPromotions: (businessId: number, priceBasketDto: PriceBasketDto, options?: AxiosRequestConfig) => Promise<RequestArgs>;
48494
+ };
48495
+ /**
48496
+ * PromotionsApi - functional programming interface
48497
+ * @export
48498
+ */
48499
+ export declare const PromotionsApiFp: (configuration?: Configuration) => {
48500
+ /**
48501
+ * 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.
48502
+ * @summary List the venue\'s automatic promotions running now on the POS
48503
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
48504
+ * @param {*} [options] Override http request option.
48505
+ * @throws {RequiredError}
48506
+ */
48507
+ listAutomaticPromotions(businessId: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AutomaticPromotionsAnswerDto>>;
48508
+ /**
48509
+ * 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.
48510
+ * @summary List the venue\'s automatic promotions running now on the kiosk
48511
+ * @param {number} businessId The venue\&#39;s orderingBusinessId, the kiosk\&#39;s own venue
48512
+ * @param {*} [options] Override http request option.
48513
+ * @throws {RequiredError}
48514
+ */
48515
+ listKioskAutomaticPromotions(businessId: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AutomaticPromotionsAnswerDto>>;
48516
+ /**
48517
+ * 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.
48518
+ * @summary Price a till\'s basket with the venue\'s promotions
48519
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
48520
+ * @param {PriceBasketDto} priceBasketDto
48521
+ * @param {*} [options] Override http request option.
48522
+ * @throws {RequiredError}
48523
+ */
48524
+ priceBasketWithPromotions(businessId: number, priceBasketDto: PriceBasketDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PriceBasketAnswerDto>>;
48525
+ /**
48526
+ * 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.
48527
+ * @summary Price a kiosk\'s basket with the venue\'s promotions
48528
+ * @param {number} businessId The venue\&#39;s orderingBusinessId, the kiosk\&#39;s own venue
48529
+ * @param {PriceBasketDto} priceBasketDto
48530
+ * @param {*} [options] Override http request option.
48531
+ * @throws {RequiredError}
48532
+ */
48533
+ priceKioskBasketWithPromotions(businessId: number, priceBasketDto: PriceBasketDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PriceBasketAnswerDto>>;
48534
+ };
48535
+ /**
48536
+ * PromotionsApi - factory interface
48537
+ * @export
48538
+ */
48539
+ export declare const PromotionsApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
48540
+ /**
48541
+ * 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.
48542
+ * @summary List the venue\'s automatic promotions running now on the POS
48543
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
48544
+ * @param {*} [options] Override http request option.
48545
+ * @throws {RequiredError}
48546
+ */
48547
+ listAutomaticPromotions(businessId: number, options?: any): AxiosPromise<AutomaticPromotionsAnswerDto>;
48548
+ /**
48549
+ * 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.
48550
+ * @summary List the venue\'s automatic promotions running now on the kiosk
48551
+ * @param {number} businessId The venue\&#39;s orderingBusinessId, the kiosk\&#39;s own venue
48552
+ * @param {*} [options] Override http request option.
48553
+ * @throws {RequiredError}
48554
+ */
48555
+ listKioskAutomaticPromotions(businessId: number, options?: any): AxiosPromise<AutomaticPromotionsAnswerDto>;
48556
+ /**
48557
+ * 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.
48558
+ * @summary Price a till\'s basket with the venue\'s promotions
48559
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
48560
+ * @param {PriceBasketDto} priceBasketDto
48561
+ * @param {*} [options] Override http request option.
48562
+ * @throws {RequiredError}
48563
+ */
48564
+ priceBasketWithPromotions(businessId: number, priceBasketDto: PriceBasketDto, options?: any): AxiosPromise<PriceBasketAnswerDto>;
48565
+ /**
48566
+ * 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.
48567
+ * @summary Price a kiosk\'s basket with the venue\'s promotions
48568
+ * @param {number} businessId The venue\&#39;s orderingBusinessId, the kiosk\&#39;s own venue
48569
+ * @param {PriceBasketDto} priceBasketDto
48570
+ * @param {*} [options] Override http request option.
48571
+ * @throws {RequiredError}
48572
+ */
48573
+ priceKioskBasketWithPromotions(businessId: number, priceBasketDto: PriceBasketDto, options?: any): AxiosPromise<PriceBasketAnswerDto>;
48574
+ };
48575
+ /**
48576
+ * PromotionsApi - interface
48577
+ * @export
48578
+ * @interface PromotionsApi
48579
+ */
48580
+ export interface PromotionsApiInterface {
48581
+ /**
48582
+ * 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.
48583
+ * @summary List the venue\'s automatic promotions running now on the POS
48584
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
48585
+ * @param {*} [options] Override http request option.
48586
+ * @throws {RequiredError}
48587
+ * @memberof PromotionsApiInterface
48588
+ */
48589
+ listAutomaticPromotions(businessId: number, options?: AxiosRequestConfig): AxiosPromise<AutomaticPromotionsAnswerDto>;
48590
+ /**
48591
+ * 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.
48592
+ * @summary List the venue\'s automatic promotions running now on the kiosk
48593
+ * @param {number} businessId The venue\&#39;s orderingBusinessId, the kiosk\&#39;s own venue
48594
+ * @param {*} [options] Override http request option.
48595
+ * @throws {RequiredError}
48596
+ * @memberof PromotionsApiInterface
48597
+ */
48598
+ listKioskAutomaticPromotions(businessId: number, options?: AxiosRequestConfig): AxiosPromise<AutomaticPromotionsAnswerDto>;
48599
+ /**
48600
+ * 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.
48601
+ * @summary Price a till\'s basket with the venue\'s promotions
48602
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
48603
+ * @param {PriceBasketDto} priceBasketDto
48604
+ * @param {*} [options] Override http request option.
48605
+ * @throws {RequiredError}
48606
+ * @memberof PromotionsApiInterface
48607
+ */
48608
+ priceBasketWithPromotions(businessId: number, priceBasketDto: PriceBasketDto, options?: AxiosRequestConfig): AxiosPromise<PriceBasketAnswerDto>;
48609
+ /**
48610
+ * 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.
48611
+ * @summary Price a kiosk\'s basket with the venue\'s promotions
48612
+ * @param {number} businessId The venue\&#39;s orderingBusinessId, the kiosk\&#39;s own venue
48613
+ * @param {PriceBasketDto} priceBasketDto
48614
+ * @param {*} [options] Override http request option.
48615
+ * @throws {RequiredError}
48616
+ * @memberof PromotionsApiInterface
48617
+ */
48618
+ priceKioskBasketWithPromotions(businessId: number, priceBasketDto: PriceBasketDto, options?: AxiosRequestConfig): AxiosPromise<PriceBasketAnswerDto>;
48619
+ }
48620
+ /**
48621
+ * PromotionsApi - object-oriented interface
48622
+ * @export
48623
+ * @class PromotionsApi
48624
+ * @extends {BaseAPI}
48625
+ */
48626
+ export declare class PromotionsApi extends BaseAPI implements PromotionsApiInterface {
48627
+ /**
48628
+ * 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.
48629
+ * @summary List the venue\'s automatic promotions running now on the POS
48630
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
48631
+ * @param {*} [options] Override http request option.
48632
+ * @throws {RequiredError}
48633
+ * @memberof PromotionsApi
48634
+ */
48635
+ listAutomaticPromotions(businessId: number, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<AutomaticPromotionsAnswerDto, any, {}>>;
48636
+ /**
48637
+ * 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.
48638
+ * @summary List the venue\'s automatic promotions running now on the kiosk
48639
+ * @param {number} businessId The venue\&#39;s orderingBusinessId, the kiosk\&#39;s own venue
48640
+ * @param {*} [options] Override http request option.
48641
+ * @throws {RequiredError}
48642
+ * @memberof PromotionsApi
48643
+ */
48644
+ listKioskAutomaticPromotions(businessId: number, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<AutomaticPromotionsAnswerDto, any, {}>>;
48645
+ /**
48646
+ * 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.
48647
+ * @summary Price a till\'s basket with the venue\'s promotions
48648
+ * @param {number} businessId The venue\&#39;s orderingBusinessId
48649
+ * @param {PriceBasketDto} priceBasketDto
48650
+ * @param {*} [options] Override http request option.
48651
+ * @throws {RequiredError}
48652
+ * @memberof PromotionsApi
48653
+ */
48654
+ priceBasketWithPromotions(businessId: number, priceBasketDto: PriceBasketDto, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<PriceBasketAnswerDto, any, {}>>;
48655
+ /**
48656
+ * 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.
48657
+ * @summary Price a kiosk\'s basket with the venue\'s promotions
48658
+ * @param {number} businessId The venue\&#39;s orderingBusinessId, the kiosk\&#39;s own venue
48659
+ * @param {PriceBasketDto} priceBasketDto
48660
+ * @param {*} [options] Override http request option.
48661
+ * @throws {RequiredError}
48662
+ * @memberof PromotionsApi
48663
+ */
48664
+ priceKioskBasketWithPromotions(businessId: number, priceBasketDto: PriceBasketDto, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<PriceBasketAnswerDto, any, {}>>;
48665
+ }
46603
48666
  /**
46604
48667
  * ProviderApi - axios parameter creator
46605
48668
  * @export
@@ -47553,6 +49616,37 @@ export declare class RefundsApi extends BaseAPI implements RefundsApiInterface {
47553
49616
  * @export
47554
49617
  */
47555
49618
  export declare const ReportApiAxiosParamCreator: (configuration?: Configuration) => {
49619
+ /**
49620
+ * 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.
49621
+ * @summary Items bought together in one order, over the period
49622
+ * @param {Array<number>} businessIds The venues asked about, by business id
49623
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
49624
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49625
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49626
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
49627
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
49628
+ * @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
49629
+ * @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
49630
+ * @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
49631
+ * @param {number} [limit] How many pairs each group answers, most orders first: 1 to 100. Absent: 20
49632
+ * @param {*} [options] Override http request option.
49633
+ * @throws {RequiredError}
49634
+ */
49635
+ 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<RequestArgs>;
49636
+ /**
49637
+ * 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.
49638
+ * @summary End-of-day sales report of a venue as a PDF file to download, for a day, week, month, year or custom period
49639
+ * @param {number} businessId The venue the file is of, by business id
49640
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
49641
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49642
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49643
+ * @param {string} [timezone] The IANA time zone the period\&#39;s days are counted in. Absent: the venue\&#39;s own
49644
+ * @param {ProviderEnum} [provider] The order source the report counts. Absent: MunchiPos, as the till\&#39;s report
49645
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
49646
+ * @param {*} [options] Override http request option.
49647
+ * @throws {RequiredError}
49648
+ */
49649
+ getEndOfDayReportFile: (businessId: number, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, provider?: ProviderEnum, language?: ReportLanguage, options?: AxiosRequestConfig) => Promise<RequestArgs>;
47556
49650
  /**
47557
49651
  *
47558
49652
  * @summary Get end-of-day financial report (V5)
@@ -47580,11 +49674,77 @@ export declare const ReportApiAxiosParamCreator: (configuration?: Configuration)
47580
49674
  * @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
47581
49675
  * @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
47582
49676
  * @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
49677
+ * @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
49678
+ * @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
49679
+ * @param {*} [options] Override http request option.
49680
+ * @throws {RequiredError}
49681
+ */
49682
+ 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<RequestArgs>;
49683
+ /**
49684
+ * 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.
49685
+ * @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
49686
+ * @param {number} businessId The venue the file is of, by business id
49687
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
49688
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49689
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49690
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the venue\&#39;s own (Business.timeZone)
49691
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
49692
+ * @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
49693
+ * @param {*} [options] Override http request option.
49694
+ * @throws {RequiredError}
49695
+ */
49696
+ getSalesReportFile: (businessId: number, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, language?: ReportLanguage, format?: FileFormat, options?: AxiosRequestConfig) => Promise<RequestArgs>;
49697
+ /**
49698
+ * 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.
49699
+ * @summary Sales of the venues and apps per hour of the day, with each hour\'s average day
49700
+ * @param {Array<number>} businessIds The venues asked about, by business id
49701
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
49702
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49703
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49704
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
49705
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
49706
+ * @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
49707
+ * @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
49708
+ * @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
49709
+ * @param {*} [options] Override http request option.
49710
+ * @throws {RequiredError}
49711
+ */
49712
+ getSalesReportHours: (businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, isoWeekday?: number, options?: AxiosRequestConfig) => Promise<RequestArgs>;
49713
+ /**
49714
+ * 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.
49715
+ * @summary Sales of the venues and apps per order type: eat in, takeaway, delivery
49716
+ * @param {Array<number>} businessIds The venues asked about, by business id
49717
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
49718
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49719
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49720
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
49721
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
49722
+ * @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
49723
+ * @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
49724
+ * @param {*} [options] Override http request option.
49725
+ * @throws {RequiredError}
49726
+ */
49727
+ getSalesReportOrderTypes: (businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, options?: AxiosRequestConfig) => Promise<RequestArgs>;
49728
+ /**
49729
+ * 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.
49730
+ * @summary Sales report of the venues and apps, short: totals, categories and best-selling items
49731
+ * @param {Array<number>} businessIds The venues asked about, by business id
49732
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
49733
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49734
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49735
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
49736
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
49737
+ * @param {Array<ReportPart>} [parts] The parts to answer, the parameter repeated or a JSON list; only their daily tables are read. Absent: all five
49738
+ * @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
49739
+ * @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
49740
+ * @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
49741
+ * @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
49742
+ * @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
47583
49743
  * @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
47584
49744
  * @param {*} [options] Override http request option.
47585
49745
  * @throws {RequiredError}
47586
49746
  */
47587
- 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<RequestArgs>;
49747
+ 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<RequestArgs>;
47588
49748
  /**
47589
49749
  *
47590
49750
  * @summary Send end-of-day report via email (V5)
@@ -47605,6 +49765,37 @@ export declare const ReportApiAxiosParamCreator: (configuration?: Configuration)
47605
49765
  * @export
47606
49766
  */
47607
49767
  export declare const ReportApiFp: (configuration?: Configuration) => {
49768
+ /**
49769
+ * 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.
49770
+ * @summary Items bought together in one order, over the period
49771
+ * @param {Array<number>} businessIds The venues asked about, by business id
49772
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
49773
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49774
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49775
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
49776
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
49777
+ * @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
49778
+ * @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
49779
+ * @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
49780
+ * @param {number} [limit] How many pairs each group answers, most orders first: 1 to 100. Absent: 20
49781
+ * @param {*} [options] Override http request option.
49782
+ * @throws {RequiredError}
49783
+ */
49784
+ 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>>;
49785
+ /**
49786
+ * 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.
49787
+ * @summary End-of-day sales report of a venue as a PDF file to download, for a day, week, month, year or custom period
49788
+ * @param {number} businessId The venue the file is of, by business id
49789
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
49790
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49791
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49792
+ * @param {string} [timezone] The IANA time zone the period\&#39;s days are counted in. Absent: the venue\&#39;s own
49793
+ * @param {ProviderEnum} [provider] The order source the report counts. Absent: MunchiPos, as the till\&#39;s report
49794
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
49795
+ * @param {*} [options] Override http request option.
49796
+ * @throws {RequiredError}
49797
+ */
49798
+ getEndOfDayReportFile(businessId: number, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, provider?: ProviderEnum, language?: ReportLanguage, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<File>>;
47608
49799
  /**
47609
49800
  *
47610
49801
  * @summary Get end-of-day financial report (V5)
@@ -47632,11 +49823,77 @@ export declare const ReportApiFp: (configuration?: Configuration) => {
47632
49823
  * @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
47633
49824
  * @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
47634
49825
  * @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
49826
+ * @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
47635
49827
  * @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
47636
49828
  * @param {*} [options] Override http request option.
47637
49829
  * @throws {RequiredError}
47638
49830
  */
47639
- 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>>;
49831
+ 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>>;
49832
+ /**
49833
+ * 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.
49834
+ * @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
49835
+ * @param {number} businessId The venue the file is of, by business id
49836
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
49837
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49838
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49839
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the venue\&#39;s own (Business.timeZone)
49840
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
49841
+ * @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
49842
+ * @param {*} [options] Override http request option.
49843
+ * @throws {RequiredError}
49844
+ */
49845
+ getSalesReportFile(businessId: number, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, language?: ReportLanguage, format?: FileFormat, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<File>>;
49846
+ /**
49847
+ * 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.
49848
+ * @summary Sales of the venues and apps per hour of the day, with each hour\'s average day
49849
+ * @param {Array<number>} businessIds The venues asked about, by business id
49850
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
49851
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49852
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49853
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
49854
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
49855
+ * @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
49856
+ * @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
49857
+ * @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
49858
+ * @param {*} [options] Override http request option.
49859
+ * @throws {RequiredError}
49860
+ */
49861
+ 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>>;
49862
+ /**
49863
+ * 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.
49864
+ * @summary Sales of the venues and apps per order type: eat in, takeaway, delivery
49865
+ * @param {Array<number>} businessIds The venues asked about, by business id
49866
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
49867
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49868
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49869
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
49870
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
49871
+ * @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
49872
+ * @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
49873
+ * @param {*} [options] Override http request option.
49874
+ * @throws {RequiredError}
49875
+ */
49876
+ 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>>;
49877
+ /**
49878
+ * 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.
49879
+ * @summary Sales report of the venues and apps, short: totals, categories and best-selling items
49880
+ * @param {Array<number>} businessIds The venues asked about, by business id
49881
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
49882
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49883
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49884
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
49885
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
49886
+ * @param {Array<ReportPart>} [parts] The parts to answer, the parameter repeated or a JSON list; only their daily tables are read. Absent: all five
49887
+ * @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
49888
+ * @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
49889
+ * @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
49890
+ * @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
49891
+ * @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
49892
+ * @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
49893
+ * @param {*} [options] Override http request option.
49894
+ * @throws {RequiredError}
49895
+ */
49896
+ 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>>;
47640
49897
  /**
47641
49898
  *
47642
49899
  * @summary Send end-of-day report via email (V5)
@@ -47657,6 +49914,37 @@ export declare const ReportApiFp: (configuration?: Configuration) => {
47657
49914
  * @export
47658
49915
  */
47659
49916
  export declare const ReportApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
49917
+ /**
49918
+ * 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.
49919
+ * @summary Items bought together in one order, over the period
49920
+ * @param {Array<number>} businessIds The venues asked about, by business id
49921
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
49922
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49923
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49924
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
49925
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
49926
+ * @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
49927
+ * @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
49928
+ * @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
49929
+ * @param {number} [limit] How many pairs each group answers, most orders first: 1 to 100. Absent: 20
49930
+ * @param {*} [options] Override http request option.
49931
+ * @throws {RequiredError}
49932
+ */
49933
+ 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>;
49934
+ /**
49935
+ * 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.
49936
+ * @summary End-of-day sales report of a venue as a PDF file to download, for a day, week, month, year or custom period
49937
+ * @param {number} businessId The venue the file is of, by business id
49938
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
49939
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49940
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49941
+ * @param {string} [timezone] The IANA time zone the period\&#39;s days are counted in. Absent: the venue\&#39;s own
49942
+ * @param {ProviderEnum} [provider] The order source the report counts. Absent: MunchiPos, as the till\&#39;s report
49943
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
49944
+ * @param {*} [options] Override http request option.
49945
+ * @throws {RequiredError}
49946
+ */
49947
+ getEndOfDayReportFile(businessId: number, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, provider?: ProviderEnum, language?: ReportLanguage, options?: any): AxiosPromise<File>;
47660
49948
  /**
47661
49949
  *
47662
49950
  * @summary Get end-of-day financial report (V5)
@@ -47684,11 +49972,77 @@ export declare const ReportApiFactory: (configuration?: Configuration, basePath?
47684
49972
  * @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
47685
49973
  * @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
47686
49974
  * @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
49975
+ * @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
49976
+ * @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
49977
+ * @param {*} [options] Override http request option.
49978
+ * @throws {RequiredError}
49979
+ */
49980
+ 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>;
49981
+ /**
49982
+ * 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.
49983
+ * @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
49984
+ * @param {number} businessId The venue the file is of, by business id
49985
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
49986
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49987
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
49988
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the venue\&#39;s own (Business.timeZone)
49989
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
49990
+ * @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
49991
+ * @param {*} [options] Override http request option.
49992
+ * @throws {RequiredError}
49993
+ */
49994
+ getSalesReportFile(businessId: number, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, language?: ReportLanguage, format?: FileFormat, options?: any): AxiosPromise<File>;
49995
+ /**
49996
+ * 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.
49997
+ * @summary Sales of the venues and apps per hour of the day, with each hour\'s average day
49998
+ * @param {Array<number>} businessIds The venues asked about, by business id
49999
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
50000
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50001
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50002
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
50003
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
50004
+ * @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
50005
+ * @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
50006
+ * @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
50007
+ * @param {*} [options] Override http request option.
50008
+ * @throws {RequiredError}
50009
+ */
50010
+ 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>;
50011
+ /**
50012
+ * 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.
50013
+ * @summary Sales of the venues and apps per order type: eat in, takeaway, delivery
50014
+ * @param {Array<number>} businessIds The venues asked about, by business id
50015
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
50016
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50017
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50018
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
50019
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
50020
+ * @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
50021
+ * @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
50022
+ * @param {*} [options] Override http request option.
50023
+ * @throws {RequiredError}
50024
+ */
50025
+ getSalesReportOrderTypes(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, options?: any): AxiosPromise<SalesReportOrderTypesResponseDto>;
50026
+ /**
50027
+ * 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.
50028
+ * @summary Sales report of the venues and apps, short: totals, categories and best-selling items
50029
+ * @param {Array<number>} businessIds The venues asked about, by business id
50030
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
50031
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50032
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50033
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
50034
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
50035
+ * @param {Array<ReportPart>} [parts] The parts to answer, the parameter repeated or a JSON list; only their daily tables are read. Absent: all five
50036
+ * @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
50037
+ * @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
50038
+ * @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
50039
+ * @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
50040
+ * @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
47687
50041
  * @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
47688
50042
  * @param {*} [options] Override http request option.
47689
50043
  * @throws {RequiredError}
47690
50044
  */
47691
- 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>;
50045
+ 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>;
47692
50046
  /**
47693
50047
  *
47694
50048
  * @summary Send end-of-day report via email (V5)
@@ -47710,6 +50064,39 @@ export declare const ReportApiFactory: (configuration?: Configuration, basePath?
47710
50064
  * @interface ReportApi
47711
50065
  */
47712
50066
  export interface ReportApiInterface {
50067
+ /**
50068
+ * 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.
50069
+ * @summary Items bought together in one order, over the period
50070
+ * @param {Array<number>} businessIds The venues asked about, by business id
50071
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
50072
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50073
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50074
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
50075
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
50076
+ * @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
50077
+ * @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
50078
+ * @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
50079
+ * @param {number} [limit] How many pairs each group answers, most orders first: 1 to 100. Absent: 20
50080
+ * @param {*} [options] Override http request option.
50081
+ * @throws {RequiredError}
50082
+ * @memberof ReportApiInterface
50083
+ */
50084
+ 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>;
50085
+ /**
50086
+ * 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.
50087
+ * @summary End-of-day sales report of a venue as a PDF file to download, for a day, week, month, year or custom period
50088
+ * @param {number} businessId The venue the file is of, by business id
50089
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
50090
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50091
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50092
+ * @param {string} [timezone] The IANA time zone the period\&#39;s days are counted in. Absent: the venue\&#39;s own
50093
+ * @param {ProviderEnum} [provider] The order source the report counts. Absent: MunchiPos, as the till\&#39;s report
50094
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
50095
+ * @param {*} [options] Override http request option.
50096
+ * @throws {RequiredError}
50097
+ * @memberof ReportApiInterface
50098
+ */
50099
+ getEndOfDayReportFile(businessId: number, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, provider?: ProviderEnum, language?: ReportLanguage, options?: AxiosRequestConfig): AxiosPromise<File>;
47713
50100
  /**
47714
50101
  *
47715
50102
  * @summary Get end-of-day financial report (V5)
@@ -47738,12 +50125,82 @@ export interface ReportApiInterface {
47738
50125
  * @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
47739
50126
  * @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
47740
50127
  * @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
50128
+ * @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
47741
50129
  * @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
47742
50130
  * @param {*} [options] Override http request option.
47743
50131
  * @throws {RequiredError}
47744
50132
  * @memberof ReportApiInterface
47745
50133
  */
47746
- 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>;
50134
+ 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>;
50135
+ /**
50136
+ * 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.
50137
+ * @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
50138
+ * @param {number} businessId The venue the file is of, by business id
50139
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
50140
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50141
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50142
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the venue\&#39;s own (Business.timeZone)
50143
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
50144
+ * @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
50145
+ * @param {*} [options] Override http request option.
50146
+ * @throws {RequiredError}
50147
+ * @memberof ReportApiInterface
50148
+ */
50149
+ getSalesReportFile(businessId: number, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, language?: ReportLanguage, format?: FileFormat, options?: AxiosRequestConfig): AxiosPromise<File>;
50150
+ /**
50151
+ * 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.
50152
+ * @summary Sales of the venues and apps per hour of the day, with each hour\'s average day
50153
+ * @param {Array<number>} businessIds The venues asked about, by business id
50154
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
50155
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50156
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50157
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
50158
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
50159
+ * @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
50160
+ * @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
50161
+ * @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
50162
+ * @param {*} [options] Override http request option.
50163
+ * @throws {RequiredError}
50164
+ * @memberof ReportApiInterface
50165
+ */
50166
+ 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>;
50167
+ /**
50168
+ * 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.
50169
+ * @summary Sales of the venues and apps per order type: eat in, takeaway, delivery
50170
+ * @param {Array<number>} businessIds The venues asked about, by business id
50171
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
50172
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50173
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50174
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
50175
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
50176
+ * @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
50177
+ * @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
50178
+ * @param {*} [options] Override http request option.
50179
+ * @throws {RequiredError}
50180
+ * @memberof ReportApiInterface
50181
+ */
50182
+ getSalesReportOrderTypes(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, options?: AxiosRequestConfig): AxiosPromise<SalesReportOrderTypesResponseDto>;
50183
+ /**
50184
+ * 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.
50185
+ * @summary Sales report of the venues and apps, short: totals, categories and best-selling items
50186
+ * @param {Array<number>} businessIds The venues asked about, by business id
50187
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
50188
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50189
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50190
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
50191
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
50192
+ * @param {Array<ReportPart>} [parts] The parts to answer, the parameter repeated or a JSON list; only their daily tables are read. Absent: all five
50193
+ * @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
50194
+ * @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
50195
+ * @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
50196
+ * @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
50197
+ * @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
50198
+ * @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
50199
+ * @param {*} [options] Override http request option.
50200
+ * @throws {RequiredError}
50201
+ * @memberof ReportApiInterface
50202
+ */
50203
+ 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>;
47747
50204
  /**
47748
50205
  *
47749
50206
  * @summary Send end-of-day report via email (V5)
@@ -47767,6 +50224,39 @@ export interface ReportApiInterface {
47767
50224
  * @extends {BaseAPI}
47768
50225
  */
47769
50226
  export declare class ReportApi extends BaseAPI implements ReportApiInterface {
50227
+ /**
50228
+ * 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.
50229
+ * @summary Items bought together in one order, over the period
50230
+ * @param {Array<number>} businessIds The venues asked about, by business id
50231
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
50232
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50233
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50234
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
50235
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
50236
+ * @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
50237
+ * @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
50238
+ * @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
50239
+ * @param {number} [limit] How many pairs each group answers, most orders first: 1 to 100. Absent: 20
50240
+ * @param {*} [options] Override http request option.
50241
+ * @throws {RequiredError}
50242
+ * @memberof ReportApi
50243
+ */
50244
+ 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<import("axios").AxiosResponse<SalesReportBoughtTogetherResponseDto, any, {}>>;
50245
+ /**
50246
+ * 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.
50247
+ * @summary End-of-day sales report of a venue as a PDF file to download, for a day, week, month, year or custom period
50248
+ * @param {number} businessId The venue the file is of, by business id
50249
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
50250
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50251
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50252
+ * @param {string} [timezone] The IANA time zone the period\&#39;s days are counted in. Absent: the venue\&#39;s own
50253
+ * @param {ProviderEnum} [provider] The order source the report counts. Absent: MunchiPos, as the till\&#39;s report
50254
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
50255
+ * @param {*} [options] Override http request option.
50256
+ * @throws {RequiredError}
50257
+ * @memberof ReportApi
50258
+ */
50259
+ getEndOfDayReportFile(businessId: number, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, provider?: ProviderEnum, language?: ReportLanguage, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<File, any, {}>>;
47770
50260
  /**
47771
50261
  *
47772
50262
  * @summary Get end-of-day financial report (V5)
@@ -47795,12 +50285,82 @@ export declare class ReportApi extends BaseAPI implements ReportApiInterface {
47795
50285
  * @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
47796
50286
  * @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
47797
50287
  * @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
50288
+ * @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
50289
+ * @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
50290
+ * @param {*} [options] Override http request option.
50291
+ * @throws {RequiredError}
50292
+ * @memberof ReportApi
50293
+ */
50294
+ 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<import("axios").AxiosResponse<SalesReportResponseDto, any, {}>>;
50295
+ /**
50296
+ * 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.
50297
+ * @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
50298
+ * @param {number} businessId The venue the file is of, by business id
50299
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
50300
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50301
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50302
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the venue\&#39;s own (Business.timeZone)
50303
+ * @param {ReportLanguage} [language] The language the file is printed in. Absent: English
50304
+ * @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
50305
+ * @param {*} [options] Override http request option.
50306
+ * @throws {RequiredError}
50307
+ * @memberof ReportApi
50308
+ */
50309
+ getSalesReportFile(businessId: number, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, language?: ReportLanguage, format?: FileFormat, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<File, any, {}>>;
50310
+ /**
50311
+ * 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.
50312
+ * @summary Sales of the venues and apps per hour of the day, with each hour\'s average day
50313
+ * @param {Array<number>} businessIds The venues asked about, by business id
50314
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
50315
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50316
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50317
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
50318
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
50319
+ * @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
50320
+ * @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
50321
+ * @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
50322
+ * @param {*} [options] Override http request option.
50323
+ * @throws {RequiredError}
50324
+ * @memberof ReportApi
50325
+ */
50326
+ getSalesReportHours(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, isoWeekday?: number, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<SalesReportHoursResponseDto, any, {}>>;
50327
+ /**
50328
+ * 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.
50329
+ * @summary Sales of the venues and apps per order type: eat in, takeaway, delivery
50330
+ * @param {Array<number>} businessIds The venues asked about, by business id
50331
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
50332
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50333
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50334
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
50335
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
50336
+ * @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
50337
+ * @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
50338
+ * @param {*} [options] Override http request option.
50339
+ * @throws {RequiredError}
50340
+ * @memberof ReportApi
50341
+ */
50342
+ getSalesReportOrderTypes(businessIds: Array<number>, timeSpan?: TimeSpan, start?: string, end?: string, timezone?: string, apps?: Array<ReportApp>, breakdown?: ReportBreakdown, language?: string, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<SalesReportOrderTypesResponseDto, any, {}>>;
50343
+ /**
50344
+ * 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.
50345
+ * @summary Sales report of the venues and apps, short: totals, categories and best-selling items
50346
+ * @param {Array<number>} businessIds The venues asked about, by business id
50347
+ * @param {TimeSpan} [timeSpan] The period asked for: DAY, WEEK, MONTH, YEAR, or CUSTOM between start and end
50348
+ * @param {string} [start] The first day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50349
+ * @param {string} [end] The last day of a CUSTOM period, an ISO 8601 date; required with CUSTOM
50350
+ * @param {string} [timezone] The time zone the period is read in, IANA. Absent: the first venue\&#39;s own (Business.timeZone)
50351
+ * @param {Array<ReportApp>} [apps] The apps to add up, the parameter repeated or a JSON list. Absent: all four
50352
+ * @param {Array<ReportPart>} [parts] The parts to answer, the parameter repeated or a JSON list; only their daily tables are read. Absent: all five
50353
+ * @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
50354
+ * @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
50355
+ * @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
50356
+ * @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
50357
+ * @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
47798
50358
  * @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
47799
50359
  * @param {*} [options] Override http request option.
47800
50360
  * @throws {RequiredError}
47801
50361
  * @memberof ReportApi
47802
50362
  */
47803
- 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<import("axios").AxiosResponse<SalesReportResponseDto, any, {}>>;
50363
+ 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<import("axios").AxiosResponse<SalesReportShortResponseDto, any, {}>>;
47804
50364
  /**
47805
50365
  *
47806
50366
  * @summary Send end-of-day report via email (V5)