order3000 0.25.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.cts +962 -848
- package/dist/client.d.mts +962 -848
- package/dist/schemas.cjs +1649 -230
- package/dist/schemas.d.cts +1537 -183
- package/dist/schemas.d.mts +1537 -183
- package/dist/schemas.mjs +1649 -230
- package/package.json +6 -5
package/dist/client.d.cts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { CurrencyCode } from '@kolaveri/money';
|
|
2
1
|
import { z as z$1 } from 'zod';
|
|
3
2
|
import { z } from 'zod/v4';
|
|
4
3
|
import { RealtimePostgresChangesPayload, RealtimeChannel, SupabaseClient } from '@supabase/supabase-js';
|
|
@@ -66,7 +65,7 @@ interface components {
|
|
|
66
65
|
schemas: {
|
|
67
66
|
/**
|
|
68
67
|
* Area
|
|
69
|
-
* @description A bookable + public area for a venue. Assets are only included when the request expands them.
|
|
68
|
+
* @description A bookable + public area for a venue. Assets are only included when the request expands them. Operational flags (`isActive`, `isPublic`, `isBookable`) and audit columns are only populated for authenticated venue staff.
|
|
70
69
|
*/
|
|
71
70
|
Area: {
|
|
72
71
|
id: string;
|
|
@@ -83,8 +82,7 @@ interface components {
|
|
|
83
82
|
} | null;
|
|
84
83
|
minCapacity: number | null;
|
|
85
84
|
maxCapacity: number;
|
|
86
|
-
|
|
87
|
-
currency: "EUR" | "CHF";
|
|
85
|
+
currency: components["schemas"]["Currency"];
|
|
88
86
|
basePrice: number | null;
|
|
89
87
|
perPersonPrice: number | null;
|
|
90
88
|
features: {
|
|
@@ -96,12 +94,13 @@ interface components {
|
|
|
96
94
|
[key: string]: string;
|
|
97
95
|
};
|
|
98
96
|
}[] | null;
|
|
99
|
-
|
|
100
|
-
|
|
97
|
+
bookingMode: components["schemas"]["AreaBookingMode"];
|
|
98
|
+
isBookable?: boolean;
|
|
99
|
+
isPublic?: boolean;
|
|
100
|
+
isActive?: boolean;
|
|
101
101
|
assets?: {
|
|
102
102
|
id: string;
|
|
103
|
-
|
|
104
|
-
type: "image" | "video" | "document";
|
|
103
|
+
type: components["schemas"]["AssetType"];
|
|
105
104
|
tags: string[] | null;
|
|
106
105
|
filename: string;
|
|
107
106
|
contentType: string;
|
|
@@ -120,13 +119,13 @@ interface components {
|
|
|
120
119
|
publicUrl: string;
|
|
121
120
|
}[];
|
|
122
121
|
};
|
|
123
|
-
/**
|
|
124
|
-
|
|
122
|
+
/** FetchAreasResponse */
|
|
123
|
+
FetchAreasResponse: components["schemas"]["Area"][];
|
|
125
124
|
/**
|
|
126
|
-
*
|
|
127
|
-
* @description A bookable + public area for a venue. Assets are only included when the request expands them.
|
|
125
|
+
* FetchAreaResponse
|
|
126
|
+
* @description A bookable + public area for a venue. Assets are only included when the request expands them. Operational flags (`isActive`, `isPublic`, `isBookable`) and audit columns are only populated for authenticated venue staff.
|
|
128
127
|
*/
|
|
129
|
-
|
|
128
|
+
FetchAreaResponse: {
|
|
130
129
|
id: string;
|
|
131
130
|
venueId: string;
|
|
132
131
|
accessor: string;
|
|
@@ -141,8 +140,7 @@ interface components {
|
|
|
141
140
|
} | null;
|
|
142
141
|
minCapacity: number | null;
|
|
143
142
|
maxCapacity: number;
|
|
144
|
-
|
|
145
|
-
currency: "EUR" | "CHF";
|
|
143
|
+
currency: components["schemas"]["Currency"];
|
|
146
144
|
basePrice: number | null;
|
|
147
145
|
perPersonPrice: number | null;
|
|
148
146
|
features: {
|
|
@@ -154,12 +152,13 @@ interface components {
|
|
|
154
152
|
[key: string]: string;
|
|
155
153
|
};
|
|
156
154
|
}[] | null;
|
|
157
|
-
|
|
158
|
-
|
|
155
|
+
bookingMode: components["schemas"]["AreaBookingMode"];
|
|
156
|
+
isBookable?: boolean;
|
|
157
|
+
isPublic?: boolean;
|
|
158
|
+
isActive?: boolean;
|
|
159
159
|
assets?: {
|
|
160
160
|
id: string;
|
|
161
|
-
|
|
162
|
-
type: "image" | "video" | "document";
|
|
161
|
+
type: components["schemas"]["AssetType"];
|
|
163
162
|
tags: string[] | null;
|
|
164
163
|
filename: string;
|
|
165
164
|
contentType: string;
|
|
@@ -182,16 +181,30 @@ interface components {
|
|
|
182
181
|
GetAreaAvailabilityResponse: {
|
|
183
182
|
from: string;
|
|
184
183
|
to: string;
|
|
185
|
-
|
|
186
|
-
bookingMode: "slot" | "day";
|
|
184
|
+
bookingMode: components["schemas"]["AreaBookingMode"];
|
|
187
185
|
occupied: {
|
|
188
186
|
date: string;
|
|
189
187
|
startTime: string | null;
|
|
190
188
|
endTime: string | null;
|
|
191
189
|
}[];
|
|
192
190
|
};
|
|
193
|
-
/**
|
|
194
|
-
|
|
191
|
+
/** FetchAreaBookingsResponse */
|
|
192
|
+
FetchAreaBookingsResponse: {
|
|
193
|
+
id: string;
|
|
194
|
+
areaId: string;
|
|
195
|
+
bookingDate: string;
|
|
196
|
+
startTime: string | null;
|
|
197
|
+
endTime: string | null;
|
|
198
|
+
partySize: number;
|
|
199
|
+
status: components["schemas"]["AreaBookingStatus"];
|
|
200
|
+
customerFirstName?: string;
|
|
201
|
+
customerLastName?: string;
|
|
202
|
+
totalPrice?: number;
|
|
203
|
+
currency?: components["schemas"]["Currency"];
|
|
204
|
+
confirmationCode?: string | null;
|
|
205
|
+
}[];
|
|
206
|
+
/** SubmitAreaBookingPayload */
|
|
207
|
+
SubmitAreaBookingPayload: {
|
|
195
208
|
requestedDate: string;
|
|
196
209
|
requestedStartTime?: string;
|
|
197
210
|
requestedEndTime?: string;
|
|
@@ -202,11 +215,10 @@ interface components {
|
|
|
202
215
|
customerEmail: string;
|
|
203
216
|
customerPhone?: string;
|
|
204
217
|
message?: string;
|
|
205
|
-
|
|
206
|
-
source?: "website" | "phone" | "walk_in";
|
|
218
|
+
source?: components["schemas"]["AreaBookingRequestSource"];
|
|
207
219
|
};
|
|
208
|
-
/**
|
|
209
|
-
|
|
220
|
+
/** SubmitAreaBookingRequestResponse */
|
|
221
|
+
SubmitAreaBookingRequestResponse: {
|
|
210
222
|
id: string;
|
|
211
223
|
venueId: string;
|
|
212
224
|
areaId: string;
|
|
@@ -219,10 +231,8 @@ interface components {
|
|
|
219
231
|
customerEmail: string;
|
|
220
232
|
customerPhone: string | null;
|
|
221
233
|
message: string | null;
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
/** @enum {string} */
|
|
225
|
-
status: "pending" | "approved" | "rejected" | "cancelled";
|
|
234
|
+
source: components["schemas"]["AreaBookingRequestSource"];
|
|
235
|
+
status: components["schemas"]["AreaBookingRequestStatus"];
|
|
226
236
|
areaBookingId: string | null;
|
|
227
237
|
createdAt: string | null;
|
|
228
238
|
updatedAt: string | null;
|
|
@@ -295,8 +305,7 @@ interface components {
|
|
|
295
305
|
isActive: boolean;
|
|
296
306
|
isFeatured: boolean;
|
|
297
307
|
priority: number;
|
|
298
|
-
|
|
299
|
-
status: "draft" | "published";
|
|
308
|
+
status: components["schemas"]["ArticleStatus"];
|
|
300
309
|
publishedAt: string | null;
|
|
301
310
|
createdAt: string | null;
|
|
302
311
|
updatedAt: string | null;
|
|
@@ -340,8 +349,7 @@ interface components {
|
|
|
340
349
|
isActive: boolean;
|
|
341
350
|
isFeatured: boolean;
|
|
342
351
|
priority: number;
|
|
343
|
-
|
|
344
|
-
status: "draft" | "published";
|
|
352
|
+
status: components["schemas"]["ArticleStatus"];
|
|
345
353
|
publishedAt: string | null;
|
|
346
354
|
createdAt: string | null;
|
|
347
355
|
updatedAt: string | null;
|
|
@@ -409,24 +417,23 @@ interface components {
|
|
|
409
417
|
isActive: boolean;
|
|
410
418
|
isFeatured: boolean;
|
|
411
419
|
priority: number;
|
|
412
|
-
|
|
413
|
-
status: "draft" | "published";
|
|
420
|
+
status: components["schemas"]["ArticleStatus"];
|
|
414
421
|
publishedAt: string | null;
|
|
415
422
|
createdAt: string | null;
|
|
416
423
|
updatedAt: string | null;
|
|
417
424
|
featureImage: components["schemas"]["FeatureImage"] | null;
|
|
418
425
|
ogImage?: components["schemas"]["OgImage"] | null;
|
|
419
426
|
};
|
|
420
|
-
/**
|
|
421
|
-
|
|
427
|
+
/** SetArticleFeatureImageUploadBody */
|
|
428
|
+
SetArticleFeatureImageUploadBody: {
|
|
422
429
|
/** @description Image file (multipart/form-data field) */
|
|
423
|
-
file:
|
|
430
|
+
file: string;
|
|
424
431
|
};
|
|
425
432
|
/**
|
|
426
|
-
*
|
|
433
|
+
* PatchArticleFeatureImageBody
|
|
427
434
|
* @description Locale-keyed merge of the asset-side `caption` and `alt` records. Each locale value may be a plain string OR a TipTap doc; strings are wrapped server-side. Setting `en` does not touch `de`.
|
|
428
435
|
*/
|
|
429
|
-
|
|
436
|
+
PatchArticleFeatureImageBody: {
|
|
430
437
|
caption?: {
|
|
431
438
|
[key: string]: unknown;
|
|
432
439
|
};
|
|
@@ -436,8 +443,7 @@ interface components {
|
|
|
436
443
|
};
|
|
437
444
|
/** BasketTotals */
|
|
438
445
|
BasketTotals: {
|
|
439
|
-
|
|
440
|
-
currency: "EUR" | "CHF";
|
|
446
|
+
currency: components["schemas"]["Currency"];
|
|
441
447
|
itemsTotal: number;
|
|
442
448
|
taxAmount: number;
|
|
443
449
|
depositCharge: number;
|
|
@@ -450,6 +456,44 @@ interface components {
|
|
|
450
456
|
count: number;
|
|
451
457
|
}[];
|
|
452
458
|
};
|
|
459
|
+
/** FetchBasketResponse */
|
|
460
|
+
FetchBasketResponse: {
|
|
461
|
+
/** Format: uuid */
|
|
462
|
+
id: string;
|
|
463
|
+
sessionId: string;
|
|
464
|
+
status: components["schemas"]["BasketStatus"];
|
|
465
|
+
currency: components["schemas"]["Currency"];
|
|
466
|
+
items: {
|
|
467
|
+
/** Format: uuid */
|
|
468
|
+
id: string;
|
|
469
|
+
metadata: {
|
|
470
|
+
[key: string]: unknown;
|
|
471
|
+
} | null;
|
|
472
|
+
deposit: {
|
|
473
|
+
depositwareTemplateId: string;
|
|
474
|
+
name: {
|
|
475
|
+
[key: string]: string;
|
|
476
|
+
};
|
|
477
|
+
amount: number;
|
|
478
|
+
currency: components["schemas"]["Currency"];
|
|
479
|
+
} | null;
|
|
480
|
+
menuItems: {
|
|
481
|
+
menuItemId: string;
|
|
482
|
+
role: string | null;
|
|
483
|
+
quantity: number;
|
|
484
|
+
unit: components["schemas"]["Unit"];
|
|
485
|
+
}[];
|
|
486
|
+
}[];
|
|
487
|
+
itemCount: number;
|
|
488
|
+
totals: components["schemas"]["BasketTotals"];
|
|
489
|
+
declaredReturns: {
|
|
490
|
+
depositwareTemplateId: string;
|
|
491
|
+
count: number;
|
|
492
|
+
}[];
|
|
493
|
+
expiresAt: string;
|
|
494
|
+
createdAt: string | null;
|
|
495
|
+
updatedAt: string | null;
|
|
496
|
+
};
|
|
453
497
|
/**
|
|
454
498
|
* AddToBasketRequest
|
|
455
499
|
* @description Add an item to the shopping basket
|
|
@@ -462,8 +506,7 @@ interface components {
|
|
|
462
506
|
menuItemId: string;
|
|
463
507
|
role?: string;
|
|
464
508
|
quantity?: number;
|
|
465
|
-
|
|
466
|
-
unit?: "grams" | "kilograms" | "liters" | "milliliters" | "pieces";
|
|
509
|
+
unit?: components["schemas"]["Unit"];
|
|
467
510
|
}[];
|
|
468
511
|
metadata?: {
|
|
469
512
|
[key: string]: unknown;
|
|
@@ -480,8 +523,7 @@ interface components {
|
|
|
480
523
|
[key: string]: string;
|
|
481
524
|
};
|
|
482
525
|
amount: number;
|
|
483
|
-
|
|
484
|
-
currency: "EUR" | "CHF";
|
|
526
|
+
currency: components["schemas"]["Currency"];
|
|
485
527
|
} | null;
|
|
486
528
|
totals: components["schemas"]["BasketTotals"];
|
|
487
529
|
};
|
|
@@ -504,8 +546,7 @@ interface components {
|
|
|
504
546
|
};
|
|
505
547
|
/** GetBasketTotalsResponse */
|
|
506
548
|
GetBasketTotalsResponse: {
|
|
507
|
-
|
|
508
|
-
currency: "EUR" | "CHF";
|
|
549
|
+
currency: components["schemas"]["Currency"];
|
|
509
550
|
itemsTotal: number;
|
|
510
551
|
taxAmount: number;
|
|
511
552
|
depositCharge: number;
|
|
@@ -518,6 +559,14 @@ interface components {
|
|
|
518
559
|
count: number;
|
|
519
560
|
}[];
|
|
520
561
|
};
|
|
562
|
+
/** AbandonBasketRequest */
|
|
563
|
+
AbandonBasketRequest: {
|
|
564
|
+
sessionId: string;
|
|
565
|
+
};
|
|
566
|
+
/** AbandonBasketResponse */
|
|
567
|
+
AbandonBasketResponse: {
|
|
568
|
+
abandonedCount: number;
|
|
569
|
+
};
|
|
521
570
|
/** SetBasketDeclaredReturnsRequest */
|
|
522
571
|
SetBasketDeclaredReturnsRequest: {
|
|
523
572
|
venueAccessor: string;
|
|
@@ -537,12 +586,192 @@ interface components {
|
|
|
537
586
|
}[];
|
|
538
587
|
};
|
|
539
588
|
/** FetchEventsResponse */
|
|
540
|
-
FetchEventsResponse:
|
|
589
|
+
FetchEventsResponse: {
|
|
541
590
|
id: string;
|
|
542
591
|
venueId: string;
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
592
|
+
accessor: string | null;
|
|
593
|
+
name: {
|
|
594
|
+
[key: string]: string;
|
|
595
|
+
};
|
|
596
|
+
description: {
|
|
597
|
+
[key: string]: string;
|
|
598
|
+
} | null;
|
|
599
|
+
scheduleId: string | null;
|
|
600
|
+
ritualId: string | null;
|
|
601
|
+
maxBookings: number | null;
|
|
602
|
+
maxGuests: number | null;
|
|
603
|
+
minPartySize: number | null;
|
|
604
|
+
maxPartySize: number | null;
|
|
605
|
+
isPublic: boolean;
|
|
606
|
+
isRecurring: boolean;
|
|
607
|
+
reservationsEnabled: boolean;
|
|
608
|
+
bookingOpensAtDays: number | null;
|
|
609
|
+
bookingClosesAtOffset: number | null;
|
|
610
|
+
isActive: boolean;
|
|
611
|
+
isFeatured: boolean;
|
|
612
|
+
priority: number;
|
|
613
|
+
createdBy: string | null;
|
|
614
|
+
updatedBy: string | null;
|
|
615
|
+
createdAt: unknown;
|
|
616
|
+
updatedAt: unknown;
|
|
617
|
+
schedule: {
|
|
618
|
+
id: string;
|
|
619
|
+
duration: number | null;
|
|
620
|
+
name: {
|
|
621
|
+
[key: string]: string;
|
|
622
|
+
};
|
|
623
|
+
timezone: string;
|
|
624
|
+
description: {
|
|
625
|
+
[key: string]: string;
|
|
626
|
+
} | null;
|
|
627
|
+
rrule: string | null;
|
|
628
|
+
exdates: string[] | null;
|
|
629
|
+
validFrom: string | null;
|
|
630
|
+
validTo: string | null;
|
|
631
|
+
priority: number | null;
|
|
632
|
+
slotMode: components["schemas"]["SlotMode"];
|
|
633
|
+
intervalDuration: number | null;
|
|
634
|
+
isActive: boolean;
|
|
635
|
+
sortIndex: string | null;
|
|
636
|
+
updatedAt: unknown;
|
|
637
|
+
updatedBy: string | null;
|
|
638
|
+
createdAt: unknown;
|
|
639
|
+
createdBy: string | null;
|
|
640
|
+
scheduleOverrides: {
|
|
641
|
+
id: string;
|
|
642
|
+
date: string;
|
|
643
|
+
priority: number | null;
|
|
644
|
+
isActive: boolean;
|
|
645
|
+
updatedAt: unknown;
|
|
646
|
+
updatedBy: string | null;
|
|
647
|
+
createdAt: unknown;
|
|
648
|
+
createdBy: string | null;
|
|
649
|
+
scheduleId: string;
|
|
650
|
+
reason: {
|
|
651
|
+
[key: string]: string;
|
|
652
|
+
} | null;
|
|
653
|
+
scheduleOverrideTimeSlots: {
|
|
654
|
+
sortIndex: string | null;
|
|
655
|
+
overrideId: string;
|
|
656
|
+
timeSlotId: string;
|
|
657
|
+
timeSlot: {
|
|
658
|
+
id: string;
|
|
659
|
+
isActive: boolean | null;
|
|
660
|
+
sortIndex: string | null;
|
|
661
|
+
updatedAt: unknown;
|
|
662
|
+
updatedBy: string | null;
|
|
663
|
+
createdAt: unknown;
|
|
664
|
+
createdBy: string | null;
|
|
665
|
+
startTime: string;
|
|
666
|
+
endTime: string | null;
|
|
667
|
+
isSchedulable: boolean | null;
|
|
668
|
+
};
|
|
669
|
+
}[];
|
|
670
|
+
}[];
|
|
671
|
+
scheduleTimeSlots: {
|
|
672
|
+
sortIndex: string | null;
|
|
673
|
+
scheduleId: string | null;
|
|
674
|
+
timeSlotId: string | null;
|
|
675
|
+
dayOfWeek: components["schemas"]["DayOfWeek"];
|
|
676
|
+
timeSlot: {
|
|
677
|
+
id: string;
|
|
678
|
+
isActive: boolean | null;
|
|
679
|
+
sortIndex: string | null;
|
|
680
|
+
updatedAt: unknown;
|
|
681
|
+
updatedBy: string | null;
|
|
682
|
+
createdAt: unknown;
|
|
683
|
+
createdBy: string | null;
|
|
684
|
+
startTime: string;
|
|
685
|
+
endTime: string | null;
|
|
686
|
+
isSchedulable: boolean | null;
|
|
687
|
+
} | null;
|
|
688
|
+
}[];
|
|
689
|
+
} | null;
|
|
690
|
+
nextOccurrence: string | null;
|
|
691
|
+
posters: {
|
|
692
|
+
id: string;
|
|
693
|
+
type: components["schemas"]["AssetType"];
|
|
694
|
+
metadata: {
|
|
695
|
+
width?: number;
|
|
696
|
+
height?: number;
|
|
697
|
+
duration?: number;
|
|
698
|
+
} | null;
|
|
699
|
+
isActive: boolean;
|
|
700
|
+
sortIndex: string | null;
|
|
701
|
+
updatedAt: unknown;
|
|
702
|
+
updatedBy: string | null;
|
|
703
|
+
createdAt: unknown;
|
|
704
|
+
createdBy: string | null;
|
|
705
|
+
venueId: string | null;
|
|
706
|
+
tags: string[] | null;
|
|
707
|
+
bucket: string;
|
|
708
|
+
storagePath: string;
|
|
709
|
+
filename: string;
|
|
710
|
+
contentType: string;
|
|
711
|
+
sizeBytes: number;
|
|
712
|
+
caption: {
|
|
713
|
+
[key: string]: unknown;
|
|
714
|
+
};
|
|
715
|
+
alt: {
|
|
716
|
+
[key: string]: unknown;
|
|
717
|
+
};
|
|
718
|
+
cropArea: {
|
|
719
|
+
x: number;
|
|
720
|
+
y: number;
|
|
721
|
+
width: number;
|
|
722
|
+
height: number;
|
|
723
|
+
} | null;
|
|
724
|
+
publicUrl: string;
|
|
725
|
+
}[];
|
|
726
|
+
timeSlots: {
|
|
727
|
+
id?: string;
|
|
728
|
+
startTime?: string;
|
|
729
|
+
endTime?: string | null;
|
|
730
|
+
dayOfWeek?: components["schemas"]["DayOfWeek"];
|
|
731
|
+
isSchedulable?: boolean | null;
|
|
732
|
+
}[];
|
|
733
|
+
scheduleOverrides: {
|
|
734
|
+
id: string;
|
|
735
|
+
date: string;
|
|
736
|
+
reason: {
|
|
737
|
+
[key: string]: string;
|
|
738
|
+
} | null;
|
|
739
|
+
timeSlots: {
|
|
740
|
+
id?: string;
|
|
741
|
+
startTime?: string;
|
|
742
|
+
endTime?: string | null;
|
|
743
|
+
dayOfWeek?: components["schemas"]["DayOfWeek"];
|
|
744
|
+
isSchedulable?: boolean | null;
|
|
745
|
+
}[];
|
|
746
|
+
}[];
|
|
747
|
+
promotions: {
|
|
748
|
+
id: string;
|
|
749
|
+
name: {
|
|
750
|
+
[key: string]: string;
|
|
751
|
+
};
|
|
752
|
+
description: {
|
|
753
|
+
[key: string]: string;
|
|
754
|
+
} | null;
|
|
755
|
+
validFrom: string | null;
|
|
756
|
+
validTo: string | null;
|
|
757
|
+
isActive: boolean;
|
|
758
|
+
updatedAt: unknown;
|
|
759
|
+
updatedBy: string | null;
|
|
760
|
+
createdAt: unknown;
|
|
761
|
+
createdBy: string | null;
|
|
762
|
+
venueId: string;
|
|
763
|
+
benefitType: components["schemas"]["PromotionBenefitType"];
|
|
764
|
+
benefitValue: {
|
|
765
|
+
[key: string]: unknown;
|
|
766
|
+
};
|
|
767
|
+
conditions: {
|
|
768
|
+
[key: string]: unknown;
|
|
769
|
+
} | null;
|
|
770
|
+
maxRedemptions: number | null;
|
|
771
|
+
currentRedemptions: number | null;
|
|
772
|
+
timeSlotIds: string[] | null;
|
|
773
|
+
}[];
|
|
774
|
+
}[];
|
|
546
775
|
/**
|
|
547
776
|
* FetchEventResponse
|
|
548
777
|
* @description Event details. Nested objects (schedule, timeSlots, menus, posters, nextOccurrence) pass through; their shape follows the SDK Event interface.
|
|
@@ -554,8 +783,72 @@ interface components {
|
|
|
554
783
|
name: {
|
|
555
784
|
[key: string]: string;
|
|
556
785
|
};
|
|
557
|
-
|
|
558
|
-
|
|
786
|
+
description: {
|
|
787
|
+
[key: string]: string;
|
|
788
|
+
} | null;
|
|
789
|
+
scheduleId: string | null;
|
|
790
|
+
maxBookings: number | null;
|
|
791
|
+
maxGuests: number | null;
|
|
792
|
+
minPartySize: number | null;
|
|
793
|
+
maxPartySize: number | null;
|
|
794
|
+
isPublic: boolean;
|
|
795
|
+
isRecurring: boolean;
|
|
796
|
+
reservationsEnabled: boolean;
|
|
797
|
+
bookingOpensAtDays: number | null;
|
|
798
|
+
bookingClosesAtOffset: number | null;
|
|
799
|
+
isActive: boolean;
|
|
800
|
+
isFeatured: boolean;
|
|
801
|
+
priority: number;
|
|
802
|
+
createdAt: unknown;
|
|
803
|
+
updatedAt: unknown;
|
|
804
|
+
nextOccurrence?: string | null;
|
|
805
|
+
schedule?: {
|
|
806
|
+
id: string;
|
|
807
|
+
name: {
|
|
808
|
+
[key: string]: string;
|
|
809
|
+
};
|
|
810
|
+
description: {
|
|
811
|
+
[key: string]: string;
|
|
812
|
+
} | null;
|
|
813
|
+
timezone: string;
|
|
814
|
+
rrule: string | null;
|
|
815
|
+
exdates: string[] | null;
|
|
816
|
+
validFrom: string | null;
|
|
817
|
+
validTo: string | null;
|
|
818
|
+
priority: number | null;
|
|
819
|
+
isActive: boolean;
|
|
820
|
+
slotMode: components["schemas"]["SlotMode"];
|
|
821
|
+
intervalDuration: number | null;
|
|
822
|
+
duration: number | null;
|
|
823
|
+
scheduleTimeSlots?: {
|
|
824
|
+
dayOfWeek: components["schemas"]["DayOfWeek"];
|
|
825
|
+
timeSlot: {
|
|
826
|
+
id: string;
|
|
827
|
+
startTime: string;
|
|
828
|
+
endTime: string | null;
|
|
829
|
+
isActive: boolean | null;
|
|
830
|
+
isSchedulable: boolean | null;
|
|
831
|
+
};
|
|
832
|
+
}[];
|
|
833
|
+
};
|
|
834
|
+
menus?: {
|
|
835
|
+
id: string;
|
|
836
|
+
accessor: string;
|
|
837
|
+
name: {
|
|
838
|
+
[key: string]: string;
|
|
839
|
+
};
|
|
840
|
+
category: string;
|
|
841
|
+
}[];
|
|
842
|
+
posters?: {
|
|
843
|
+
id: string;
|
|
844
|
+
bucket: string;
|
|
845
|
+
storagePath: string;
|
|
846
|
+
filename: string;
|
|
847
|
+
contentType: string;
|
|
848
|
+
sizeBytes: number;
|
|
849
|
+
sortIndex: string | null;
|
|
850
|
+
publicUrl: string;
|
|
851
|
+
}[];
|
|
559
852
|
};
|
|
560
853
|
/**
|
|
561
854
|
* CreateEventRequest
|
|
@@ -592,8 +885,7 @@ interface components {
|
|
|
592
885
|
endTime: string;
|
|
593
886
|
lastSeatingTime?: string | null;
|
|
594
887
|
}[];
|
|
595
|
-
|
|
596
|
-
slotMode?: "interval" | "duration" | null;
|
|
888
|
+
slotMode?: components["schemas"]["SlotMode"];
|
|
597
889
|
intervalDuration?: number | null;
|
|
598
890
|
duration?: number | null;
|
|
599
891
|
} | null;
|
|
@@ -635,67 +927,189 @@ interface components {
|
|
|
635
927
|
};
|
|
636
928
|
/**
|
|
637
929
|
* FetchMenuResponse
|
|
638
|
-
* @description Menu details.
|
|
930
|
+
* @description Menu details. `assets[]` is always hydrated with public URLs; `items[]` (with nested dish/beverage) is included when `expand=items` is requested. Each dish/beverage always carries its flat, hydrated `assets[]` (public URLs resolved) — the raw junction relations are never surfaced.
|
|
639
931
|
*/
|
|
640
932
|
FetchMenuResponse: {
|
|
641
933
|
id: string;
|
|
642
|
-
|
|
934
|
+
name: {
|
|
935
|
+
[key: string]: string;
|
|
936
|
+
};
|
|
643
937
|
accessor: string;
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
} |
|
|
938
|
+
metadata: {
|
|
939
|
+
orderingEnabled?: boolean;
|
|
940
|
+
compactTags?: string[];
|
|
941
|
+
showDepositware?: boolean;
|
|
942
|
+
tagSortOrder?: string[];
|
|
943
|
+
subscriptionsEnabled?: boolean;
|
|
944
|
+
isDeliveryEnabled?: boolean;
|
|
945
|
+
assetsEnabled?: boolean;
|
|
946
|
+
} | null;
|
|
947
|
+
description: {
|
|
948
|
+
[key: string]: string;
|
|
949
|
+
} | null;
|
|
653
950
|
sortIndex: string | null;
|
|
654
|
-
deliveryThresholdAmount: number | null;
|
|
655
|
-
deliveryThresholdQuantity: number | null;
|
|
656
|
-
createdAt: unknown;
|
|
657
951
|
updatedAt: unknown;
|
|
658
|
-
createdBy: string | null;
|
|
659
952
|
updatedBy: string | null;
|
|
660
|
-
|
|
953
|
+
createdAt: unknown;
|
|
954
|
+
createdBy: string | null;
|
|
955
|
+
venueId: string;
|
|
956
|
+
deliveryThresholdAmount: number | null;
|
|
957
|
+
deliveryThresholdQuantity: number | null;
|
|
958
|
+
assets: {
|
|
661
959
|
id: string;
|
|
662
|
-
|
|
663
|
-
|
|
960
|
+
type: components["schemas"]["AssetType"];
|
|
961
|
+
metadata: {
|
|
962
|
+
width?: number;
|
|
963
|
+
height?: number;
|
|
964
|
+
duration?: number;
|
|
965
|
+
} | null;
|
|
966
|
+
isActive: boolean;
|
|
967
|
+
sortIndex: string | null;
|
|
968
|
+
updatedAt: unknown;
|
|
969
|
+
updatedBy: string | null;
|
|
970
|
+
createdAt: unknown;
|
|
971
|
+
createdBy: string | null;
|
|
972
|
+
venueId: string | null;
|
|
664
973
|
tags: string[] | null;
|
|
665
974
|
bucket: string;
|
|
666
975
|
storagePath: string;
|
|
667
976
|
filename: string;
|
|
668
977
|
contentType: string;
|
|
669
978
|
sizeBytes: number;
|
|
670
|
-
caption:
|
|
671
|
-
[key: string]: unknown;
|
|
672
|
-
} | unknown[];
|
|
673
|
-
alt: (string | number | boolean | (null)) | {
|
|
979
|
+
caption: {
|
|
674
980
|
[key: string]: unknown;
|
|
675
|
-
}
|
|
676
|
-
|
|
677
|
-
[key: string]: unknown;
|
|
678
|
-
} | unknown[]) | null;
|
|
679
|
-
cropArea: ((string | number | boolean | (null)) | {
|
|
981
|
+
};
|
|
982
|
+
alt: {
|
|
680
983
|
[key: string]: unknown;
|
|
681
|
-
}
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
publicUrl: string | null;
|
|
984
|
+
};
|
|
985
|
+
cropArea: {
|
|
986
|
+
x: number;
|
|
987
|
+
y: number;
|
|
988
|
+
width: number;
|
|
989
|
+
height: number;
|
|
990
|
+
} | null;
|
|
991
|
+
publicUrl: string;
|
|
690
992
|
}[];
|
|
691
993
|
items?: {
|
|
692
|
-
|
|
994
|
+
id: string;
|
|
995
|
+
type: components["schemas"]["MenuItemType"];
|
|
996
|
+
tags: string[] | null;
|
|
997
|
+
priceAdjustment: number;
|
|
998
|
+
currency: components["schemas"]["Currency"];
|
|
999
|
+
isActive: boolean;
|
|
1000
|
+
isFeatured: boolean;
|
|
1001
|
+
sortIndex: string | null;
|
|
1002
|
+
dish: {
|
|
1003
|
+
id: string;
|
|
1004
|
+
accessor: string;
|
|
1005
|
+
name: {
|
|
1006
|
+
[key: string]: string;
|
|
1007
|
+
};
|
|
1008
|
+
shortName?: {
|
|
1009
|
+
[key: string]: string;
|
|
1010
|
+
};
|
|
1011
|
+
description: {
|
|
1012
|
+
[key: string]: string;
|
|
1013
|
+
} | null;
|
|
1014
|
+
longDescription?: {
|
|
1015
|
+
[key: string]: string;
|
|
1016
|
+
} | null;
|
|
1017
|
+
isVegetarian: boolean | null;
|
|
1018
|
+
isVegan: boolean | null;
|
|
1019
|
+
isGlutenFree: boolean | null;
|
|
1020
|
+
isDairyFree: boolean | null;
|
|
1021
|
+
spiciness: number | null;
|
|
1022
|
+
assets?: {
|
|
1023
|
+
id: string;
|
|
1024
|
+
type: components["schemas"]["AssetType"];
|
|
1025
|
+
metadata: {
|
|
1026
|
+
width?: number;
|
|
1027
|
+
height?: number;
|
|
1028
|
+
duration?: number;
|
|
1029
|
+
} | null;
|
|
1030
|
+
isActive: boolean;
|
|
1031
|
+
sortIndex: string | null;
|
|
1032
|
+
updatedAt: unknown;
|
|
1033
|
+
updatedBy: string | null;
|
|
1034
|
+
createdAt: unknown;
|
|
1035
|
+
createdBy: string | null;
|
|
1036
|
+
venueId: string | null;
|
|
1037
|
+
tags: string[] | null;
|
|
1038
|
+
bucket: string;
|
|
1039
|
+
storagePath: string;
|
|
1040
|
+
filename: string;
|
|
1041
|
+
contentType: string;
|
|
1042
|
+
sizeBytes: number;
|
|
1043
|
+
caption: {
|
|
1044
|
+
[key: string]: unknown;
|
|
1045
|
+
};
|
|
1046
|
+
alt: {
|
|
1047
|
+
[key: string]: unknown;
|
|
1048
|
+
};
|
|
1049
|
+
cropArea: {
|
|
1050
|
+
x: number;
|
|
1051
|
+
y: number;
|
|
1052
|
+
width: number;
|
|
1053
|
+
height: number;
|
|
1054
|
+
} | null;
|
|
1055
|
+
publicUrl: string;
|
|
1056
|
+
}[];
|
|
1057
|
+
} | null;
|
|
1058
|
+
beverage: {
|
|
1059
|
+
id: string;
|
|
1060
|
+
accessor: string;
|
|
1061
|
+
name: {
|
|
1062
|
+
[key: string]: string;
|
|
1063
|
+
};
|
|
1064
|
+
shortName?: {
|
|
1065
|
+
[key: string]: string;
|
|
1066
|
+
};
|
|
1067
|
+
description: {
|
|
1068
|
+
[key: string]: string;
|
|
1069
|
+
} | null;
|
|
1070
|
+
longDescription?: {
|
|
1071
|
+
[key: string]: string;
|
|
1072
|
+
} | null;
|
|
1073
|
+
assets?: {
|
|
1074
|
+
id: string;
|
|
1075
|
+
type: components["schemas"]["AssetType"];
|
|
1076
|
+
metadata: {
|
|
1077
|
+
width?: number;
|
|
1078
|
+
height?: number;
|
|
1079
|
+
duration?: number;
|
|
1080
|
+
} | null;
|
|
1081
|
+
isActive: boolean;
|
|
1082
|
+
sortIndex: string | null;
|
|
1083
|
+
updatedAt: unknown;
|
|
1084
|
+
updatedBy: string | null;
|
|
1085
|
+
createdAt: unknown;
|
|
1086
|
+
createdBy: string | null;
|
|
1087
|
+
venueId: string | null;
|
|
1088
|
+
tags: string[] | null;
|
|
1089
|
+
bucket: string;
|
|
1090
|
+
storagePath: string;
|
|
1091
|
+
filename: string;
|
|
1092
|
+
contentType: string;
|
|
1093
|
+
sizeBytes: number;
|
|
1094
|
+
caption: {
|
|
1095
|
+
[key: string]: unknown;
|
|
1096
|
+
};
|
|
1097
|
+
alt: {
|
|
1098
|
+
[key: string]: unknown;
|
|
1099
|
+
};
|
|
1100
|
+
cropArea: {
|
|
1101
|
+
x: number;
|
|
1102
|
+
y: number;
|
|
1103
|
+
width: number;
|
|
1104
|
+
height: number;
|
|
1105
|
+
} | null;
|
|
1106
|
+
publicUrl: string;
|
|
1107
|
+
}[];
|
|
1108
|
+
} | null;
|
|
693
1109
|
}[];
|
|
694
|
-
} & {
|
|
695
|
-
[key: string]: unknown;
|
|
696
1110
|
};
|
|
697
1111
|
/** FetchMenuBundlesResponse */
|
|
698
|
-
FetchMenuBundlesResponse:
|
|
1112
|
+
FetchMenuBundlesResponse: {
|
|
699
1113
|
id: string;
|
|
700
1114
|
menuId: string;
|
|
701
1115
|
name: {
|
|
@@ -710,11 +1124,9 @@ interface components {
|
|
|
710
1124
|
tags: string[];
|
|
711
1125
|
price: {
|
|
712
1126
|
amount: number;
|
|
713
|
-
|
|
714
|
-
currency: "EUR" | "CHF";
|
|
1127
|
+
currency: components["schemas"]["Currency"];
|
|
715
1128
|
};
|
|
716
|
-
|
|
717
|
-
currency: "EUR" | "CHF";
|
|
1129
|
+
currency: components["schemas"]["Currency"];
|
|
718
1130
|
taxRateId: string;
|
|
719
1131
|
isActive: boolean;
|
|
720
1132
|
sortIndex: string | null;
|
|
@@ -725,15 +1137,14 @@ interface components {
|
|
|
725
1137
|
};
|
|
726
1138
|
} | null;
|
|
727
1139
|
deposit: {
|
|
1140
|
+
depositwareTemplateId: string;
|
|
1141
|
+
accessor: string;
|
|
728
1142
|
amount: number;
|
|
729
|
-
|
|
730
|
-
currency: "EUR" | "CHF";
|
|
1143
|
+
currency: components["schemas"]["Currency"];
|
|
731
1144
|
} | null;
|
|
732
|
-
}
|
|
733
|
-
[key: string]: unknown;
|
|
734
|
-
})[];
|
|
1145
|
+
}[];
|
|
735
1146
|
/** FetchMenuSubscriptionsResponse */
|
|
736
|
-
FetchMenuSubscriptionsResponse:
|
|
1147
|
+
FetchMenuSubscriptionsResponse: {
|
|
737
1148
|
id: string;
|
|
738
1149
|
menuId: string;
|
|
739
1150
|
accessor: string;
|
|
@@ -748,35 +1159,30 @@ interface components {
|
|
|
748
1159
|
} | null;
|
|
749
1160
|
scheduleId: string | null;
|
|
750
1161
|
allowance: number;
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
/** @enum {string} */
|
|
754
|
-
allowancePeriod: "week" | "month" | "year";
|
|
1162
|
+
billingPeriod: components["schemas"]["SubscriptionPeriod"];
|
|
1163
|
+
allowancePeriod: components["schemas"]["SubscriptionPeriod"];
|
|
755
1164
|
expiryInDays: number;
|
|
756
1165
|
price: number;
|
|
757
|
-
|
|
758
|
-
currency: "EUR" | "CHF";
|
|
1166
|
+
currency: components["schemas"]["Currency"];
|
|
759
1167
|
stripeProductId: string | null;
|
|
760
1168
|
stripePriceId: string | null;
|
|
761
1169
|
isActive: boolean;
|
|
762
1170
|
sortIndex: string | null;
|
|
763
1171
|
subscriberCount: number;
|
|
764
1172
|
redeemableTagSets: string[][];
|
|
765
|
-
posters
|
|
1173
|
+
posters: {
|
|
766
1174
|
id: string;
|
|
767
1175
|
menuSubscriptionId: string;
|
|
768
1176
|
storagePath: string;
|
|
769
|
-
publicUrl: string
|
|
1177
|
+
publicUrl: string;
|
|
770
1178
|
filename: string;
|
|
771
1179
|
contentType: string;
|
|
772
|
-
sizeBytes: number
|
|
1180
|
+
sizeBytes: number;
|
|
773
1181
|
sortIndex: string | null;
|
|
774
1182
|
createdBy: string | null;
|
|
775
1183
|
createdAt: string | null;
|
|
776
1184
|
}[];
|
|
777
|
-
}
|
|
778
|
-
[key: string]: unknown;
|
|
779
|
-
})[];
|
|
1185
|
+
}[];
|
|
780
1186
|
/**
|
|
781
1187
|
* PlaceOrderRequest
|
|
782
1188
|
* @description Place a new order for a specific venue
|
|
@@ -804,8 +1210,7 @@ interface components {
|
|
|
804
1210
|
publicId: string | null;
|
|
805
1211
|
orderId: string;
|
|
806
1212
|
quickReferenceNumber: number | null;
|
|
807
|
-
|
|
808
|
-
currency: "EUR" | "CHF";
|
|
1213
|
+
currency: components["schemas"]["Currency"];
|
|
809
1214
|
};
|
|
810
1215
|
/** ConfirmOrderRequest */
|
|
811
1216
|
ConfirmOrderRequest: {
|
|
@@ -821,12 +1226,52 @@ interface components {
|
|
|
821
1226
|
quickReferenceNumber: number | null;
|
|
822
1227
|
customerId?: string;
|
|
823
1228
|
};
|
|
1229
|
+
/** FetchLatestOrderResponse */
|
|
1230
|
+
FetchLatestOrderResponse: {
|
|
1231
|
+
/** Format: uuid */
|
|
1232
|
+
id: string;
|
|
1233
|
+
publicId: string | null;
|
|
1234
|
+
quickReferenceNumber: number | null;
|
|
1235
|
+
status: components["schemas"]["OrderStatus"];
|
|
1236
|
+
paymentStatus: components["schemas"]["PaymentStatus"];
|
|
1237
|
+
fulfillmentType: components["schemas"]["FulfillmentType"];
|
|
1238
|
+
fulfillmentAt: string | null;
|
|
1239
|
+
orderedAt: string;
|
|
1240
|
+
totalAmount: number;
|
|
1241
|
+
currency: components["schemas"]["Currency"];
|
|
1242
|
+
items: {
|
|
1243
|
+
/** Format: uuid */
|
|
1244
|
+
id: string;
|
|
1245
|
+
metadata: {
|
|
1246
|
+
[key: string]: unknown;
|
|
1247
|
+
} | null;
|
|
1248
|
+
deposit: {
|
|
1249
|
+
depositwareTemplateId: string;
|
|
1250
|
+
name: {
|
|
1251
|
+
[key: string]: string;
|
|
1252
|
+
};
|
|
1253
|
+
amount: number;
|
|
1254
|
+
currency: components["schemas"]["Currency"];
|
|
1255
|
+
} | null;
|
|
1256
|
+
menuItems: {
|
|
1257
|
+
menuItemId: string;
|
|
1258
|
+
role: string | null;
|
|
1259
|
+
quantity: number;
|
|
1260
|
+
unit: components["schemas"]["Unit"];
|
|
1261
|
+
}[];
|
|
1262
|
+
}[];
|
|
1263
|
+
itemCount: number;
|
|
1264
|
+
totals: components["schemas"]["BasketTotals"];
|
|
1265
|
+
declaredReturns: {
|
|
1266
|
+
depositwareTemplateId: string;
|
|
1267
|
+
count: number;
|
|
1268
|
+
}[];
|
|
1269
|
+
};
|
|
824
1270
|
/** CreatePaymentIntentRequest */
|
|
825
1271
|
CreatePaymentIntentRequest: {
|
|
826
1272
|
venueAccessor: string;
|
|
827
1273
|
basketId: string;
|
|
828
|
-
|
|
829
|
-
currency: "EUR" | "CHF";
|
|
1274
|
+
currency: components["schemas"]["Currency"];
|
|
830
1275
|
sessionId: string;
|
|
831
1276
|
fulfillmentType: components["schemas"]["FulfillmentType"];
|
|
832
1277
|
/** Format: date-time */
|
|
@@ -850,8 +1295,7 @@ interface components {
|
|
|
850
1295
|
venueAccessor: string;
|
|
851
1296
|
basketId: string;
|
|
852
1297
|
sessionId: string;
|
|
853
|
-
|
|
854
|
-
currency: "EUR" | "CHF";
|
|
1298
|
+
currency: components["schemas"]["Currency"];
|
|
855
1299
|
declaredReturns?: {
|
|
856
1300
|
depositwareTemplateId: string;
|
|
857
1301
|
count: number;
|
|
@@ -871,8 +1315,7 @@ interface components {
|
|
|
871
1315
|
venueAccessor: string;
|
|
872
1316
|
basketId: string;
|
|
873
1317
|
sessionId: string;
|
|
874
|
-
|
|
875
|
-
currency: "EUR" | "CHF";
|
|
1318
|
+
currency: components["schemas"]["Currency"];
|
|
876
1319
|
declaredReturns?: {
|
|
877
1320
|
depositwareTemplateId: string;
|
|
878
1321
|
count: number;
|
|
@@ -920,16 +1363,8 @@ interface components {
|
|
|
920
1363
|
customerEmail?: string | null;
|
|
921
1364
|
/** @description Phone number for reservation confirmations and updates. Include country code for international numbers. */
|
|
922
1365
|
customerPhone?: string | null;
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
* @enum {string}
|
|
926
|
-
*/
|
|
927
|
-
contactPreference?: "email" | "phone" | "sms" | "none";
|
|
928
|
-
/**
|
|
929
|
-
* @description Origin of the reservation request. Defaults to `website` when omitted.
|
|
930
|
-
* @enum {string}
|
|
931
|
-
*/
|
|
932
|
-
source?: "website" | "phone" | "walk_in";
|
|
1366
|
+
contactPreference?: components["schemas"]["ContactPreference"];
|
|
1367
|
+
source?: components["schemas"]["AreaBookingRequestSource"];
|
|
933
1368
|
/** @description Any dietary restrictions, allergies, or special occasions (max 500 characters) */
|
|
934
1369
|
specialRequests?: string | null;
|
|
935
1370
|
/** @description Preferred seating area or table type (e.g., "window seat", "quiet area", "patio") */
|
|
@@ -977,16 +1412,8 @@ interface components {
|
|
|
977
1412
|
customerEmail: string | null;
|
|
978
1413
|
/** @description Customer phone number */
|
|
979
1414
|
customerPhone: string | null;
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
* @enum {string}
|
|
983
|
-
*/
|
|
984
|
-
contactPreference: "email" | "phone" | "sms" | "none";
|
|
985
|
-
/**
|
|
986
|
-
* @description Current status of the reservation
|
|
987
|
-
* @enum {string}
|
|
988
|
-
*/
|
|
989
|
-
status: "pending" | "confirmed" | "arrived" | "seated" | "completed" | "cancelled" | "no_show";
|
|
1415
|
+
contactPreference: components["schemas"]["ContactPreference"];
|
|
1416
|
+
status: components["schemas"]["ReservationStatus"];
|
|
990
1417
|
/** @description 6-character confirmation code for the reservation */
|
|
991
1418
|
confirmationCode: string | null;
|
|
992
1419
|
/** @description When the reservation was confirmed */
|
|
@@ -999,18 +1426,10 @@ interface components {
|
|
|
999
1426
|
completedAt: unknown;
|
|
1000
1427
|
/** @description When the reservation was cancelled */
|
|
1001
1428
|
cancelledAt: unknown;
|
|
1002
|
-
|
|
1003
|
-
* @description Who initiated the cancellation
|
|
1004
|
-
* @enum {string|null}
|
|
1005
|
-
*/
|
|
1006
|
-
cancellationReason: "customer_request" | "restaurant_request" | null;
|
|
1429
|
+
cancellationReason: components["schemas"]["CancellationReason"];
|
|
1007
1430
|
/** @description Additional cancellation details */
|
|
1008
1431
|
cancellationNote: string | null;
|
|
1009
|
-
|
|
1010
|
-
* @description Origin of the reservation
|
|
1011
|
-
* @enum {string}
|
|
1012
|
-
*/
|
|
1013
|
-
source: "website" | "phone" | "walk_in";
|
|
1432
|
+
source: components["schemas"]["AreaBookingRequestSource"];
|
|
1014
1433
|
/** @description Any special requirements or notes */
|
|
1015
1434
|
specialRequests: string | null;
|
|
1016
1435
|
/** @description Preferred seating location */
|
|
@@ -1040,15 +1459,12 @@ interface components {
|
|
|
1040
1459
|
} | null;
|
|
1041
1460
|
scheduleId: string | null;
|
|
1042
1461
|
allowance: number;
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
/** @enum {string} */
|
|
1046
|
-
allowancePeriod: "week" | "month" | "year";
|
|
1462
|
+
billingPeriod: components["schemas"]["SubscriptionPeriod"];
|
|
1463
|
+
allowancePeriod: components["schemas"]["SubscriptionPeriod"];
|
|
1047
1464
|
redeemableTagSets: string[][];
|
|
1048
1465
|
expiryInDays: number | null;
|
|
1049
1466
|
price: number;
|
|
1050
|
-
|
|
1051
|
-
currency: "EUR" | "CHF";
|
|
1467
|
+
currency: components["schemas"]["Currency"];
|
|
1052
1468
|
isActive: boolean;
|
|
1053
1469
|
sortIndex: string | null;
|
|
1054
1470
|
posters: {
|
|
@@ -1065,8 +1481,8 @@ interface components {
|
|
|
1065
1481
|
createdAt: string | null;
|
|
1066
1482
|
}[];
|
|
1067
1483
|
};
|
|
1068
|
-
/**
|
|
1069
|
-
|
|
1484
|
+
/** SubscribeToSubscriptionBody */
|
|
1485
|
+
SubscribeToSubscriptionBody: {
|
|
1070
1486
|
/** Format: email */
|
|
1071
1487
|
email: string;
|
|
1072
1488
|
firstName?: string;
|
|
@@ -1077,8 +1493,8 @@ interface components {
|
|
|
1077
1493
|
/** Format: uri */
|
|
1078
1494
|
cancelUrl: string;
|
|
1079
1495
|
};
|
|
1080
|
-
/**
|
|
1081
|
-
|
|
1496
|
+
/** SubscribeToSubscriptionResponse */
|
|
1497
|
+
SubscribeToSubscriptionResponse: {
|
|
1082
1498
|
/** Format: uri */
|
|
1083
1499
|
checkoutUrl: string | null;
|
|
1084
1500
|
sessionId: string;
|
|
@@ -1099,8 +1515,7 @@ interface components {
|
|
|
1099
1515
|
periodStart: string;
|
|
1100
1516
|
periodEnd: string;
|
|
1101
1517
|
expiresAt: string | null;
|
|
1102
|
-
|
|
1103
|
-
status: "available" | "redeemed" | "expired";
|
|
1518
|
+
status: components["schemas"]["SubscriptionCreditStatus"];
|
|
1104
1519
|
redeemedAt: string | null;
|
|
1105
1520
|
orderId: string | null;
|
|
1106
1521
|
createdAt: string | null;
|
|
@@ -1193,13 +1608,14 @@ interface components {
|
|
|
1193
1608
|
joinedAt: string;
|
|
1194
1609
|
items: {
|
|
1195
1610
|
id: string;
|
|
1196
|
-
metadata:
|
|
1611
|
+
metadata: {
|
|
1612
|
+
[key: string]: unknown;
|
|
1613
|
+
} | null;
|
|
1197
1614
|
menuItems: {
|
|
1198
1615
|
menuItemId: string;
|
|
1199
1616
|
role: string | null;
|
|
1200
1617
|
quantity: number;
|
|
1201
|
-
|
|
1202
|
-
unit: "grams" | "kilograms" | "liters" | "milliliters" | "pieces";
|
|
1618
|
+
unit: components["schemas"]["Unit"];
|
|
1203
1619
|
}[];
|
|
1204
1620
|
isPaid: boolean;
|
|
1205
1621
|
}[];
|
|
@@ -1341,6 +1757,40 @@ interface components {
|
|
|
1341
1757
|
diningTime: string;
|
|
1342
1758
|
diningOffset: number;
|
|
1343
1759
|
};
|
|
1760
|
+
/** SetOrderLeadSettledRequest */
|
|
1761
|
+
SetOrderLeadSettledRequest: {
|
|
1762
|
+
publicId: string;
|
|
1763
|
+
sessionId: string;
|
|
1764
|
+
/** Format: uuid */
|
|
1765
|
+
orderId: string;
|
|
1766
|
+
settled: boolean;
|
|
1767
|
+
};
|
|
1768
|
+
/** SetOrderLeadSettledResponse */
|
|
1769
|
+
SetOrderLeadSettledResponse: {
|
|
1770
|
+
/** Format: uuid */
|
|
1771
|
+
orderId: string;
|
|
1772
|
+
leadSettledAt: string | null;
|
|
1773
|
+
};
|
|
1774
|
+
/** AutoExtendFulfillmentIfExpiredRequest */
|
|
1775
|
+
AutoExtendFulfillmentIfExpiredRequest: {
|
|
1776
|
+
publicId: string;
|
|
1777
|
+
sessionId: string;
|
|
1778
|
+
/** Format: date-time */
|
|
1779
|
+
proposedFulfillmentAt: string;
|
|
1780
|
+
};
|
|
1781
|
+
/** AutoExtendFulfillmentIfExpiredResponse */
|
|
1782
|
+
AutoExtendFulfillmentIfExpiredResponse: {
|
|
1783
|
+
extended: boolean;
|
|
1784
|
+
teamOrderId: string;
|
|
1785
|
+
status: string;
|
|
1786
|
+
/** Format: date-time */
|
|
1787
|
+
fulfillmentAt: string;
|
|
1788
|
+
/** Format: date-time */
|
|
1789
|
+
deadlineAt: string | null;
|
|
1790
|
+
/** Format: date-time */
|
|
1791
|
+
previousFulfillmentAt: string;
|
|
1792
|
+
waitingCount: number;
|
|
1793
|
+
};
|
|
1344
1794
|
/** SwitchFulfillmentTeamOrderRequest */
|
|
1345
1795
|
SwitchFulfillmentTeamOrderRequest: {
|
|
1346
1796
|
publicId: string;
|
|
@@ -1386,13 +1836,119 @@ interface components {
|
|
|
1386
1836
|
updatedAt: unknown;
|
|
1387
1837
|
};
|
|
1388
1838
|
/** @enum {string} */
|
|
1389
|
-
|
|
1839
|
+
ActorType: "human" | "robot";
|
|
1840
|
+
/** @enum {string} */
|
|
1841
|
+
AdditiveFunction: "acid" | "acidity_regulator" | "anti_caking_agent" | "anti_foaming_agent" | "antioxidant" | "bulking_agent" | "carrier" | "colour" | "emulsifier" | "emulsifying_salt" | "firming_agent" | "flavour_enhancer" | "flour_treatment_agent" | "foaming_agent" | "gelling_agent" | "glazing_agent" | "humectant" | "modified_starch" | "preservative" | "packaging_gas" | "propellant_gas" | "raising_agent" | "sequestrant" | "stabiliser" | "sweetener" | "thickener";
|
|
1842
|
+
/** @enum {string} */
|
|
1843
|
+
AreaBookingMode: "slot" | "day";
|
|
1844
|
+
/** @enum {string} */
|
|
1845
|
+
AreaBookingRequestSource: "website" | "phone" | "walk_in";
|
|
1846
|
+
/** @enum {string} */
|
|
1847
|
+
AreaBookingRequestStatus: "pending" | "approved" | "rejected" | "cancelled";
|
|
1848
|
+
/** @enum {string} */
|
|
1849
|
+
AreaBookingStatus: "confirmed" | "arrived" | "completed" | "cancelled" | "no_show";
|
|
1850
|
+
/** @enum {string} */
|
|
1851
|
+
ArticleEditorSaveState: "idle" | "saving" | "saved" | "error";
|
|
1852
|
+
/** @enum {string} */
|
|
1853
|
+
ArticleStatus: "draft" | "published";
|
|
1854
|
+
/** @enum {string} */
|
|
1855
|
+
BasketStatus: "active" | "abandoned" | "converted";
|
|
1856
|
+
/** @enum {string} */
|
|
1857
|
+
BeverageCategory: "wine" | "beer" | "coffee" | "tea" | "cocktail" | "juice" | "soft_drink" | "dairy_drink" | "spirit" | "water";
|
|
1858
|
+
/** @enum {string} */
|
|
1859
|
+
CancellationReason: "customer_request" | "restaurant_request";
|
|
1860
|
+
/** @enum {string} */
|
|
1861
|
+
ContactPreference: "email" | "phone" | "sms" | "none";
|
|
1862
|
+
/** @enum {string} */
|
|
1863
|
+
CountryCode: "AD" | "AE" | "AF" | "AG" | "AI" | "AL" | "AM" | "AO" | "AQ" | "AR" | "AS" | "AT" | "AU" | "AW" | "AX" | "AZ" | "BA" | "BB" | "BD" | "BE" | "BF" | "BG" | "BH" | "BI" | "BJ" | "BL" | "BM" | "BN" | "BO" | "BQ" | "BR" | "BS" | "BT" | "BV" | "BW" | "BY" | "BZ" | "CA" | "CC" | "CD" | "CF" | "CG" | "CH" | "CI" | "CK" | "CL" | "CM" | "CN" | "CO" | "CR" | "CU" | "CV" | "CW" | "CX" | "CY" | "CZ" | "DE" | "DJ" | "DK" | "DM" | "DO" | "DZ" | "EC" | "EE" | "EG" | "EH" | "ER" | "ES" | "ET" | "FI" | "FJ" | "FK" | "FM" | "FO" | "FR" | "GA" | "GB" | "GD" | "GE" | "GF" | "GG" | "GH" | "GI" | "GL" | "GM" | "GN" | "GP" | "GQ" | "GR" | "GS" | "GT" | "GU" | "GW" | "GY" | "HK" | "HM" | "HN" | "HR" | "HT" | "HU" | "ID" | "IE" | "IL" | "IM" | "IN" | "IO" | "IQ" | "IR" | "IS" | "IT" | "JE" | "JM" | "JO" | "JP" | "KE" | "KG" | "KH" | "KI" | "KM" | "KN" | "KP" | "KR" | "KW" | "KY" | "KZ" | "LA" | "LB" | "LC" | "LI" | "LK" | "LR" | "LS" | "LT" | "LU" | "LV" | "LY" | "MA" | "MC" | "MD" | "ME" | "MF" | "MG" | "MH" | "MK" | "ML" | "MM" | "MN" | "MO" | "MP" | "MQ" | "MR" | "MS" | "MT" | "MU" | "MV" | "MW" | "MX" | "MY" | "MZ" | "NA" | "NC" | "NE" | "NF" | "NG" | "NI" | "NL" | "NO" | "NP" | "NR" | "NU" | "NZ" | "OM" | "PA" | "PE" | "PF" | "PG" | "PH" | "PK" | "PL" | "PM" | "PN" | "PR" | "PS" | "PT" | "PW" | "PY" | "QA" | "RE" | "RO" | "RS" | "RU" | "RW" | "SA" | "SB" | "SC" | "SD" | "SE" | "SG" | "SH" | "SI" | "SJ" | "SK" | "SL" | "SM" | "SN" | "SO" | "SR" | "SS" | "ST" | "SV" | "SX" | "SY" | "SZ" | "TC" | "TD" | "TF" | "TG" | "TH" | "TJ" | "TK" | "TL" | "TM" | "TN" | "TO" | "TR" | "TT" | "TV" | "TW" | "TZ" | "UA" | "UG" | "UM" | "US" | "UY" | "UZ" | "VA" | "VC" | "VE" | "VG" | "VI" | "VN" | "VU" | "WF" | "WS" | "YE" | "YT" | "ZA" | "ZM" | "ZW";
|
|
1864
|
+
/** @enum {string} */
|
|
1865
|
+
Currency: "EUR" | "CHF";
|
|
1866
|
+
/** @enum {string} */
|
|
1867
|
+
DepositTransactionType: "charged" | "refunded" | "forfeited" | "waived" | "credit_used";
|
|
1868
|
+
/** @enum {string} */
|
|
1869
|
+
DepositwareStatus: "available" | "issued" | "returned" | "lost" | "damaged" | "retired";
|
|
1870
|
+
/** @enum {string} */
|
|
1871
|
+
EntityOwnerType: "event" | "dish" | "beverage" | "venue" | "menu" | "menuSubscription" | "ritual";
|
|
1872
|
+
/** @enum {string} */
|
|
1873
|
+
IntegrationNotificationType: "order_created" | "order_cancelled" | "order_completed" | "team_order_created" | "reservation_created" | "reservation_confirmed" | "reservation_cancelled";
|
|
1874
|
+
/** @enum {string} */
|
|
1875
|
+
IntegrationType: "telegram";
|
|
1876
|
+
/** @enum {string} */
|
|
1877
|
+
InventoryAssetStatus: "available" | "in_use" | "maintenance" | "retired";
|
|
1878
|
+
/** @enum {string} */
|
|
1879
|
+
InventoryCategory: "depositware" | "furniture" | "equipment" | "utensil";
|
|
1880
|
+
/** @enum {string} */
|
|
1881
|
+
InvitationScenario: "new_user" | "already_member" | "former_employee";
|
|
1882
|
+
/** @enum {string} */
|
|
1883
|
+
Locale: "aa" | "ab" | "ae" | "af" | "ak" | "am" | "an" | "ar" | "as" | "av" | "ay" | "az" | "ba" | "be" | "bg" | "bh" | "bi" | "bm" | "bn" | "bo" | "br" | "bs" | "ca" | "ce" | "ch" | "co" | "cr" | "cs" | "cu" | "cv" | "cy" | "da" | "de" | "dv" | "dz" | "ee" | "el" | "en" | "eo" | "es" | "et" | "eu" | "fa" | "ff" | "fi" | "fj" | "fo" | "fr" | "fy" | "ga" | "gd" | "gl" | "gn" | "gu" | "gv" | "ha" | "he" | "hi" | "ho" | "hr" | "ht" | "hu" | "hy" | "hz" | "ia" | "id" | "ie" | "ig" | "ii" | "ik" | "io" | "is" | "it" | "iu" | "ja" | "jv" | "ka" | "kg" | "ki" | "kj" | "kk" | "kl" | "km" | "kn" | "ko" | "kr" | "ks" | "ku" | "kv" | "kw" | "ky" | "la" | "lb" | "lg" | "li" | "ln" | "lo" | "lt" | "lu" | "lv" | "mg" | "mh" | "mi" | "mk" | "ml" | "mn" | "mr" | "ms" | "mt" | "my" | "na" | "nb" | "nd" | "ne" | "ng" | "nl" | "nn" | "no" | "nr" | "nv" | "ny" | "oc" | "oj" | "om" | "or" | "os" | "pa" | "pi" | "pl" | "ps" | "pt" | "qu" | "rm" | "rn" | "ro" | "ru" | "rw" | "sa" | "sc" | "sd" | "se" | "sg" | "si" | "sk" | "sl" | "sm" | "sn" | "so" | "sq" | "sr" | "ss" | "st" | "su" | "sv" | "sw" | "ta" | "te" | "tg" | "th" | "ti" | "tk" | "tl" | "tn" | "to" | "tr" | "ts" | "tt" | "tw" | "ty" | "ug" | "uk" | "ur" | "uz" | "ve" | "vi" | "vo" | "wa" | "wo" | "xh" | "yi" | "yo" | "za" | "zh" | "zu";
|
|
1884
|
+
/** @enum {string} */
|
|
1885
|
+
MenuItemType: "dish" | "beverage";
|
|
1390
1886
|
/** @enum {string} */
|
|
1391
1887
|
FulfillmentType: "pickup" | "delivery";
|
|
1392
1888
|
/** @enum {string} */
|
|
1889
|
+
OrderStatus: "pending" | "in_progress" | "ready" | "completed" | "cancelled";
|
|
1890
|
+
/** @enum {string} */
|
|
1891
|
+
PaymentMethod: "card" | "cash" | "voucher";
|
|
1892
|
+
/** @enum {string} */
|
|
1893
|
+
PaymentStatus: "unpaid" | "paid" | "refunded" | "authorized" | "cash_pending";
|
|
1894
|
+
/** @enum {string} */
|
|
1895
|
+
ScanTokenEntityType: "order" | "depositware";
|
|
1896
|
+
/** @enum {string} */
|
|
1897
|
+
SortOrder: "asc" | "desc";
|
|
1898
|
+
/** @enum {string} */
|
|
1899
|
+
SubscriberStatus: "active" | "paused" | "cancelled" | "past_due" | "trialing";
|
|
1900
|
+
/** @enum {string} */
|
|
1901
|
+
SubscriptionCreditStatus: "available" | "redeemed" | "expired";
|
|
1902
|
+
/** @enum {string} */
|
|
1903
|
+
SubscriptionPeriod: "week" | "month" | "year";
|
|
1904
|
+
/** @enum {string} */
|
|
1393
1905
|
TeamOrderStatus: "draft" | "collecting" | "locked" | "placed" | "ready" | "completed" | "cancelled";
|
|
1394
1906
|
/** @enum {string} */
|
|
1907
|
+
Unit: "grams" | "kilograms" | "liters" | "milliliters" | "pieces";
|
|
1908
|
+
/** @enum {string} */
|
|
1909
|
+
MentionEntityType: "dish" | "beverage" | "ingredient" | "menu" | "ritual";
|
|
1910
|
+
/** @enum {string} */
|
|
1911
|
+
MentionKind: "link" | "value";
|
|
1912
|
+
/** @enum {string} */
|
|
1913
|
+
PendingSuperadminTransferStatus: "pending_invite" | "accepted_awaiting_payment" | "completed" | "cancelled" | "expired";
|
|
1914
|
+
/** @enum {string} */
|
|
1915
|
+
BillingMode: "single_anchor" | "split";
|
|
1916
|
+
/** @enum {string} */
|
|
1917
|
+
VenueChargeKind: "base" | "addon";
|
|
1918
|
+
/** @enum {string} */
|
|
1919
|
+
AssetType: "image" | "video" | "document";
|
|
1920
|
+
/** @enum {string} */
|
|
1921
|
+
Jurisdiction: "DE" | "CH" | "FR" | "IT";
|
|
1922
|
+
/** @enum {string} */
|
|
1923
|
+
DayOfWeek: "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday";
|
|
1924
|
+
/** @enum {string} */
|
|
1925
|
+
SlotMode: "interval" | "duration";
|
|
1926
|
+
/** @enum {string} */
|
|
1927
|
+
TeamOrderPaymentStatus: "authorized" | "captured" | "cash_pending" | "cash_received" | "voided" | "failed";
|
|
1928
|
+
/** @enum {string} */
|
|
1929
|
+
FeatureCategory: "articles" | "auth" | "billing" | "core" | "customers" | "events" | "inventory" | "menus" | "orders" | "platform" | "promotions" | "reservations" | "settings" | "venues";
|
|
1930
|
+
/** @enum {string} */
|
|
1931
|
+
FeatureStatus: "backlog" | "in_development" | "released";
|
|
1932
|
+
/** @enum {string} */
|
|
1933
|
+
MentionFieldFormatter: "text" | "currency" | "integer" | "percentage" | "boolean";
|
|
1934
|
+
/** @enum {string} */
|
|
1935
|
+
PromotionBenefitType: "free_item" | "discount_percentage" | "discount_amount" | "buy_x_get_y";
|
|
1936
|
+
/** @enum {string} */
|
|
1937
|
+
ReservationPromotionStatus: "applied" | "redeemed" | "expired";
|
|
1938
|
+
/** @enum {string} */
|
|
1939
|
+
ReservationStatus: "pending" | "confirmed" | "arrived" | "seated" | "completed" | "cancelled" | "no_show";
|
|
1940
|
+
/** @enum {string} */
|
|
1941
|
+
VenueAssetType: "logomark" | "wordmark" | "combinationmark_horizontal" | "combinationmark_vertical";
|
|
1942
|
+
/** @enum {string} */
|
|
1943
|
+
VenueUserStatus: "pending" | "confirmed" | "revoked";
|
|
1944
|
+
/** @enum {string} */
|
|
1945
|
+
VenueType: "restaurant" | "fine_dining_restaurant" | "ghost_kitchen" | "food_truck";
|
|
1946
|
+
/** @enum {string} */
|
|
1395
1947
|
ParticipantStatus: "browsing" | "authorized" | "cash_pending" | "placed" | "completed" | "cancelled";
|
|
1948
|
+
/** @enum {string} */
|
|
1949
|
+
EnumTrue: "true";
|
|
1950
|
+
/** @enum {string} */
|
|
1951
|
+
EnumFalse: "false";
|
|
1396
1952
|
};
|
|
1397
1953
|
responses: never;
|
|
1398
1954
|
parameters: never;
|
|
@@ -1410,12 +1966,12 @@ type GetArticleResponse = schemas['FetchArticleResponse'];
|
|
|
1410
1966
|
type PatchArticleRequest = schemas['EditArticleRequest'];
|
|
1411
1967
|
type PatchArticleResponse = schemas['EditArticleResponse'];
|
|
1412
1968
|
type FeatureImage = schemas['FeatureImage'];
|
|
1413
|
-
type PatchFeatureImageRequest = schemas['
|
|
1969
|
+
type PatchFeatureImageRequest = schemas['PatchArticleFeatureImageBody'];
|
|
1414
1970
|
/**
|
|
1415
1971
|
* Args for `client.articles.uploadFeatureImage()`. The SDK accepts a
|
|
1416
1972
|
* `Buffer` or `Uint8Array` payload + filename + content-type — it
|
|
1417
1973
|
* builds the FormData internally so callers don't have to know about
|
|
1418
|
-
* multipart wire encoding.
|
|
1974
|
+
* multipart wire encoding. Client ergonomics, no wire equivalent.
|
|
1419
1975
|
*/
|
|
1420
1976
|
interface UploadFeatureImageArgs {
|
|
1421
1977
|
data: Buffer | Uint8Array;
|
|
@@ -1433,13 +1989,12 @@ interface ListArticlesOptions {
|
|
|
1433
1989
|
type Venue = schemas['GetVenueResponse'];
|
|
1434
1990
|
type GetVenueResponse = schemas['GetVenueResponse'];
|
|
1435
1991
|
/**
|
|
1436
|
-
* Order fulfillment type
|
|
1437
|
-
*
|
|
1992
|
+
* Order fulfillment type — bound to the generated `FulfillmentType`
|
|
1993
|
+
* component (order3000's `order_fulfillment_type` enum, surfaced via
|
|
1994
|
+
* `openapi-typescript`). Never hand-rolled.
|
|
1438
1995
|
*/
|
|
1439
|
-
type OrderFulfillmentType = '
|
|
1440
|
-
type PlaceOrderRequest = Omit<schemas['PlaceOrderRequest'], '
|
|
1441
|
-
/** Fulfillment type for the order (pickup or delivery) */
|
|
1442
|
-
fulfillmentType?: OrderFulfillmentType;
|
|
1996
|
+
type OrderFulfillmentType = schemas['FulfillmentType'];
|
|
1997
|
+
type PlaceOrderRequest = Omit<schemas['PlaceOrderRequest'], 'fulfillmentAt'> & {
|
|
1443
1998
|
/**
|
|
1444
1999
|
* When the order should be fulfilled (ISO 8601 datetime or Date).
|
|
1445
2000
|
* Null / omitted in team-order mode — the Lead's pickup-time decision
|
|
@@ -1447,127 +2002,56 @@ type PlaceOrderRequest = Omit<schemas['PlaceOrderRequest'], 'taxAmount' | 'total
|
|
|
1447
2002
|
* submit time.
|
|
1448
2003
|
*/
|
|
1449
2004
|
fulfillmentAt?: Date | string | null;
|
|
1450
|
-
/** Guest session identifier for customer lookup */
|
|
1451
|
-
sessionId?: string;
|
|
1452
|
-
/** Customer first name (for cash orders) */
|
|
1453
|
-
customerFirstName?: string;
|
|
1454
|
-
/** Customer last name (for cash orders) */
|
|
1455
|
-
customerLastName?: string;
|
|
1456
|
-
/** Customer email address (for cash orders) */
|
|
1457
|
-
customerEmail?: string;
|
|
1458
|
-
/**
|
|
1459
|
-
* Deposit containers the customer declares they will return at pickup.
|
|
1460
|
-
* Per-template references only — order3000 refuses any inbound deposit
|
|
1461
|
-
* money amount.
|
|
1462
|
-
*/
|
|
1463
|
-
declaredReturns?: DeclaredReturn[];
|
|
1464
2005
|
};
|
|
1465
2006
|
type PlaceOrderResponse = schemas['PlaceOrderResponse'];
|
|
1466
2007
|
type MakeReservationRequest = schemas['MakeReservationRequest'];
|
|
1467
2008
|
type MakeReservationResponse = schemas['MakeReservationResponse'];
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
createdAt: string | null;
|
|
1515
|
-
}
|
|
1516
|
-
interface Promotion {
|
|
1517
|
-
id: string;
|
|
1518
|
-
venueId: string;
|
|
1519
|
-
name: Record<string, string>;
|
|
1520
|
-
description: Record<string, string> | null;
|
|
1521
|
-
benefitType: 'free_item' | 'discount_percentage' | 'discount_amount' | 'buy_x_get_y';
|
|
1522
|
-
benefitValue: Record<string, unknown>;
|
|
1523
|
-
conditions: Record<string, unknown> | null;
|
|
1524
|
-
maxRedemptions: number | null;
|
|
1525
|
-
currentRedemptions: number | null;
|
|
1526
|
-
validFrom: string | null;
|
|
1527
|
-
validTo: string | null;
|
|
1528
|
-
isActive: boolean;
|
|
1529
|
-
createdBy: string | null;
|
|
1530
|
-
updatedBy: string | null;
|
|
1531
|
-
createdAt: string | null;
|
|
1532
|
-
updatedAt: string | null;
|
|
1533
|
-
timeSlotIds?: string[] | null;
|
|
1534
|
-
}
|
|
1535
|
-
interface Event {
|
|
1536
|
-
id: string;
|
|
1537
|
-
venueId: string;
|
|
1538
|
-
name: Record<string, string>;
|
|
1539
|
-
description: Record<string, string> | null;
|
|
1540
|
-
scheduleId: string | null;
|
|
1541
|
-
maxBookings: number | null;
|
|
1542
|
-
maxGuests: number | null;
|
|
1543
|
-
minPartySize: number | null;
|
|
1544
|
-
maxPartySize: number | null;
|
|
1545
|
-
isPublic: boolean;
|
|
1546
|
-
isRecurring: boolean;
|
|
1547
|
-
isClosed: boolean;
|
|
1548
|
-
reservationsEnabled: boolean;
|
|
1549
|
-
bookingOpensAtDays: number | null;
|
|
1550
|
-
/** Offset (ms) before event when booking closes (codebase convention: ms). */
|
|
1551
|
-
bookingClosesAtOffset: number | null;
|
|
1552
|
-
isActive: boolean;
|
|
1553
|
-
/** Whether this event should be displayed prominently in public-facing areas */
|
|
1554
|
-
isFeatured: boolean;
|
|
1555
|
-
/** Priority for conflict resolution (higher = takes precedence) */
|
|
1556
|
-
priority: number;
|
|
1557
|
-
createdBy: string | null;
|
|
1558
|
-
updatedBy: string | null;
|
|
1559
|
-
createdAt: string | null;
|
|
1560
|
-
updatedAt: string | null;
|
|
1561
|
-
schedule: Schedule | null;
|
|
1562
|
-
posters: EventPoster[];
|
|
1563
|
-
promotions: Promotion[];
|
|
1564
|
-
/** Regular time slots (by day of week) */
|
|
1565
|
-
timeSlots: TimeSlot[];
|
|
1566
|
-
/** Date-specific schedule overrides */
|
|
1567
|
-
scheduleOverrides: ScheduleOverride[];
|
|
1568
|
-
/** Next occurrence date for recurring events (YYYY-MM-DD format) */
|
|
1569
|
-
nextOccurrence?: string | null;
|
|
1570
|
-
}
|
|
2009
|
+
/**
|
|
2010
|
+
* Day of week — generated-bound to the `dayOfWeek` enum carried by the
|
|
2011
|
+
* events list schedule time-slot rows. The order3000 events output
|
|
2012
|
+
* schema is now precise (no more `.passthrough()`), so this derives
|
|
2013
|
+
* straight from the wire contract.
|
|
2014
|
+
*/
|
|
2015
|
+
type DayOfWeek = NonNullable<NonNullable<schemas['FetchEventsResponse'][number]['schedule']>['scheduleTimeSlots'][number]['dayOfWeek']>;
|
|
2016
|
+
/**
|
|
2017
|
+
* A single event time slot — the one slot shape, used by both the weekly
|
|
2018
|
+
* recurring `timeSlots[]` and the per-date `scheduleOverrides[].timeSlots[]`.
|
|
2019
|
+
* `dayOfWeek` is present only on weekly slots (optional); every field is
|
|
2020
|
+
* optional because the underlying join row may be absent, so consumers
|
|
2021
|
+
* resolving "the slots bookable on date X" must guard. Generated-bound to
|
|
2022
|
+
* the events list response's `timeSlots[]` element.
|
|
2023
|
+
*/
|
|
2024
|
+
type TimeSlot = schemas['FetchEventsResponse'][number]['timeSlots'][number];
|
|
2025
|
+
/**
|
|
2026
|
+
* A date-specific schedule override for an event. Generated-bound to the
|
|
2027
|
+
* events list response's `scheduleOverrides[]` element.
|
|
2028
|
+
*/
|
|
2029
|
+
type ScheduleOverride = schemas['FetchEventsResponse'][number]['scheduleOverrides'][number];
|
|
2030
|
+
/**
|
|
2031
|
+
* An event's schedule (rrule, validity window, slot-generation settings,
|
|
2032
|
+
* plus the nested override / time-slot rows). Generated-bound to the
|
|
2033
|
+
* non-null `schedule` object on the events list response.
|
|
2034
|
+
*
|
|
2035
|
+
* `intervalDuration` / `duration` are milliseconds (codebase convention).
|
|
2036
|
+
*/
|
|
2037
|
+
type Schedule = NonNullable<schemas['FetchEventsResponse'][number]['schedule']>;
|
|
2038
|
+
/**
|
|
2039
|
+
* An event poster (image/video/document asset attached to an event).
|
|
2040
|
+
* Generated-bound to the events list response's `posters[]` element.
|
|
2041
|
+
*/
|
|
2042
|
+
type EventPoster = schemas['FetchEventsResponse'][number]['posters'][number];
|
|
2043
|
+
/**
|
|
2044
|
+
* A promotion attached to an event. Generated-bound to the events list
|
|
2045
|
+
* response's `promotions[]` element.
|
|
2046
|
+
*/
|
|
2047
|
+
type Promotion = schemas['FetchEventsResponse'][number]['promotions'][number];
|
|
2048
|
+
/**
|
|
2049
|
+
* A single event as returned by the list endpoint, with schedule,
|
|
2050
|
+
* posters, promotions, time slots and overrides inlined. Generated-bound
|
|
2051
|
+
* to the events list response element — request-shape drift is now
|
|
2052
|
+
* impossible.
|
|
2053
|
+
*/
|
|
2054
|
+
type Event = schemas['FetchEventsResponse'][number];
|
|
1571
2055
|
interface ListEventsOptions {
|
|
1572
2056
|
/** Include private events in the response */
|
|
1573
2057
|
includePrivate?: boolean;
|
|
@@ -1582,11 +2066,20 @@ interface ListEventsOptions {
|
|
|
1582
2066
|
/** Filter for events occurring within N days from today */
|
|
1583
2067
|
upcomingWithinDays?: number;
|
|
1584
2068
|
}
|
|
1585
|
-
type ListEventsResponse = Event[];
|
|
1586
|
-
type MenuItemType = 'dish' | 'beverage';
|
|
1587
2069
|
/**
|
|
1588
|
-
*
|
|
1589
|
-
*
|
|
2070
|
+
* The events list response — generated-bound to `FetchEventsResponse`
|
|
2071
|
+
* (an array of {@link Event}). Never hand-rolled.
|
|
2072
|
+
*/
|
|
2073
|
+
type ListEventsResponse = schemas['FetchEventsResponse'];
|
|
2074
|
+
/**
|
|
2075
|
+
* Menu item discriminant — generated-bound to the `type` enum on the
|
|
2076
|
+
* menu response's `items[]` element. The `fetchMenu` output schema is
|
|
2077
|
+
* now precise; never hand-rolled.
|
|
2078
|
+
*/
|
|
2079
|
+
type MenuItemType = NonNullable<schemas['FetchMenuResponse']['items']>[number]['type'];
|
|
2080
|
+
/**
|
|
2081
|
+
* Crop area coordinates for assets. Shared UI helper (mirrors the
|
|
2082
|
+
* `@kolaveri/molecules` Cropper type) — not a wire DTO.
|
|
1590
2083
|
*/
|
|
1591
2084
|
interface CropArea {
|
|
1592
2085
|
x: number;
|
|
@@ -1594,599 +2087,220 @@ interface CropArea {
|
|
|
1594
2087
|
width: number;
|
|
1595
2088
|
height: number;
|
|
1596
2089
|
}
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
accessor: string;
|
|
1629
|
-
name: Record<string, string>;
|
|
1630
|
-
shortName?: Record<string, string>;
|
|
1631
|
-
description: Record<string, string> | null;
|
|
1632
|
-
longDescription?: Record<string, string> | null;
|
|
1633
|
-
assets?: MenuAsset[];
|
|
1634
|
-
}
|
|
1635
|
-
interface MenuItem {
|
|
1636
|
-
id: string;
|
|
1637
|
-
type: MenuItemType;
|
|
1638
|
-
tags: string[] | null;
|
|
1639
|
-
/** Price adjustment in cents (adds to bundle base price) */
|
|
1640
|
-
priceAdjustment: number;
|
|
1641
|
-
currency: CurrencyCode;
|
|
1642
|
-
isActive: boolean;
|
|
1643
|
-
/** Whether this menu item should get a dedicated SEO detail page on consumer sites */
|
|
1644
|
-
isFeatured: boolean;
|
|
1645
|
-
sortIndex: string | null;
|
|
1646
|
-
dish: MenuDish | null;
|
|
1647
|
-
beverage: MenuBeverage | null;
|
|
1648
|
-
}
|
|
1649
|
-
interface Menu {
|
|
1650
|
-
id: string;
|
|
1651
|
-
venueId: string;
|
|
1652
|
-
accessor: string;
|
|
1653
|
-
name: Record<string, string>;
|
|
1654
|
-
description: Record<string, string> | null;
|
|
1655
|
-
items?: MenuItem[];
|
|
1656
|
-
/**
|
|
1657
|
-
* Menu-level assets surfaced via the `menu_assets` junction. Populated
|
|
1658
|
-
* when the caller passes `expand: ['assets']` (or `['items', 'assets']`)
|
|
1659
|
-
* to `menus.getByAccessor` / `menus.get`. These are distinct from the
|
|
1660
|
-
* per-item `dish.assets` / `beverage.assets` arrays — menu-level assets
|
|
1661
|
-
* are curated for the menu as a whole (e.g. blog carousel imagery).
|
|
1662
|
-
*/
|
|
1663
|
-
assets?: MenuAsset[];
|
|
1664
|
-
}
|
|
2090
|
+
/**
|
|
2091
|
+
* A menu — generated-bound to `FetchMenuResponse`. order3000's
|
|
2092
|
+
* `fetchMenu` action always projects the flat, hydrated client view:
|
|
2093
|
+
* `assets[]` (menu-level) and every `items[].dish.assets[]` /
|
|
2094
|
+
* `items[].beverage.assets[]` are resolved to flat assets carrying
|
|
2095
|
+
* their Supabase `publicUrl`; the raw `*_assets` junction relations are
|
|
2096
|
+
* stripped at source and never surface on the wire. Bound here via the
|
|
2097
|
+
* same alias-derivation style as `Basket`/`BasketItem`.
|
|
2098
|
+
*/
|
|
2099
|
+
type Menu = NonNullable<schemas['FetchMenuResponse']>;
|
|
2100
|
+
/**
|
|
2101
|
+
* A single menu item — generated-bound to the element type of
|
|
2102
|
+
* `Menu.items[]` (present when `expand=items`).
|
|
2103
|
+
*/
|
|
2104
|
+
type MenuItem = NonNullable<Menu['items']>[number];
|
|
2105
|
+
/**
|
|
2106
|
+
* The dish carried by a menu item — generated-bound to `MenuItem.dish`.
|
|
2107
|
+
*/
|
|
2108
|
+
type MenuDish = NonNullable<MenuItem['dish']>;
|
|
2109
|
+
/**
|
|
2110
|
+
* The beverage carried by a menu item — generated-bound to
|
|
2111
|
+
* `MenuItem.beverage`.
|
|
2112
|
+
*/
|
|
2113
|
+
type MenuBeverage = NonNullable<MenuItem['beverage']>;
|
|
2114
|
+
/**
|
|
2115
|
+
* A flat, hydrated asset — generated-bound to the element type of the
|
|
2116
|
+
* always-present menu-level `Menu.assets[]`. Identical in shape to the
|
|
2117
|
+
* per-item `dish.assets[]` / `beverage.assets[]` elements (all are the
|
|
2118
|
+
* same hydrated asset projection with a resolved `publicUrl`).
|
|
2119
|
+
*/
|
|
2120
|
+
type MenuAsset = NonNullable<Menu['assets']>[number];
|
|
1665
2121
|
interface GetMenuOptions {
|
|
1666
2122
|
/** Expand related resources (items, assets) */
|
|
1667
2123
|
expand?: ('items' | 'assets')[];
|
|
1668
2124
|
}
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
interface ScheduleTimeSlot {
|
|
1705
|
-
dayOfWeek: DayOfWeek | null;
|
|
1706
|
-
timeSlot: {
|
|
1707
|
-
id: string;
|
|
1708
|
-
startTime: string;
|
|
1709
|
-
endTime: string | null;
|
|
1710
|
-
isActive: boolean | null;
|
|
1711
|
-
isSchedulable: boolean | null;
|
|
1712
|
-
};
|
|
1713
|
-
}
|
|
1714
|
-
interface ScheduleWithTimeSlots extends Schedule {
|
|
1715
|
-
scheduleTimeSlots?: ScheduleTimeSlot[];
|
|
1716
|
-
}
|
|
1717
|
-
interface EventMenu {
|
|
1718
|
-
id: string;
|
|
1719
|
-
accessor: string;
|
|
1720
|
-
name: Record<string, string>;
|
|
1721
|
-
category: string;
|
|
1722
|
-
}
|
|
1723
|
-
interface EventByAccessor {
|
|
1724
|
-
id: string;
|
|
1725
|
-
venueId: string;
|
|
1726
|
-
accessor: string | null;
|
|
1727
|
-
name: Record<string, string>;
|
|
1728
|
-
description: Record<string, string> | null;
|
|
1729
|
-
scheduleId: string | null;
|
|
1730
|
-
maxBookings: number | null;
|
|
1731
|
-
maxGuests: number | null;
|
|
1732
|
-
minPartySize: number | null;
|
|
1733
|
-
maxPartySize: number | null;
|
|
1734
|
-
isPublic: boolean;
|
|
1735
|
-
isRecurring: boolean;
|
|
1736
|
-
reservationsEnabled: boolean;
|
|
1737
|
-
bookingOpensAtDays: number | null;
|
|
1738
|
-
bookingClosesAtOffset: number | null;
|
|
1739
|
-
isActive: boolean;
|
|
1740
|
-
isFeatured: boolean;
|
|
1741
|
-
priority: number;
|
|
1742
|
-
createdAt: string | null;
|
|
1743
|
-
updatedAt: string | null;
|
|
1744
|
-
schedule?: ScheduleWithTimeSlots;
|
|
1745
|
-
menus?: EventMenu[];
|
|
1746
|
-
posters?: EventPoster[];
|
|
1747
|
-
/** Next occurrence date for recurring events (YYYY-MM-DD format) */
|
|
1748
|
-
nextOccurrence?: string | null;
|
|
1749
|
-
}
|
|
2125
|
+
/**
|
|
2126
|
+
* Wire shape for a single menu bundle, bound to the generated OpenAPI
|
|
2127
|
+
* schema (`FetchMenuBundlesResponse`) — never hand-rolled. The
|
|
2128
|
+
* authoritative contract is order3000's `fetchMenuBundles` output
|
|
2129
|
+
* schema, surfaced here via `openapi-typescript`. Notably `price` is
|
|
2130
|
+
* `{ amount, currency }`, not a bare number.
|
|
2131
|
+
*/
|
|
2132
|
+
type MenuBundle = schemas['FetchMenuBundlesResponse'][number];
|
|
2133
|
+
type MenuBundleDeposit = NonNullable<MenuBundle['deposit']>;
|
|
2134
|
+
/**
|
|
2135
|
+
* A single event as returned by the `getByAccessor` endpoint, with
|
|
2136
|
+
* optional schedule / menus / posters expansions. Generated-bound to the
|
|
2137
|
+
* `FetchEventResponse` component (the order3000 `fetchEvent` output
|
|
2138
|
+
* schema is now precise) — request-shape drift is impossible.
|
|
2139
|
+
*/
|
|
2140
|
+
type EventByAccessor = schemas['FetchEventResponse'];
|
|
2141
|
+
/**
|
|
2142
|
+
* The `getByAccessor` event's schedule sub-object, including the optional
|
|
2143
|
+
* `scheduleTimeSlots[]` expansion. Generated-bound to the non-null
|
|
2144
|
+
* `schedule` on `FetchEventResponse`. Kept as a distinct public SDK type
|
|
2145
|
+
* name (re-exported as `O3KScheduleWithTimeSlots`) for downstream
|
|
2146
|
+
* stability; structurally it is the by-accessor schedule shape.
|
|
2147
|
+
*/
|
|
2148
|
+
type ScheduleWithTimeSlots = NonNullable<EventByAccessor['schedule']>;
|
|
2149
|
+
/**
|
|
2150
|
+
* A single regular time slot on the by-accessor event's schedule.
|
|
2151
|
+
* Generated-bound to the element type of the (optional)
|
|
2152
|
+
* `schedule.scheduleTimeSlots[]` array on `FetchEventResponse`.
|
|
2153
|
+
*/
|
|
2154
|
+
type ScheduleTimeSlot = NonNullable<ScheduleWithTimeSlots['scheduleTimeSlots']>[number];
|
|
2155
|
+
/**
|
|
2156
|
+
* A menu summary attached to a by-accessor event. Generated-bound to the
|
|
2157
|
+
* element type of `FetchEventResponse`'s optional `menus[]` array.
|
|
2158
|
+
*/
|
|
2159
|
+
type EventMenu = NonNullable<EventByAccessor['menus']>[number];
|
|
1750
2160
|
interface GetEventOptions {
|
|
1751
2161
|
/** Expand related resources (schedule, timeSlots, menus, posters) */
|
|
1752
2162
|
expand?: ('schedule' | 'timeSlots' | 'menus' | 'posters')[];
|
|
1753
2163
|
}
|
|
1754
|
-
type AreaBookingMode = '
|
|
1755
|
-
type AreaBookingRequestStatus = '
|
|
1756
|
-
type AreaBookingRequestSource = '
|
|
1757
|
-
type AreaBookingStatus = '
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
tags: string[] | null;
|
|
1762
|
-
filename: string;
|
|
1763
|
-
contentType: string;
|
|
1764
|
-
metadata: {
|
|
1765
|
-
width?: number;
|
|
1766
|
-
height?: number;
|
|
1767
|
-
duration?: number;
|
|
1768
|
-
} | null;
|
|
1769
|
-
cropArea: CropArea | null;
|
|
1770
|
-
publicUrl: string;
|
|
1771
|
-
}
|
|
1772
|
-
interface AreaFeature {
|
|
1773
|
-
icon: string;
|
|
1774
|
-
label: Record<string, string>;
|
|
1775
|
-
description?: Record<string, string>;
|
|
1776
|
-
}
|
|
1777
|
-
interface Area {
|
|
1778
|
-
id: string;
|
|
1779
|
-
venueId: string;
|
|
1780
|
-
accessor: string;
|
|
1781
|
-
name: Record<string, string>;
|
|
1782
|
-
description: Record<string, string> | null;
|
|
1783
|
-
longDescription: Record<string, string> | null;
|
|
1784
|
-
minCapacity: number | null;
|
|
1785
|
-
maxCapacity: number;
|
|
1786
|
-
currency: Currency;
|
|
1787
|
-
/** Base price in cents (flat price per booking). Null when pricing is per-person only. */
|
|
1788
|
-
basePrice: number | null;
|
|
1789
|
-
/** Per-guest price in cents. Null when pricing is base-only. */
|
|
1790
|
-
perPersonPrice: number | null;
|
|
1791
|
-
features: AreaFeature[] | null;
|
|
1792
|
-
bookingMode: AreaBookingMode;
|
|
1793
|
-
assets?: AreaAsset[];
|
|
1794
|
-
}
|
|
2164
|
+
type AreaBookingMode = schemas['FetchAreaResponse']['bookingMode'];
|
|
2165
|
+
type AreaBookingRequestStatus = schemas['SubmitAreaBookingRequestResponse']['status'];
|
|
2166
|
+
type AreaBookingRequestSource = schemas['SubmitAreaBookingRequestResponse']['source'];
|
|
2167
|
+
type AreaBookingStatus = schemas['FetchAreaBookingsResponse'][number]['status'];
|
|
2168
|
+
type AreaAsset = NonNullable<schemas['FetchAreaResponse']['assets']>[number];
|
|
2169
|
+
type AreaFeature = NonNullable<schemas['FetchAreaResponse']['features']>[number];
|
|
2170
|
+
type Area = schemas['FetchAreaResponse'];
|
|
1795
2171
|
interface GetAreaOptions {
|
|
1796
2172
|
expand?: 'assets'[];
|
|
1797
2173
|
}
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
date: string;
|
|
1801
|
-
/** HH:MM:SS, null for day-mode bookings */
|
|
1802
|
-
startTime: string | null;
|
|
1803
|
-
endTime: string | null;
|
|
1804
|
-
}
|
|
1805
|
-
interface AreaAvailabilityResponse {
|
|
1806
|
-
from: string;
|
|
1807
|
-
to: string;
|
|
1808
|
-
bookingMode: AreaBookingMode;
|
|
1809
|
-
occupied: AreaAvailabilityWindow[];
|
|
1810
|
-
}
|
|
2174
|
+
type AreaAvailabilityWindow = schemas['GetAreaAvailabilityResponse']['occupied'][number];
|
|
2175
|
+
type AreaAvailabilityResponse = schemas['GetAreaAvailabilityResponse'];
|
|
1811
2176
|
interface GetAreaAvailabilityOptions {
|
|
1812
2177
|
/** YYYY-MM-DD — defaults to today */
|
|
1813
2178
|
from?: string;
|
|
1814
2179
|
/** YYYY-MM-DD — defaults to today + 90d */
|
|
1815
2180
|
to?: string;
|
|
1816
2181
|
}
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
requestedDate: string;
|
|
1820
|
-
/** HH:MM:SS — omit for day-mode bookings */
|
|
1821
|
-
requestedStartTime?: string;
|
|
1822
|
-
requestedEndTime?: string;
|
|
1823
|
-
partySize: number;
|
|
1824
|
-
customerFirstName: string;
|
|
1825
|
-
customerLastName: string;
|
|
1826
|
-
customerEmail: string;
|
|
1827
|
-
customerPhone?: string;
|
|
1828
|
-
message?: string;
|
|
1829
|
-
source?: AreaBookingRequestSource;
|
|
1830
|
-
}
|
|
1831
|
-
interface AreaBookingRequestResponse {
|
|
1832
|
-
id: string;
|
|
1833
|
-
venueId: string;
|
|
1834
|
-
areaId: string;
|
|
1835
|
-
requestedDate: string;
|
|
1836
|
-
requestedStartTime: string | null;
|
|
1837
|
-
requestedEndTime: string | null;
|
|
1838
|
-
partySize: number;
|
|
1839
|
-
customerFirstName: string;
|
|
1840
|
-
customerLastName: string;
|
|
1841
|
-
customerEmail: string;
|
|
1842
|
-
customerPhone: string | null;
|
|
1843
|
-
message: string | null;
|
|
1844
|
-
source: AreaBookingRequestSource;
|
|
1845
|
-
status: AreaBookingRequestStatus;
|
|
1846
|
-
areaBookingId: string | null;
|
|
1847
|
-
createdAt: string | null;
|
|
1848
|
-
updatedAt: string | null;
|
|
1849
|
-
}
|
|
1850
|
-
type BasketStatus = 'active' | 'abandoned' | 'converted';
|
|
1851
|
-
type Currency = 'EUR' | 'CHF';
|
|
2182
|
+
type SubmitAreaBookingRequestPayload = schemas['SubmitAreaBookingPayload'];
|
|
2183
|
+
type AreaBookingRequestResponse = schemas['SubmitAreaBookingRequestResponse'];
|
|
1852
2184
|
/**
|
|
1853
|
-
*
|
|
2185
|
+
* Canonical basket — generated-bound to the `FetchBasketResponse`
|
|
2186
|
+
* component (the order3000 `fetchBasket` output schema is now precise).
|
|
2187
|
+
* Returned by `baskets.get(sessionId)`.
|
|
1854
2188
|
*/
|
|
1855
|
-
type
|
|
2189
|
+
type Basket = NonNullable<schemas['FetchBasketResponse']>;
|
|
1856
2190
|
/**
|
|
1857
|
-
*
|
|
1858
|
-
*
|
|
1859
|
-
* Each menu item can have its own portion size (quantity + unit),
|
|
1860
|
-
* allowing for precise tracking like "100g rice, 80g curry".
|
|
2191
|
+
* Basket lifecycle status — generated-bound to the `status` enum on
|
|
2192
|
+
* `FetchBasketResponse`. No longer a bare wire `string`.
|
|
1861
2193
|
*/
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
role: string | null;
|
|
1865
|
-
quantity: number;
|
|
1866
|
-
unit: Unit;
|
|
1867
|
-
}
|
|
1868
|
-
interface BasketItemMetadata {
|
|
1869
|
-
type?: 'tiffinbox' | 'bowl' | 'sushi';
|
|
1870
|
-
mode?: 2 | 3;
|
|
1871
|
-
upsell?: {
|
|
1872
|
-
tinOption: string;
|
|
1873
|
-
rollOption: string;
|
|
1874
|
-
};
|
|
1875
|
-
price?: number;
|
|
1876
|
-
[key: string]: unknown;
|
|
1877
|
-
}
|
|
2194
|
+
type BasketStatus = Basket['status'];
|
|
2195
|
+
type Currency = schemas['BasketTotals']['currency'];
|
|
1878
2196
|
/**
|
|
1879
|
-
*
|
|
1880
|
-
*
|
|
1881
|
-
* money amount; this object is outbound-only, for UI display.
|
|
2197
|
+
* Unit of measurement for portion tracking. Bound to the generated
|
|
2198
|
+
* add-to-basket request shape.
|
|
1882
2199
|
*/
|
|
1883
|
-
|
|
1884
|
-
depositwareTemplateId: string;
|
|
1885
|
-
name: Record<string, string>;
|
|
1886
|
-
amount: number;
|
|
1887
|
-
currency: Currency;
|
|
1888
|
-
}
|
|
2200
|
+
type Unit = NonNullable<schemas['AddToBasketRequest']['menuItems'][number]['unit']>;
|
|
1889
2201
|
/**
|
|
1890
|
-
* A basket item
|
|
1891
|
-
*
|
|
1892
|
-
*
|
|
1893
|
-
*
|
|
1894
|
-
* COUNT of basket items, not a sum of quantities.
|
|
2202
|
+
* A single basket item — generated-bound to the element type of
|
|
2203
|
+
* `FetchBasketResponse.items[]`. One physical product (e.g. a TiffinBox
|
|
2204
|
+
* with rice, curry, and sides); `Basket.itemCount` is the COUNT of basket
|
|
2205
|
+
* items, not a sum of menu-item quantities.
|
|
1895
2206
|
*/
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
* Server-persisted declared-return counts (from `baskets.declared_returns`).
|
|
1920
|
-
* Reflects the participant's last chip click. Clients seed their
|
|
1921
|
-
* local `declaredReturns` store from this at hydration time so the
|
|
1922
|
-
* chip count + Gesamt are consistent on first paint. Only positive
|
|
1923
|
-
* counts are present; zero entries are stripped.
|
|
1924
|
-
*/
|
|
1925
|
-
declaredReturns: DeclaredReturn[];
|
|
1926
|
-
expiresAt: string;
|
|
1927
|
-
createdAt: string | null;
|
|
1928
|
-
updatedAt: string | null;
|
|
1929
|
-
}
|
|
2207
|
+
type BasketItem = Basket['items'][number];
|
|
2208
|
+
/**
|
|
2209
|
+
* Reference to a menu item within a basket item — generated-bound to the
|
|
2210
|
+
* element type of `BasketItem.menuItems[]`. Each ref carries its own
|
|
2211
|
+
* portion size (quantity + unit) for precise tracking like
|
|
2212
|
+
* "100g rice, 80g curry".
|
|
2213
|
+
*/
|
|
2214
|
+
type BasketItemMenuItemRef = BasketItem['menuItems'][number];
|
|
2215
|
+
/**
|
|
2216
|
+
* Free-form per-basket-item metadata bag — generated-bound to the
|
|
2217
|
+
* (nullable) `metadata` object on `FetchBasketResponse.items[]`. The wire
|
|
2218
|
+
* contract types this as an open `{ [key: string]: unknown }` record;
|
|
2219
|
+
* thamarai narrows individual keys (`type`, `mode`, `upsell`, `price`) at
|
|
2220
|
+
* its own transform boundary.
|
|
2221
|
+
*/
|
|
2222
|
+
type BasketItemMetadata = NonNullable<BasketItem['metadata']>;
|
|
2223
|
+
/**
|
|
2224
|
+
* Deposit info on a basket item — generated-bound to the (nullable)
|
|
2225
|
+
* `deposit` object on `FetchBasketResponse.items[]`. order3000 refuses
|
|
2226
|
+
* any inbound deposit money amount; this object is outbound-only, for UI
|
|
2227
|
+
* display.
|
|
2228
|
+
*/
|
|
2229
|
+
type BasketItemDeposit = NonNullable<BasketItem['deposit']>;
|
|
1930
2230
|
/**
|
|
1931
|
-
* Order workflow status
|
|
2231
|
+
* Order workflow status — generated-bound to the `status` enum on
|
|
2232
|
+
* `FetchLatestOrderResponse` (order3000's `order_status`). No longer a
|
|
2233
|
+
* bare wire `string`.
|
|
1932
2234
|
*/
|
|
1933
|
-
type OrderStatus = '
|
|
2235
|
+
type OrderStatus = NonNullable<schemas['FetchLatestOrderResponse']>['status'];
|
|
1934
2236
|
/**
|
|
1935
|
-
* Payment workflow status
|
|
2237
|
+
* Payment workflow status — generated-bound to the `paymentStatus` enum
|
|
2238
|
+
* on `FetchLatestOrderResponse` (order3000's `payment_status`). No longer
|
|
2239
|
+
* a bare wire `string`.
|
|
1936
2240
|
*/
|
|
1937
|
-
type PaymentStatus = '
|
|
2241
|
+
type PaymentStatus = NonNullable<schemas['FetchLatestOrderResponse']>['paymentStatus'];
|
|
1938
2242
|
/**
|
|
1939
2243
|
* The most recent non-team order for a guest session, with the captured
|
|
1940
2244
|
* basket items + totals + declared returns inlined. Returned by
|
|
1941
|
-
* `orders.getLatest(sessionId)
|
|
1942
|
-
*
|
|
1943
|
-
*
|
|
1944
|
-
*
|
|
1945
|
-
*
|
|
2245
|
+
* `orders.getLatest(sessionId)` — `null` when the session has no
|
|
2246
|
+
* qualifying order (fresh sessionIds and team-only sessions both fall
|
|
2247
|
+
* through to `null`). Generated-bound to the `FetchLatestOrderResponse`
|
|
2248
|
+
* component (the order3000 `fetchLatestOrder` output schema is now
|
|
2249
|
+
* precise).
|
|
1946
2250
|
*/
|
|
1947
|
-
|
|
1948
|
-
id: string;
|
|
1949
|
-
/** URL-safe non-guessable id (e.g. `ORD-A3B7K2`). Nullable until backfill. */
|
|
1950
|
-
publicId: string | null;
|
|
1951
|
-
/** Cycling 100→999 per venue. Nullable until PaymentIntent assigns. */
|
|
1952
|
-
quickReferenceNumber: number | null;
|
|
1953
|
-
status: OrderStatus;
|
|
1954
|
-
paymentStatus: PaymentStatus;
|
|
1955
|
-
fulfillmentType: OrderFulfillmentType | null;
|
|
1956
|
-
/** ISO timestamp of pickup / delivery. */
|
|
1957
|
-
fulfillmentAt: string | null;
|
|
1958
|
-
orderedAt: string;
|
|
1959
|
-
totalAmount: number;
|
|
1960
|
-
currency: Currency;
|
|
1961
|
-
/** Captured basket items — same shape `Basket.items` uses. */
|
|
1962
|
-
items: BasketItem[];
|
|
1963
|
-
itemCount: number;
|
|
1964
|
-
/** Captured basket totals; `effectiveTotal` already reflects the credit. */
|
|
1965
|
-
totals: BasketTotals;
|
|
1966
|
-
/** Declared-return counts the customer locked in at submit time. */
|
|
1967
|
-
declaredReturns: DeclaredReturn[];
|
|
1968
|
-
}
|
|
2251
|
+
type LatestOrder = NonNullable<schemas['FetchLatestOrderResponse']>;
|
|
1969
2252
|
/**
|
|
1970
|
-
* One "I'll return N of this template" declaration.
|
|
1971
|
-
*
|
|
1972
|
-
* deposit money amount.
|
|
2253
|
+
* One "I'll return N of this template" declaration. Bound to the
|
|
2254
|
+
* generated basket-totals `returnable` element — clients never specify
|
|
2255
|
+
* a deposit money amount.
|
|
1973
2256
|
*/
|
|
1974
|
-
|
|
1975
|
-
depositwareTemplateId: string;
|
|
1976
|
-
count: number;
|
|
1977
|
-
}
|
|
2257
|
+
type DeclaredReturn = schemas['BasketTotals']['returnable'][number];
|
|
1978
2258
|
/**
|
|
1979
|
-
* Canonical basket totals (all cents)
|
|
1980
|
-
*
|
|
1981
|
-
*
|
|
2259
|
+
* Canonical basket totals (all cents), bound to the generated
|
|
2260
|
+
* `BasketTotals` component. The single figure clients read for every
|
|
2261
|
+
* displayed monetary value.
|
|
1982
2262
|
*/
|
|
1983
|
-
|
|
1984
|
-
currency: Currency;
|
|
1985
|
-
/** Food prices summed across basket items (tax-inclusive, no deposits). */
|
|
1986
|
-
itemsTotal: number;
|
|
1987
|
-
/** Tax portion extracted from `itemsTotal`. */
|
|
1988
|
-
taxAmount: number;
|
|
1989
|
-
/** Sum of deposits currently in the basket (one per returnable item). */
|
|
1990
|
-
depositCharge: number;
|
|
1991
|
-
/** `itemsTotal + depositCharge` — what an un-declared customer pays. */
|
|
1992
|
-
grossTotal: number;
|
|
1993
|
-
/** Credit owed for declared returns (bounded per-template by `returnable`). */
|
|
1994
|
-
depositCredit: number;
|
|
1995
|
-
/** `grossTotal − depositCredit`, clamped to zero. */
|
|
1996
|
-
effectiveTotal: number;
|
|
1997
|
-
/** When `depositCredit > grossTotal`, the excess is a cash refund due. */
|
|
1998
|
-
cashRefund: number;
|
|
1999
|
-
/** How many units of each depositware template the basket currently holds. */
|
|
2000
|
-
returnable: DeclaredReturn[];
|
|
2001
|
-
}
|
|
2263
|
+
type BasketTotals = schemas['BasketTotals'];
|
|
2002
2264
|
/**
|
|
2003
2265
|
* Request to add an item to the basket.
|
|
2004
2266
|
*
|
|
2005
2267
|
* Menu items can optionally include portion information (quantity/unit).
|
|
2006
2268
|
* If not provided, defaults to the menu item's configured portion size.
|
|
2269
|
+
* `venueAccessor` is injected by the SDK resource layer, so it's omitted
|
|
2270
|
+
* from the public caller shape.
|
|
2007
2271
|
*/
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
role?: string;
|
|
2013
|
-
quantity?: number;
|
|
2014
|
-
unit?: Unit;
|
|
2015
|
-
}>;
|
|
2016
|
-
metadata?: BasketItemMetadata;
|
|
2017
|
-
}
|
|
2018
|
-
interface AddToBasketResponse {
|
|
2019
|
-
basketItemId: string;
|
|
2020
|
-
itemCount: number;
|
|
2021
|
-
deposit: BasketItemDeposit | null;
|
|
2022
|
-
/**
|
|
2023
|
-
* Fresh canonical totals for the mutated basket (declaredReturns=[]).
|
|
2024
|
-
* Clients apply this directly to their store — no extra round trip.
|
|
2025
|
-
*/
|
|
2026
|
-
totals: BasketTotals;
|
|
2027
|
-
}
|
|
2028
|
-
interface RemoveFromBasketResponse {
|
|
2029
|
-
success: boolean;
|
|
2030
|
-
basketItemId: string;
|
|
2031
|
-
itemCount: number;
|
|
2032
|
-
/**
|
|
2033
|
-
* Fresh canonical totals for the mutated basket (declaredReturns=[]).
|
|
2034
|
-
* `null` when the basket has no items left after the removal.
|
|
2035
|
-
*/
|
|
2036
|
-
totals: BasketTotals | null;
|
|
2037
|
-
}
|
|
2038
|
-
interface CreatePaymentIntentRequest {
|
|
2039
|
-
basketId: string;
|
|
2040
|
-
currency: Currency;
|
|
2041
|
-
sessionId: string;
|
|
2042
|
-
fulfillmentType?: OrderFulfillmentType;
|
|
2272
|
+
type AddToBasketRequest = Omit<schemas['AddToBasketRequest'], 'venueId'>;
|
|
2273
|
+
type AddToBasketResponse = schemas['AddToBasketResponse'];
|
|
2274
|
+
type RemoveFromBasketResponse = schemas['RemoveFromBasketResponse'];
|
|
2275
|
+
type CreatePaymentIntentRequest = Omit<schemas['CreatePaymentIntentRequest'], 'venueAccessor' | 'fulfillmentAt'> & {
|
|
2043
2276
|
/**
|
|
2044
2277
|
* Optional — null / omitted in team-order mode. The Lead's pickup-time
|
|
2045
2278
|
* decision is stored on the team row and backfilled onto each child
|
|
2046
2279
|
* order at submit time.
|
|
2047
2280
|
*/
|
|
2048
2281
|
fulfillmentAt?: Date | string | null;
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
clientSecret: string;
|
|
2072
|
-
paymentIntentId: string;
|
|
2073
|
-
orderId: string;
|
|
2074
|
-
}
|
|
2075
|
-
interface CreateDeltaPaymentIntentRequest {
|
|
2076
|
-
basketId: string;
|
|
2077
|
-
sessionId: string;
|
|
2078
|
-
currency: Currency;
|
|
2079
|
-
/**
|
|
2080
|
-
* Deposit containers the participant declares they will return at
|
|
2081
|
-
* pickup. Used to apply deposit credit against the delta amount so the
|
|
2082
|
-
* server's `currentTotal` matches the client's displayed effective
|
|
2083
|
-
* total. Per-template references only.
|
|
2084
|
-
*/
|
|
2085
|
-
declaredReturns?: DeclaredReturn[];
|
|
2086
|
-
}
|
|
2087
|
-
interface CreateDeltaPaymentIntentResponse {
|
|
2088
|
-
/** null when Stripe confirmed the off-session PI without further action. */
|
|
2089
|
-
clientSecret: string | null;
|
|
2090
|
-
paymentIntentId: string;
|
|
2091
|
-
orderId: string;
|
|
2092
|
-
/** Delta amount actually charged (cents). */
|
|
2093
|
-
amount: number;
|
|
2094
|
-
/**
|
|
2095
|
-
* Stripe PaymentIntent status after confirm. Typically:
|
|
2096
|
-
* - 'requires_capture' → one-tap succeeded; capture happens at submit
|
|
2097
|
-
* - 'requires_action' → 3DS prompt required; client completes via clientSecret
|
|
2098
|
-
* - 'succeeded' (rare here, auto-capture would have to be set)
|
|
2099
|
-
*/
|
|
2100
|
-
status: string;
|
|
2101
|
-
}
|
|
2102
|
-
interface ReduceDeltaPaymentIntentRequest {
|
|
2103
|
-
basketId: string;
|
|
2104
|
-
sessionId: string;
|
|
2105
|
-
currency: Currency;
|
|
2106
|
-
/**
|
|
2107
|
-
* Deposit containers the participant declares they will return at pickup.
|
|
2108
|
-
* Per-template references only; order3000 refuses any deposit money
|
|
2109
|
-
* amount on input.
|
|
2110
|
-
*/
|
|
2111
|
-
declaredReturns?: DeclaredReturn[];
|
|
2112
|
-
}
|
|
2113
|
-
interface ReduceDeltaPaymentIntentResponse {
|
|
2114
|
-
orderId: string;
|
|
2115
|
-
/** New authorised total (cents) after the reduction. */
|
|
2116
|
-
paidTotal: number;
|
|
2117
|
-
/** Amount actually released (cents). */
|
|
2118
|
-
released: number;
|
|
2119
|
-
}
|
|
2120
|
-
interface ConfirmOrderRequest {
|
|
2121
|
-
paymentIntentId: string;
|
|
2122
|
-
}
|
|
2123
|
-
interface ConfirmOrderResponse {
|
|
2124
|
-
id: string;
|
|
2125
|
-
status: string;
|
|
2126
|
-
publicId: string | null;
|
|
2127
|
-
/** Cycling 100→999 short reference printed on receipts and shown to staff. */
|
|
2128
|
-
quickReferenceNumber: number | null;
|
|
2129
|
-
/** Customer ID for the order (for client-side tracking) */
|
|
2130
|
-
customerId?: string;
|
|
2131
|
-
}
|
|
2132
|
-
type SubscriptionPeriod = 'week' | 'month' | 'year';
|
|
2133
|
-
type SubscriberStatus = 'active' | 'paused' | 'cancelled' | 'past_due' | 'trialing';
|
|
2134
|
-
type SubscriptionCreditStatus = 'available' | 'redeemed' | 'expired';
|
|
2135
|
-
interface MenuSubscriptionPoster {
|
|
2136
|
-
id: string;
|
|
2137
|
-
menuSubscriptionId: string;
|
|
2138
|
-
storagePath: string;
|
|
2139
|
-
/** Public URL for accessing the poster image (no expiry) */
|
|
2140
|
-
publicUrl: string | null;
|
|
2141
|
-
filename: string;
|
|
2142
|
-
contentType: string;
|
|
2143
|
-
sizeBytes: number;
|
|
2144
|
-
sortIndex: string | null;
|
|
2145
|
-
createdBy: string | null;
|
|
2146
|
-
createdAt: string | null;
|
|
2147
|
-
}
|
|
2148
|
-
interface MenuSubscription {
|
|
2149
|
-
id: string;
|
|
2150
|
-
menuId: string;
|
|
2151
|
-
accessor: string;
|
|
2152
|
-
name: Record<string, string>;
|
|
2153
|
-
shortName: Record<string, string> | null;
|
|
2154
|
-
description: Record<string, string> | null;
|
|
2155
|
-
scheduleId: string | null;
|
|
2156
|
-
allowance: number;
|
|
2157
|
-
billingPeriod: SubscriptionPeriod;
|
|
2158
|
-
allowancePeriod: SubscriptionPeriod;
|
|
2159
|
-
redeemableTagSets: string[][];
|
|
2160
|
-
expiryInDays: number;
|
|
2161
|
-
price: number;
|
|
2162
|
-
currency: Currency;
|
|
2163
|
-
isActive: boolean;
|
|
2164
|
-
sortIndex: string | null;
|
|
2165
|
-
posters: MenuSubscriptionPoster[];
|
|
2166
|
-
}
|
|
2167
|
-
interface SubscribeRequest {
|
|
2168
|
-
email: string;
|
|
2169
|
-
firstName?: string;
|
|
2170
|
-
lastName?: string;
|
|
2171
|
-
sessionId?: string;
|
|
2172
|
-
successUrl: string;
|
|
2173
|
-
cancelUrl: string;
|
|
2174
|
-
}
|
|
2175
|
-
interface SubscribeResponse {
|
|
2176
|
-
checkoutUrl: string;
|
|
2177
|
-
sessionId: string;
|
|
2178
|
-
}
|
|
2179
|
-
interface SubscriptionCredit {
|
|
2180
|
-
id: string;
|
|
2181
|
-
subscriberId: string;
|
|
2182
|
-
periodStart: string;
|
|
2183
|
-
periodEnd: string;
|
|
2184
|
-
expiresAt: string;
|
|
2185
|
-
status: SubscriptionCreditStatus;
|
|
2186
|
-
redeemedAt: string | null;
|
|
2187
|
-
orderId: string | null;
|
|
2188
|
-
createdAt: string | null;
|
|
2189
|
-
}
|
|
2282
|
+
};
|
|
2283
|
+
type CreatePaymentIntentResponse = schemas['CreatePaymentIntentResponse'];
|
|
2284
|
+
type CreateDeltaPaymentIntentRequest = Omit<schemas['CreateDeltaPaymentIntentRequest'], 'venueAccessor'>;
|
|
2285
|
+
type CreateDeltaPaymentIntentResponse = schemas['CreateDeltaPaymentIntentResponse'];
|
|
2286
|
+
type ReduceDeltaPaymentIntentRequest = Omit<schemas['ReduceDeltaPaymentIntentRequest'], 'venueAccessor'>;
|
|
2287
|
+
type ReduceDeltaPaymentIntentResponse = schemas['ReduceDeltaPaymentIntentResponse'];
|
|
2288
|
+
type ConfirmOrderRequest = Omit<schemas['ConfirmOrderRequest'], 'venueAccessor' | 'orderId'>;
|
|
2289
|
+
type ConfirmOrderResponse = schemas['ConfirmOrderResponse'];
|
|
2290
|
+
type SubscriptionPeriod = schemas['GetSubscriptionResponse']['billingPeriod'];
|
|
2291
|
+
/**
|
|
2292
|
+
* Subscriber lifecycle status — generated-bound to the `subscriber_status`
|
|
2293
|
+
* pgEnum, surfaced via order3000's `FetchSubscribersResponse[].status`
|
|
2294
|
+
* (and `fetchMenuSubscription`). openapi-typescript hoists the shared
|
|
2295
|
+
* enum into `components.schemas['SubscriberStatus']`.
|
|
2296
|
+
*/
|
|
2297
|
+
type SubscriberStatus = schemas['SubscriberStatus'];
|
|
2298
|
+
type SubscriptionCreditStatus = schemas['GetSubscriptionCreditsResponse'][number]['status'];
|
|
2299
|
+
type MenuSubscriptionPoster = NonNullable<schemas['GetSubscriptionResponse']['posters']>[number];
|
|
2300
|
+
type MenuSubscription = schemas['GetSubscriptionResponse'];
|
|
2301
|
+
type SubscribeRequest = schemas['SubscribeToSubscriptionBody'];
|
|
2302
|
+
type SubscribeResponse = schemas['SubscribeToSubscriptionResponse'];
|
|
2303
|
+
type SubscriptionCredit = schemas['GetSubscriptionCreditsResponse'][number];
|
|
2190
2304
|
|
|
2191
2305
|
declare class AreasResource extends BaseResource {
|
|
2192
2306
|
constructor(tokenManager: TokenManager, baseUrl: string);
|
|
@@ -3035,7 +3149,7 @@ interface MenuItemRow {
|
|
|
3035
3149
|
dish_id: string | null;
|
|
3036
3150
|
beverage_id: string | null;
|
|
3037
3151
|
price_adjustment: number;
|
|
3038
|
-
currency:
|
|
3152
|
+
currency: Currency;
|
|
3039
3153
|
is_active: boolean;
|
|
3040
3154
|
is_featured: boolean;
|
|
3041
3155
|
tags: string[] | null;
|