order3000 0.25.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.cts +957 -848
- package/dist/client.d.mts +957 -848
- package/dist/schemas.cjs +1646 -230
- package/dist/schemas.d.cts +1528 -183
- package/dist/schemas.d.mts +1528 -183
- package/dist/schemas.mjs +1646 -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,191 @@ 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
|
+
isSchedulable: boolean | null;
|
|
744
|
+
}[];
|
|
745
|
+
}[];
|
|
746
|
+
promotions: {
|
|
747
|
+
id: string;
|
|
748
|
+
name: {
|
|
749
|
+
[key: string]: string;
|
|
750
|
+
};
|
|
751
|
+
description: {
|
|
752
|
+
[key: string]: string;
|
|
753
|
+
} | null;
|
|
754
|
+
validFrom: string | null;
|
|
755
|
+
validTo: string | null;
|
|
756
|
+
isActive: boolean;
|
|
757
|
+
updatedAt: unknown;
|
|
758
|
+
updatedBy: string | null;
|
|
759
|
+
createdAt: unknown;
|
|
760
|
+
createdBy: string | null;
|
|
761
|
+
venueId: string;
|
|
762
|
+
benefitType: components["schemas"]["PromotionBenefitType"];
|
|
763
|
+
benefitValue: {
|
|
764
|
+
[key: string]: unknown;
|
|
765
|
+
};
|
|
766
|
+
conditions: {
|
|
767
|
+
[key: string]: unknown;
|
|
768
|
+
} | null;
|
|
769
|
+
maxRedemptions: number | null;
|
|
770
|
+
currentRedemptions: number | null;
|
|
771
|
+
timeSlotIds: string[] | null;
|
|
772
|
+
}[];
|
|
773
|
+
}[];
|
|
546
774
|
/**
|
|
547
775
|
* FetchEventResponse
|
|
548
776
|
* @description Event details. Nested objects (schedule, timeSlots, menus, posters, nextOccurrence) pass through; their shape follows the SDK Event interface.
|
|
@@ -554,8 +782,72 @@ interface components {
|
|
|
554
782
|
name: {
|
|
555
783
|
[key: string]: string;
|
|
556
784
|
};
|
|
557
|
-
|
|
558
|
-
|
|
785
|
+
description: {
|
|
786
|
+
[key: string]: string;
|
|
787
|
+
} | null;
|
|
788
|
+
scheduleId: string | null;
|
|
789
|
+
maxBookings: number | null;
|
|
790
|
+
maxGuests: number | null;
|
|
791
|
+
minPartySize: number | null;
|
|
792
|
+
maxPartySize: number | null;
|
|
793
|
+
isPublic: boolean;
|
|
794
|
+
isRecurring: boolean;
|
|
795
|
+
reservationsEnabled: boolean;
|
|
796
|
+
bookingOpensAtDays: number | null;
|
|
797
|
+
bookingClosesAtOffset: number | null;
|
|
798
|
+
isActive: boolean;
|
|
799
|
+
isFeatured: boolean;
|
|
800
|
+
priority: number;
|
|
801
|
+
createdAt: unknown;
|
|
802
|
+
updatedAt: unknown;
|
|
803
|
+
nextOccurrence?: string | null;
|
|
804
|
+
schedule?: {
|
|
805
|
+
id: string;
|
|
806
|
+
name: {
|
|
807
|
+
[key: string]: string;
|
|
808
|
+
};
|
|
809
|
+
description: {
|
|
810
|
+
[key: string]: string;
|
|
811
|
+
} | null;
|
|
812
|
+
timezone: string;
|
|
813
|
+
rrule: string | null;
|
|
814
|
+
exdates: string[] | null;
|
|
815
|
+
validFrom: string | null;
|
|
816
|
+
validTo: string | null;
|
|
817
|
+
priority: number | null;
|
|
818
|
+
isActive: boolean;
|
|
819
|
+
slotMode: components["schemas"]["SlotMode"];
|
|
820
|
+
intervalDuration: number | null;
|
|
821
|
+
duration: number | null;
|
|
822
|
+
scheduleTimeSlots?: {
|
|
823
|
+
dayOfWeek: components["schemas"]["DayOfWeek"];
|
|
824
|
+
timeSlot: {
|
|
825
|
+
id: string;
|
|
826
|
+
startTime: string;
|
|
827
|
+
endTime: string | null;
|
|
828
|
+
isActive: boolean | null;
|
|
829
|
+
isSchedulable: boolean | null;
|
|
830
|
+
};
|
|
831
|
+
}[];
|
|
832
|
+
};
|
|
833
|
+
menus?: {
|
|
834
|
+
id: string;
|
|
835
|
+
accessor: string;
|
|
836
|
+
name: {
|
|
837
|
+
[key: string]: string;
|
|
838
|
+
};
|
|
839
|
+
category: string;
|
|
840
|
+
}[];
|
|
841
|
+
posters?: {
|
|
842
|
+
id: string;
|
|
843
|
+
bucket: string;
|
|
844
|
+
storagePath: string;
|
|
845
|
+
filename: string;
|
|
846
|
+
contentType: string;
|
|
847
|
+
sizeBytes: number;
|
|
848
|
+
sortIndex: string | null;
|
|
849
|
+
publicUrl: string;
|
|
850
|
+
}[];
|
|
559
851
|
};
|
|
560
852
|
/**
|
|
561
853
|
* CreateEventRequest
|
|
@@ -592,8 +884,7 @@ interface components {
|
|
|
592
884
|
endTime: string;
|
|
593
885
|
lastSeatingTime?: string | null;
|
|
594
886
|
}[];
|
|
595
|
-
|
|
596
|
-
slotMode?: "interval" | "duration" | null;
|
|
887
|
+
slotMode?: components["schemas"]["SlotMode"];
|
|
597
888
|
intervalDuration?: number | null;
|
|
598
889
|
duration?: number | null;
|
|
599
890
|
} | null;
|
|
@@ -635,67 +926,189 @@ interface components {
|
|
|
635
926
|
};
|
|
636
927
|
/**
|
|
637
928
|
* FetchMenuResponse
|
|
638
|
-
* @description Menu details.
|
|
929
|
+
* @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
930
|
*/
|
|
640
931
|
FetchMenuResponse: {
|
|
641
932
|
id: string;
|
|
642
|
-
|
|
933
|
+
name: {
|
|
934
|
+
[key: string]: string;
|
|
935
|
+
};
|
|
643
936
|
accessor: string;
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
} |
|
|
937
|
+
metadata: {
|
|
938
|
+
orderingEnabled?: boolean;
|
|
939
|
+
compactTags?: string[];
|
|
940
|
+
showDepositware?: boolean;
|
|
941
|
+
tagSortOrder?: string[];
|
|
942
|
+
subscriptionsEnabled?: boolean;
|
|
943
|
+
isDeliveryEnabled?: boolean;
|
|
944
|
+
assetsEnabled?: boolean;
|
|
945
|
+
} | null;
|
|
946
|
+
description: {
|
|
947
|
+
[key: string]: string;
|
|
948
|
+
} | null;
|
|
653
949
|
sortIndex: string | null;
|
|
654
|
-
deliveryThresholdAmount: number | null;
|
|
655
|
-
deliveryThresholdQuantity: number | null;
|
|
656
|
-
createdAt: unknown;
|
|
657
950
|
updatedAt: unknown;
|
|
658
|
-
createdBy: string | null;
|
|
659
951
|
updatedBy: string | null;
|
|
660
|
-
|
|
952
|
+
createdAt: unknown;
|
|
953
|
+
createdBy: string | null;
|
|
954
|
+
venueId: string;
|
|
955
|
+
deliveryThresholdAmount: number | null;
|
|
956
|
+
deliveryThresholdQuantity: number | null;
|
|
957
|
+
assets: {
|
|
661
958
|
id: string;
|
|
662
|
-
|
|
663
|
-
|
|
959
|
+
type: components["schemas"]["AssetType"];
|
|
960
|
+
metadata: {
|
|
961
|
+
width?: number;
|
|
962
|
+
height?: number;
|
|
963
|
+
duration?: number;
|
|
964
|
+
} | null;
|
|
965
|
+
isActive: boolean;
|
|
966
|
+
sortIndex: string | null;
|
|
967
|
+
updatedAt: unknown;
|
|
968
|
+
updatedBy: string | null;
|
|
969
|
+
createdAt: unknown;
|
|
970
|
+
createdBy: string | null;
|
|
971
|
+
venueId: string | null;
|
|
664
972
|
tags: string[] | null;
|
|
665
973
|
bucket: string;
|
|
666
974
|
storagePath: string;
|
|
667
975
|
filename: string;
|
|
668
976
|
contentType: string;
|
|
669
977
|
sizeBytes: number;
|
|
670
|
-
caption:
|
|
978
|
+
caption: {
|
|
671
979
|
[key: string]: unknown;
|
|
672
|
-
}
|
|
673
|
-
alt:
|
|
674
|
-
[key: string]: unknown;
|
|
675
|
-
} | unknown[];
|
|
676
|
-
metadata: ((string | number | boolean | (null)) | {
|
|
677
|
-
[key: string]: unknown;
|
|
678
|
-
} | unknown[]) | null;
|
|
679
|
-
cropArea: ((string | number | boolean | (null)) | {
|
|
980
|
+
};
|
|
981
|
+
alt: {
|
|
680
982
|
[key: string]: unknown;
|
|
681
|
-
}
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
publicUrl: string | null;
|
|
983
|
+
};
|
|
984
|
+
cropArea: {
|
|
985
|
+
x: number;
|
|
986
|
+
y: number;
|
|
987
|
+
width: number;
|
|
988
|
+
height: number;
|
|
989
|
+
} | null;
|
|
990
|
+
publicUrl: string;
|
|
690
991
|
}[];
|
|
691
992
|
items?: {
|
|
692
|
-
|
|
993
|
+
id: string;
|
|
994
|
+
type: components["schemas"]["MenuItemType"];
|
|
995
|
+
tags: string[] | null;
|
|
996
|
+
priceAdjustment: number;
|
|
997
|
+
currency: components["schemas"]["Currency"];
|
|
998
|
+
isActive: boolean;
|
|
999
|
+
isFeatured: boolean;
|
|
1000
|
+
sortIndex: string | null;
|
|
1001
|
+
dish: {
|
|
1002
|
+
id: string;
|
|
1003
|
+
accessor: string;
|
|
1004
|
+
name: {
|
|
1005
|
+
[key: string]: string;
|
|
1006
|
+
};
|
|
1007
|
+
shortName?: {
|
|
1008
|
+
[key: string]: string;
|
|
1009
|
+
};
|
|
1010
|
+
description: {
|
|
1011
|
+
[key: string]: string;
|
|
1012
|
+
} | null;
|
|
1013
|
+
longDescription?: {
|
|
1014
|
+
[key: string]: string;
|
|
1015
|
+
} | null;
|
|
1016
|
+
isVegetarian: boolean | null;
|
|
1017
|
+
isVegan: boolean | null;
|
|
1018
|
+
isGlutenFree: boolean | null;
|
|
1019
|
+
isDairyFree: boolean | null;
|
|
1020
|
+
spiciness: number | null;
|
|
1021
|
+
assets?: {
|
|
1022
|
+
id: string;
|
|
1023
|
+
type: components["schemas"]["AssetType"];
|
|
1024
|
+
metadata: {
|
|
1025
|
+
width?: number;
|
|
1026
|
+
height?: number;
|
|
1027
|
+
duration?: number;
|
|
1028
|
+
} | null;
|
|
1029
|
+
isActive: boolean;
|
|
1030
|
+
sortIndex: string | null;
|
|
1031
|
+
updatedAt: unknown;
|
|
1032
|
+
updatedBy: string | null;
|
|
1033
|
+
createdAt: unknown;
|
|
1034
|
+
createdBy: string | null;
|
|
1035
|
+
venueId: string | null;
|
|
1036
|
+
tags: string[] | null;
|
|
1037
|
+
bucket: string;
|
|
1038
|
+
storagePath: string;
|
|
1039
|
+
filename: string;
|
|
1040
|
+
contentType: string;
|
|
1041
|
+
sizeBytes: number;
|
|
1042
|
+
caption: {
|
|
1043
|
+
[key: string]: unknown;
|
|
1044
|
+
};
|
|
1045
|
+
alt: {
|
|
1046
|
+
[key: string]: unknown;
|
|
1047
|
+
};
|
|
1048
|
+
cropArea: {
|
|
1049
|
+
x: number;
|
|
1050
|
+
y: number;
|
|
1051
|
+
width: number;
|
|
1052
|
+
height: number;
|
|
1053
|
+
} | null;
|
|
1054
|
+
publicUrl: string;
|
|
1055
|
+
}[];
|
|
1056
|
+
} | null;
|
|
1057
|
+
beverage: {
|
|
1058
|
+
id: string;
|
|
1059
|
+
accessor: string;
|
|
1060
|
+
name: {
|
|
1061
|
+
[key: string]: string;
|
|
1062
|
+
};
|
|
1063
|
+
shortName?: {
|
|
1064
|
+
[key: string]: string;
|
|
1065
|
+
};
|
|
1066
|
+
description: {
|
|
1067
|
+
[key: string]: string;
|
|
1068
|
+
} | null;
|
|
1069
|
+
longDescription?: {
|
|
1070
|
+
[key: string]: string;
|
|
1071
|
+
} | null;
|
|
1072
|
+
assets?: {
|
|
1073
|
+
id: string;
|
|
1074
|
+
type: components["schemas"]["AssetType"];
|
|
1075
|
+
metadata: {
|
|
1076
|
+
width?: number;
|
|
1077
|
+
height?: number;
|
|
1078
|
+
duration?: number;
|
|
1079
|
+
} | null;
|
|
1080
|
+
isActive: boolean;
|
|
1081
|
+
sortIndex: string | null;
|
|
1082
|
+
updatedAt: unknown;
|
|
1083
|
+
updatedBy: string | null;
|
|
1084
|
+
createdAt: unknown;
|
|
1085
|
+
createdBy: string | null;
|
|
1086
|
+
venueId: string | null;
|
|
1087
|
+
tags: string[] | null;
|
|
1088
|
+
bucket: string;
|
|
1089
|
+
storagePath: string;
|
|
1090
|
+
filename: string;
|
|
1091
|
+
contentType: string;
|
|
1092
|
+
sizeBytes: number;
|
|
1093
|
+
caption: {
|
|
1094
|
+
[key: string]: unknown;
|
|
1095
|
+
};
|
|
1096
|
+
alt: {
|
|
1097
|
+
[key: string]: unknown;
|
|
1098
|
+
};
|
|
1099
|
+
cropArea: {
|
|
1100
|
+
x: number;
|
|
1101
|
+
y: number;
|
|
1102
|
+
width: number;
|
|
1103
|
+
height: number;
|
|
1104
|
+
} | null;
|
|
1105
|
+
publicUrl: string;
|
|
1106
|
+
}[];
|
|
1107
|
+
} | null;
|
|
693
1108
|
}[];
|
|
694
|
-
} & {
|
|
695
|
-
[key: string]: unknown;
|
|
696
1109
|
};
|
|
697
1110
|
/** FetchMenuBundlesResponse */
|
|
698
|
-
FetchMenuBundlesResponse:
|
|
1111
|
+
FetchMenuBundlesResponse: {
|
|
699
1112
|
id: string;
|
|
700
1113
|
menuId: string;
|
|
701
1114
|
name: {
|
|
@@ -710,11 +1123,9 @@ interface components {
|
|
|
710
1123
|
tags: string[];
|
|
711
1124
|
price: {
|
|
712
1125
|
amount: number;
|
|
713
|
-
|
|
714
|
-
currency: "EUR" | "CHF";
|
|
1126
|
+
currency: components["schemas"]["Currency"];
|
|
715
1127
|
};
|
|
716
|
-
|
|
717
|
-
currency: "EUR" | "CHF";
|
|
1128
|
+
currency: components["schemas"]["Currency"];
|
|
718
1129
|
taxRateId: string;
|
|
719
1130
|
isActive: boolean;
|
|
720
1131
|
sortIndex: string | null;
|
|
@@ -725,15 +1136,14 @@ interface components {
|
|
|
725
1136
|
};
|
|
726
1137
|
} | null;
|
|
727
1138
|
deposit: {
|
|
1139
|
+
depositwareTemplateId: string;
|
|
1140
|
+
accessor: string;
|
|
728
1141
|
amount: number;
|
|
729
|
-
|
|
730
|
-
currency: "EUR" | "CHF";
|
|
1142
|
+
currency: components["schemas"]["Currency"];
|
|
731
1143
|
} | null;
|
|
732
|
-
}
|
|
733
|
-
[key: string]: unknown;
|
|
734
|
-
})[];
|
|
1144
|
+
}[];
|
|
735
1145
|
/** FetchMenuSubscriptionsResponse */
|
|
736
|
-
FetchMenuSubscriptionsResponse:
|
|
1146
|
+
FetchMenuSubscriptionsResponse: {
|
|
737
1147
|
id: string;
|
|
738
1148
|
menuId: string;
|
|
739
1149
|
accessor: string;
|
|
@@ -748,35 +1158,30 @@ interface components {
|
|
|
748
1158
|
} | null;
|
|
749
1159
|
scheduleId: string | null;
|
|
750
1160
|
allowance: number;
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
/** @enum {string} */
|
|
754
|
-
allowancePeriod: "week" | "month" | "year";
|
|
1161
|
+
billingPeriod: components["schemas"]["SubscriptionPeriod"];
|
|
1162
|
+
allowancePeriod: components["schemas"]["SubscriptionPeriod"];
|
|
755
1163
|
expiryInDays: number;
|
|
756
1164
|
price: number;
|
|
757
|
-
|
|
758
|
-
currency: "EUR" | "CHF";
|
|
1165
|
+
currency: components["schemas"]["Currency"];
|
|
759
1166
|
stripeProductId: string | null;
|
|
760
1167
|
stripePriceId: string | null;
|
|
761
1168
|
isActive: boolean;
|
|
762
1169
|
sortIndex: string | null;
|
|
763
1170
|
subscriberCount: number;
|
|
764
1171
|
redeemableTagSets: string[][];
|
|
765
|
-
posters
|
|
1172
|
+
posters: {
|
|
766
1173
|
id: string;
|
|
767
1174
|
menuSubscriptionId: string;
|
|
768
1175
|
storagePath: string;
|
|
769
|
-
publicUrl: string
|
|
1176
|
+
publicUrl: string;
|
|
770
1177
|
filename: string;
|
|
771
1178
|
contentType: string;
|
|
772
|
-
sizeBytes: number
|
|
1179
|
+
sizeBytes: number;
|
|
773
1180
|
sortIndex: string | null;
|
|
774
1181
|
createdBy: string | null;
|
|
775
1182
|
createdAt: string | null;
|
|
776
1183
|
}[];
|
|
777
|
-
}
|
|
778
|
-
[key: string]: unknown;
|
|
779
|
-
})[];
|
|
1184
|
+
}[];
|
|
780
1185
|
/**
|
|
781
1186
|
* PlaceOrderRequest
|
|
782
1187
|
* @description Place a new order for a specific venue
|
|
@@ -804,8 +1209,7 @@ interface components {
|
|
|
804
1209
|
publicId: string | null;
|
|
805
1210
|
orderId: string;
|
|
806
1211
|
quickReferenceNumber: number | null;
|
|
807
|
-
|
|
808
|
-
currency: "EUR" | "CHF";
|
|
1212
|
+
currency: components["schemas"]["Currency"];
|
|
809
1213
|
};
|
|
810
1214
|
/** ConfirmOrderRequest */
|
|
811
1215
|
ConfirmOrderRequest: {
|
|
@@ -821,12 +1225,52 @@ interface components {
|
|
|
821
1225
|
quickReferenceNumber: number | null;
|
|
822
1226
|
customerId?: string;
|
|
823
1227
|
};
|
|
1228
|
+
/** FetchLatestOrderResponse */
|
|
1229
|
+
FetchLatestOrderResponse: {
|
|
1230
|
+
/** Format: uuid */
|
|
1231
|
+
id: string;
|
|
1232
|
+
publicId: string | null;
|
|
1233
|
+
quickReferenceNumber: number | null;
|
|
1234
|
+
status: components["schemas"]["OrderStatus"];
|
|
1235
|
+
paymentStatus: components["schemas"]["PaymentStatus"];
|
|
1236
|
+
fulfillmentType: components["schemas"]["FulfillmentType"];
|
|
1237
|
+
fulfillmentAt: string | null;
|
|
1238
|
+
orderedAt: string;
|
|
1239
|
+
totalAmount: number;
|
|
1240
|
+
currency: components["schemas"]["Currency"];
|
|
1241
|
+
items: {
|
|
1242
|
+
/** Format: uuid */
|
|
1243
|
+
id: string;
|
|
1244
|
+
metadata: {
|
|
1245
|
+
[key: string]: unknown;
|
|
1246
|
+
} | null;
|
|
1247
|
+
deposit: {
|
|
1248
|
+
depositwareTemplateId: string;
|
|
1249
|
+
name: {
|
|
1250
|
+
[key: string]: string;
|
|
1251
|
+
};
|
|
1252
|
+
amount: number;
|
|
1253
|
+
currency: components["schemas"]["Currency"];
|
|
1254
|
+
} | null;
|
|
1255
|
+
menuItems: {
|
|
1256
|
+
menuItemId: string;
|
|
1257
|
+
role: string | null;
|
|
1258
|
+
quantity: number;
|
|
1259
|
+
unit: components["schemas"]["Unit"];
|
|
1260
|
+
}[];
|
|
1261
|
+
}[];
|
|
1262
|
+
itemCount: number;
|
|
1263
|
+
totals: components["schemas"]["BasketTotals"];
|
|
1264
|
+
declaredReturns: {
|
|
1265
|
+
depositwareTemplateId: string;
|
|
1266
|
+
count: number;
|
|
1267
|
+
}[];
|
|
1268
|
+
};
|
|
824
1269
|
/** CreatePaymentIntentRequest */
|
|
825
1270
|
CreatePaymentIntentRequest: {
|
|
826
1271
|
venueAccessor: string;
|
|
827
1272
|
basketId: string;
|
|
828
|
-
|
|
829
|
-
currency: "EUR" | "CHF";
|
|
1273
|
+
currency: components["schemas"]["Currency"];
|
|
830
1274
|
sessionId: string;
|
|
831
1275
|
fulfillmentType: components["schemas"]["FulfillmentType"];
|
|
832
1276
|
/** Format: date-time */
|
|
@@ -850,8 +1294,7 @@ interface components {
|
|
|
850
1294
|
venueAccessor: string;
|
|
851
1295
|
basketId: string;
|
|
852
1296
|
sessionId: string;
|
|
853
|
-
|
|
854
|
-
currency: "EUR" | "CHF";
|
|
1297
|
+
currency: components["schemas"]["Currency"];
|
|
855
1298
|
declaredReturns?: {
|
|
856
1299
|
depositwareTemplateId: string;
|
|
857
1300
|
count: number;
|
|
@@ -871,8 +1314,7 @@ interface components {
|
|
|
871
1314
|
venueAccessor: string;
|
|
872
1315
|
basketId: string;
|
|
873
1316
|
sessionId: string;
|
|
874
|
-
|
|
875
|
-
currency: "EUR" | "CHF";
|
|
1317
|
+
currency: components["schemas"]["Currency"];
|
|
876
1318
|
declaredReturns?: {
|
|
877
1319
|
depositwareTemplateId: string;
|
|
878
1320
|
count: number;
|
|
@@ -920,16 +1362,8 @@ interface components {
|
|
|
920
1362
|
customerEmail?: string | null;
|
|
921
1363
|
/** @description Phone number for reservation confirmations and updates. Include country code for international numbers. */
|
|
922
1364
|
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";
|
|
1365
|
+
contactPreference?: components["schemas"]["ContactPreference"];
|
|
1366
|
+
source?: components["schemas"]["AreaBookingRequestSource"];
|
|
933
1367
|
/** @description Any dietary restrictions, allergies, or special occasions (max 500 characters) */
|
|
934
1368
|
specialRequests?: string | null;
|
|
935
1369
|
/** @description Preferred seating area or table type (e.g., "window seat", "quiet area", "patio") */
|
|
@@ -977,16 +1411,8 @@ interface components {
|
|
|
977
1411
|
customerEmail: string | null;
|
|
978
1412
|
/** @description Customer phone number */
|
|
979
1413
|
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";
|
|
1414
|
+
contactPreference: components["schemas"]["ContactPreference"];
|
|
1415
|
+
status: components["schemas"]["ReservationStatus"];
|
|
990
1416
|
/** @description 6-character confirmation code for the reservation */
|
|
991
1417
|
confirmationCode: string | null;
|
|
992
1418
|
/** @description When the reservation was confirmed */
|
|
@@ -999,18 +1425,10 @@ interface components {
|
|
|
999
1425
|
completedAt: unknown;
|
|
1000
1426
|
/** @description When the reservation was cancelled */
|
|
1001
1427
|
cancelledAt: unknown;
|
|
1002
|
-
|
|
1003
|
-
* @description Who initiated the cancellation
|
|
1004
|
-
* @enum {string|null}
|
|
1005
|
-
*/
|
|
1006
|
-
cancellationReason: "customer_request" | "restaurant_request" | null;
|
|
1428
|
+
cancellationReason: components["schemas"]["CancellationReason"];
|
|
1007
1429
|
/** @description Additional cancellation details */
|
|
1008
1430
|
cancellationNote: string | null;
|
|
1009
|
-
|
|
1010
|
-
* @description Origin of the reservation
|
|
1011
|
-
* @enum {string}
|
|
1012
|
-
*/
|
|
1013
|
-
source: "website" | "phone" | "walk_in";
|
|
1431
|
+
source: components["schemas"]["AreaBookingRequestSource"];
|
|
1014
1432
|
/** @description Any special requirements or notes */
|
|
1015
1433
|
specialRequests: string | null;
|
|
1016
1434
|
/** @description Preferred seating location */
|
|
@@ -1040,15 +1458,12 @@ interface components {
|
|
|
1040
1458
|
} | null;
|
|
1041
1459
|
scheduleId: string | null;
|
|
1042
1460
|
allowance: number;
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
/** @enum {string} */
|
|
1046
|
-
allowancePeriod: "week" | "month" | "year";
|
|
1461
|
+
billingPeriod: components["schemas"]["SubscriptionPeriod"];
|
|
1462
|
+
allowancePeriod: components["schemas"]["SubscriptionPeriod"];
|
|
1047
1463
|
redeemableTagSets: string[][];
|
|
1048
1464
|
expiryInDays: number | null;
|
|
1049
1465
|
price: number;
|
|
1050
|
-
|
|
1051
|
-
currency: "EUR" | "CHF";
|
|
1466
|
+
currency: components["schemas"]["Currency"];
|
|
1052
1467
|
isActive: boolean;
|
|
1053
1468
|
sortIndex: string | null;
|
|
1054
1469
|
posters: {
|
|
@@ -1065,8 +1480,8 @@ interface components {
|
|
|
1065
1480
|
createdAt: string | null;
|
|
1066
1481
|
}[];
|
|
1067
1482
|
};
|
|
1068
|
-
/**
|
|
1069
|
-
|
|
1483
|
+
/** SubscribeToSubscriptionBody */
|
|
1484
|
+
SubscribeToSubscriptionBody: {
|
|
1070
1485
|
/** Format: email */
|
|
1071
1486
|
email: string;
|
|
1072
1487
|
firstName?: string;
|
|
@@ -1077,8 +1492,8 @@ interface components {
|
|
|
1077
1492
|
/** Format: uri */
|
|
1078
1493
|
cancelUrl: string;
|
|
1079
1494
|
};
|
|
1080
|
-
/**
|
|
1081
|
-
|
|
1495
|
+
/** SubscribeToSubscriptionResponse */
|
|
1496
|
+
SubscribeToSubscriptionResponse: {
|
|
1082
1497
|
/** Format: uri */
|
|
1083
1498
|
checkoutUrl: string | null;
|
|
1084
1499
|
sessionId: string;
|
|
@@ -1099,8 +1514,7 @@ interface components {
|
|
|
1099
1514
|
periodStart: string;
|
|
1100
1515
|
periodEnd: string;
|
|
1101
1516
|
expiresAt: string | null;
|
|
1102
|
-
|
|
1103
|
-
status: "available" | "redeemed" | "expired";
|
|
1517
|
+
status: components["schemas"]["SubscriptionCreditStatus"];
|
|
1104
1518
|
redeemedAt: string | null;
|
|
1105
1519
|
orderId: string | null;
|
|
1106
1520
|
createdAt: string | null;
|
|
@@ -1193,13 +1607,14 @@ interface components {
|
|
|
1193
1607
|
joinedAt: string;
|
|
1194
1608
|
items: {
|
|
1195
1609
|
id: string;
|
|
1196
|
-
metadata:
|
|
1610
|
+
metadata: {
|
|
1611
|
+
[key: string]: unknown;
|
|
1612
|
+
} | null;
|
|
1197
1613
|
menuItems: {
|
|
1198
1614
|
menuItemId: string;
|
|
1199
1615
|
role: string | null;
|
|
1200
1616
|
quantity: number;
|
|
1201
|
-
|
|
1202
|
-
unit: "grams" | "kilograms" | "liters" | "milliliters" | "pieces";
|
|
1617
|
+
unit: components["schemas"]["Unit"];
|
|
1203
1618
|
}[];
|
|
1204
1619
|
isPaid: boolean;
|
|
1205
1620
|
}[];
|
|
@@ -1341,6 +1756,40 @@ interface components {
|
|
|
1341
1756
|
diningTime: string;
|
|
1342
1757
|
diningOffset: number;
|
|
1343
1758
|
};
|
|
1759
|
+
/** SetOrderLeadSettledRequest */
|
|
1760
|
+
SetOrderLeadSettledRequest: {
|
|
1761
|
+
publicId: string;
|
|
1762
|
+
sessionId: string;
|
|
1763
|
+
/** Format: uuid */
|
|
1764
|
+
orderId: string;
|
|
1765
|
+
settled: boolean;
|
|
1766
|
+
};
|
|
1767
|
+
/** SetOrderLeadSettledResponse */
|
|
1768
|
+
SetOrderLeadSettledResponse: {
|
|
1769
|
+
/** Format: uuid */
|
|
1770
|
+
orderId: string;
|
|
1771
|
+
leadSettledAt: string | null;
|
|
1772
|
+
};
|
|
1773
|
+
/** AutoExtendFulfillmentIfExpiredRequest */
|
|
1774
|
+
AutoExtendFulfillmentIfExpiredRequest: {
|
|
1775
|
+
publicId: string;
|
|
1776
|
+
sessionId: string;
|
|
1777
|
+
/** Format: date-time */
|
|
1778
|
+
proposedFulfillmentAt: string;
|
|
1779
|
+
};
|
|
1780
|
+
/** AutoExtendFulfillmentIfExpiredResponse */
|
|
1781
|
+
AutoExtendFulfillmentIfExpiredResponse: {
|
|
1782
|
+
extended: boolean;
|
|
1783
|
+
teamOrderId: string;
|
|
1784
|
+
status: string;
|
|
1785
|
+
/** Format: date-time */
|
|
1786
|
+
fulfillmentAt: string;
|
|
1787
|
+
/** Format: date-time */
|
|
1788
|
+
deadlineAt: string | null;
|
|
1789
|
+
/** Format: date-time */
|
|
1790
|
+
previousFulfillmentAt: string;
|
|
1791
|
+
waitingCount: number;
|
|
1792
|
+
};
|
|
1344
1793
|
/** SwitchFulfillmentTeamOrderRequest */
|
|
1345
1794
|
SwitchFulfillmentTeamOrderRequest: {
|
|
1346
1795
|
publicId: string;
|
|
@@ -1386,13 +1835,119 @@ interface components {
|
|
|
1386
1835
|
updatedAt: unknown;
|
|
1387
1836
|
};
|
|
1388
1837
|
/** @enum {string} */
|
|
1389
|
-
|
|
1838
|
+
ActorType: "human" | "robot";
|
|
1839
|
+
/** @enum {string} */
|
|
1840
|
+
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";
|
|
1841
|
+
/** @enum {string} */
|
|
1842
|
+
AreaBookingMode: "slot" | "day";
|
|
1843
|
+
/** @enum {string} */
|
|
1844
|
+
AreaBookingRequestSource: "website" | "phone" | "walk_in";
|
|
1845
|
+
/** @enum {string} */
|
|
1846
|
+
AreaBookingRequestStatus: "pending" | "approved" | "rejected" | "cancelled";
|
|
1847
|
+
/** @enum {string} */
|
|
1848
|
+
AreaBookingStatus: "confirmed" | "arrived" | "completed" | "cancelled" | "no_show";
|
|
1849
|
+
/** @enum {string} */
|
|
1850
|
+
ArticleEditorSaveState: "idle" | "saving" | "saved" | "error";
|
|
1851
|
+
/** @enum {string} */
|
|
1852
|
+
ArticleStatus: "draft" | "published";
|
|
1853
|
+
/** @enum {string} */
|
|
1854
|
+
BasketStatus: "active" | "abandoned" | "converted";
|
|
1855
|
+
/** @enum {string} */
|
|
1856
|
+
BeverageCategory: "wine" | "beer" | "coffee" | "tea" | "cocktail" | "juice" | "soft_drink" | "dairy_drink" | "spirit" | "water";
|
|
1857
|
+
/** @enum {string} */
|
|
1858
|
+
CancellationReason: "customer_request" | "restaurant_request";
|
|
1859
|
+
/** @enum {string} */
|
|
1860
|
+
ContactPreference: "email" | "phone" | "sms" | "none";
|
|
1861
|
+
/** @enum {string} */
|
|
1862
|
+
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";
|
|
1863
|
+
/** @enum {string} */
|
|
1864
|
+
Currency: "EUR" | "CHF";
|
|
1865
|
+
/** @enum {string} */
|
|
1866
|
+
DepositTransactionType: "charged" | "refunded" | "forfeited" | "waived" | "credit_used";
|
|
1867
|
+
/** @enum {string} */
|
|
1868
|
+
DepositwareStatus: "available" | "issued" | "returned" | "lost" | "damaged" | "retired";
|
|
1869
|
+
/** @enum {string} */
|
|
1870
|
+
EntityOwnerType: "event" | "dish" | "beverage" | "venue" | "menu" | "menuSubscription" | "ritual";
|
|
1871
|
+
/** @enum {string} */
|
|
1872
|
+
IntegrationNotificationType: "order_created" | "order_cancelled" | "order_completed" | "team_order_created" | "reservation_created" | "reservation_confirmed" | "reservation_cancelled";
|
|
1873
|
+
/** @enum {string} */
|
|
1874
|
+
IntegrationType: "telegram";
|
|
1875
|
+
/** @enum {string} */
|
|
1876
|
+
InventoryAssetStatus: "available" | "in_use" | "maintenance" | "retired";
|
|
1877
|
+
/** @enum {string} */
|
|
1878
|
+
InventoryCategory: "depositware" | "furniture" | "equipment" | "utensil";
|
|
1879
|
+
/** @enum {string} */
|
|
1880
|
+
InvitationScenario: "new_user" | "already_member" | "former_employee";
|
|
1881
|
+
/** @enum {string} */
|
|
1882
|
+
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";
|
|
1883
|
+
/** @enum {string} */
|
|
1884
|
+
MenuItemType: "dish" | "beverage";
|
|
1390
1885
|
/** @enum {string} */
|
|
1391
1886
|
FulfillmentType: "pickup" | "delivery";
|
|
1392
1887
|
/** @enum {string} */
|
|
1888
|
+
OrderStatus: "pending" | "in_progress" | "ready" | "completed" | "cancelled";
|
|
1889
|
+
/** @enum {string} */
|
|
1890
|
+
PaymentMethod: "card" | "cash" | "voucher";
|
|
1891
|
+
/** @enum {string} */
|
|
1892
|
+
PaymentStatus: "unpaid" | "paid" | "refunded" | "authorized" | "cash_pending";
|
|
1893
|
+
/** @enum {string} */
|
|
1894
|
+
ScanTokenEntityType: "order" | "depositware";
|
|
1895
|
+
/** @enum {string} */
|
|
1896
|
+
SortOrder: "asc" | "desc";
|
|
1897
|
+
/** @enum {string} */
|
|
1898
|
+
SubscriberStatus: "active" | "paused" | "cancelled" | "past_due" | "trialing";
|
|
1899
|
+
/** @enum {string} */
|
|
1900
|
+
SubscriptionCreditStatus: "available" | "redeemed" | "expired";
|
|
1901
|
+
/** @enum {string} */
|
|
1902
|
+
SubscriptionPeriod: "week" | "month" | "year";
|
|
1903
|
+
/** @enum {string} */
|
|
1393
1904
|
TeamOrderStatus: "draft" | "collecting" | "locked" | "placed" | "ready" | "completed" | "cancelled";
|
|
1394
1905
|
/** @enum {string} */
|
|
1906
|
+
Unit: "grams" | "kilograms" | "liters" | "milliliters" | "pieces";
|
|
1907
|
+
/** @enum {string} */
|
|
1908
|
+
MentionEntityType: "dish" | "beverage" | "ingredient" | "menu" | "ritual";
|
|
1909
|
+
/** @enum {string} */
|
|
1910
|
+
MentionKind: "link" | "value";
|
|
1911
|
+
/** @enum {string} */
|
|
1912
|
+
PendingSuperadminTransferStatus: "pending_invite" | "accepted_awaiting_payment" | "completed" | "cancelled" | "expired";
|
|
1913
|
+
/** @enum {string} */
|
|
1914
|
+
BillingMode: "single_anchor" | "split";
|
|
1915
|
+
/** @enum {string} */
|
|
1916
|
+
VenueChargeKind: "base" | "addon";
|
|
1917
|
+
/** @enum {string} */
|
|
1918
|
+
AssetType: "image" | "video" | "document";
|
|
1919
|
+
/** @enum {string} */
|
|
1920
|
+
Jurisdiction: "DE" | "CH" | "FR" | "IT";
|
|
1921
|
+
/** @enum {string} */
|
|
1922
|
+
DayOfWeek: "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday";
|
|
1923
|
+
/** @enum {string} */
|
|
1924
|
+
SlotMode: "interval" | "duration";
|
|
1925
|
+
/** @enum {string} */
|
|
1926
|
+
TeamOrderPaymentStatus: "authorized" | "captured" | "cash_pending" | "cash_received" | "voided" | "failed";
|
|
1927
|
+
/** @enum {string} */
|
|
1928
|
+
FeatureCategory: "articles" | "auth" | "billing" | "core" | "customers" | "events" | "inventory" | "menus" | "orders" | "platform" | "promotions" | "reservations" | "settings" | "venues";
|
|
1929
|
+
/** @enum {string} */
|
|
1930
|
+
FeatureStatus: "backlog" | "in_development" | "released";
|
|
1931
|
+
/** @enum {string} */
|
|
1932
|
+
MentionFieldFormatter: "text" | "currency" | "integer" | "percentage" | "boolean";
|
|
1933
|
+
/** @enum {string} */
|
|
1934
|
+
PromotionBenefitType: "free_item" | "discount_percentage" | "discount_amount" | "buy_x_get_y";
|
|
1935
|
+
/** @enum {string} */
|
|
1936
|
+
ReservationPromotionStatus: "applied" | "redeemed" | "expired";
|
|
1937
|
+
/** @enum {string} */
|
|
1938
|
+
ReservationStatus: "pending" | "confirmed" | "arrived" | "seated" | "completed" | "cancelled" | "no_show";
|
|
1939
|
+
/** @enum {string} */
|
|
1940
|
+
VenueAssetType: "logomark" | "wordmark" | "combinationmark_horizontal" | "combinationmark_vertical";
|
|
1941
|
+
/** @enum {string} */
|
|
1942
|
+
VenueUserStatus: "pending" | "confirmed" | "revoked";
|
|
1943
|
+
/** @enum {string} */
|
|
1944
|
+
VenueType: "restaurant" | "fine_dining_restaurant" | "ghost_kitchen" | "food_truck";
|
|
1945
|
+
/** @enum {string} */
|
|
1395
1946
|
ParticipantStatus: "browsing" | "authorized" | "cash_pending" | "placed" | "completed" | "cancelled";
|
|
1947
|
+
/** @enum {string} */
|
|
1948
|
+
EnumTrue: "true";
|
|
1949
|
+
/** @enum {string} */
|
|
1950
|
+
EnumFalse: "false";
|
|
1396
1951
|
};
|
|
1397
1952
|
responses: never;
|
|
1398
1953
|
parameters: never;
|
|
@@ -1410,12 +1965,12 @@ type GetArticleResponse = schemas['FetchArticleResponse'];
|
|
|
1410
1965
|
type PatchArticleRequest = schemas['EditArticleRequest'];
|
|
1411
1966
|
type PatchArticleResponse = schemas['EditArticleResponse'];
|
|
1412
1967
|
type FeatureImage = schemas['FeatureImage'];
|
|
1413
|
-
type PatchFeatureImageRequest = schemas['
|
|
1968
|
+
type PatchFeatureImageRequest = schemas['PatchArticleFeatureImageBody'];
|
|
1414
1969
|
/**
|
|
1415
1970
|
* Args for `client.articles.uploadFeatureImage()`. The SDK accepts a
|
|
1416
1971
|
* `Buffer` or `Uint8Array` payload + filename + content-type — it
|
|
1417
1972
|
* builds the FormData internally so callers don't have to know about
|
|
1418
|
-
* multipart wire encoding.
|
|
1973
|
+
* multipart wire encoding. Client ergonomics, no wire equivalent.
|
|
1419
1974
|
*/
|
|
1420
1975
|
interface UploadFeatureImageArgs {
|
|
1421
1976
|
data: Buffer | Uint8Array;
|
|
@@ -1433,13 +1988,12 @@ interface ListArticlesOptions {
|
|
|
1433
1988
|
type Venue = schemas['GetVenueResponse'];
|
|
1434
1989
|
type GetVenueResponse = schemas['GetVenueResponse'];
|
|
1435
1990
|
/**
|
|
1436
|
-
* Order fulfillment type
|
|
1437
|
-
*
|
|
1991
|
+
* Order fulfillment type — bound to the generated `FulfillmentType`
|
|
1992
|
+
* component (order3000's `order_fulfillment_type` enum, surfaced via
|
|
1993
|
+
* `openapi-typescript`). Never hand-rolled.
|
|
1438
1994
|
*/
|
|
1439
|
-
type OrderFulfillmentType = '
|
|
1440
|
-
type PlaceOrderRequest = Omit<schemas['PlaceOrderRequest'], '
|
|
1441
|
-
/** Fulfillment type for the order (pickup or delivery) */
|
|
1442
|
-
fulfillmentType?: OrderFulfillmentType;
|
|
1995
|
+
type OrderFulfillmentType = schemas['FulfillmentType'];
|
|
1996
|
+
type PlaceOrderRequest = Omit<schemas['PlaceOrderRequest'], 'fulfillmentAt'> & {
|
|
1443
1997
|
/**
|
|
1444
1998
|
* When the order should be fulfilled (ISO 8601 datetime or Date).
|
|
1445
1999
|
* Null / omitted in team-order mode — the Lead's pickup-time decision
|
|
@@ -1447,127 +2001,52 @@ type PlaceOrderRequest = Omit<schemas['PlaceOrderRequest'], 'taxAmount' | 'total
|
|
|
1447
2001
|
* submit time.
|
|
1448
2002
|
*/
|
|
1449
2003
|
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
2004
|
};
|
|
1465
2005
|
type PlaceOrderResponse = schemas['PlaceOrderResponse'];
|
|
1466
2006
|
type MakeReservationRequest = schemas['MakeReservationRequest'];
|
|
1467
2007
|
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
|
-
sizeBytes: number;
|
|
1511
|
-
isPrimary: boolean;
|
|
1512
|
-
sortIndex: string | null;
|
|
1513
|
-
createdBy: string | null;
|
|
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
|
-
}
|
|
2008
|
+
/**
|
|
2009
|
+
* Day of week — generated-bound to the `dayOfWeek` enum carried by the
|
|
2010
|
+
* events list schedule time-slot rows. The order3000 events output
|
|
2011
|
+
* schema is now precise (no more `.passthrough()`), so this derives
|
|
2012
|
+
* straight from the wire contract.
|
|
2013
|
+
*/
|
|
2014
|
+
type DayOfWeek = NonNullable<NonNullable<schemas['FetchEventsResponse'][number]['schedule']>['scheduleTimeSlots'][number]['dayOfWeek']>;
|
|
2015
|
+
/**
|
|
2016
|
+
* A single regular (by-day-of-week) time slot for an event. Generated-bound
|
|
2017
|
+
* to the events list response's `timeSlots[]` element.
|
|
2018
|
+
*/
|
|
2019
|
+
type TimeSlot = schemas['FetchEventsResponse'][number]['timeSlots'][number];
|
|
2020
|
+
/**
|
|
2021
|
+
* A date-specific schedule override for an event. Generated-bound to the
|
|
2022
|
+
* events list response's `scheduleOverrides[]` element.
|
|
2023
|
+
*/
|
|
2024
|
+
type ScheduleOverride = schemas['FetchEventsResponse'][number]['scheduleOverrides'][number];
|
|
2025
|
+
/**
|
|
2026
|
+
* An event's schedule (rrule, validity window, slot-generation settings,
|
|
2027
|
+
* plus the nested override / time-slot rows). Generated-bound to the
|
|
2028
|
+
* non-null `schedule` object on the events list response.
|
|
2029
|
+
*
|
|
2030
|
+
* `intervalDuration` / `duration` are milliseconds (codebase convention).
|
|
2031
|
+
*/
|
|
2032
|
+
type Schedule = NonNullable<schemas['FetchEventsResponse'][number]['schedule']>;
|
|
2033
|
+
/**
|
|
2034
|
+
* An event poster (image/video/document asset attached to an event).
|
|
2035
|
+
* Generated-bound to the events list response's `posters[]` element.
|
|
2036
|
+
*/
|
|
2037
|
+
type EventPoster = schemas['FetchEventsResponse'][number]['posters'][number];
|
|
2038
|
+
/**
|
|
2039
|
+
* A promotion attached to an event. Generated-bound to the events list
|
|
2040
|
+
* response's `promotions[]` element.
|
|
2041
|
+
*/
|
|
2042
|
+
type Promotion = schemas['FetchEventsResponse'][number]['promotions'][number];
|
|
2043
|
+
/**
|
|
2044
|
+
* A single event as returned by the list endpoint, with schedule,
|
|
2045
|
+
* posters, promotions, time slots and overrides inlined. Generated-bound
|
|
2046
|
+
* to the events list response element — request-shape drift is now
|
|
2047
|
+
* impossible.
|
|
2048
|
+
*/
|
|
2049
|
+
type Event = schemas['FetchEventsResponse'][number];
|
|
1571
2050
|
interface ListEventsOptions {
|
|
1572
2051
|
/** Include private events in the response */
|
|
1573
2052
|
includePrivate?: boolean;
|
|
@@ -1582,11 +2061,20 @@ interface ListEventsOptions {
|
|
|
1582
2061
|
/** Filter for events occurring within N days from today */
|
|
1583
2062
|
upcomingWithinDays?: number;
|
|
1584
2063
|
}
|
|
1585
|
-
type ListEventsResponse = Event[];
|
|
1586
|
-
type MenuItemType = 'dish' | 'beverage';
|
|
1587
2064
|
/**
|
|
1588
|
-
*
|
|
1589
|
-
*
|
|
2065
|
+
* The events list response — generated-bound to `FetchEventsResponse`
|
|
2066
|
+
* (an array of {@link Event}). Never hand-rolled.
|
|
2067
|
+
*/
|
|
2068
|
+
type ListEventsResponse = schemas['FetchEventsResponse'];
|
|
2069
|
+
/**
|
|
2070
|
+
* Menu item discriminant — generated-bound to the `type` enum on the
|
|
2071
|
+
* menu response's `items[]` element. The `fetchMenu` output schema is
|
|
2072
|
+
* now precise; never hand-rolled.
|
|
2073
|
+
*/
|
|
2074
|
+
type MenuItemType = NonNullable<schemas['FetchMenuResponse']['items']>[number]['type'];
|
|
2075
|
+
/**
|
|
2076
|
+
* Crop area coordinates for assets. Shared UI helper (mirrors the
|
|
2077
|
+
* `@kolaveri/molecules` Cropper type) — not a wire DTO.
|
|
1590
2078
|
*/
|
|
1591
2079
|
interface CropArea {
|
|
1592
2080
|
x: number;
|
|
@@ -1594,599 +2082,220 @@ interface CropArea {
|
|
|
1594
2082
|
width: number;
|
|
1595
2083
|
height: number;
|
|
1596
2084
|
}
|
|
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
|
-
}
|
|
2085
|
+
/**
|
|
2086
|
+
* A menu — generated-bound to `FetchMenuResponse`. order3000's
|
|
2087
|
+
* `fetchMenu` action always projects the flat, hydrated client view:
|
|
2088
|
+
* `assets[]` (menu-level) and every `items[].dish.assets[]` /
|
|
2089
|
+
* `items[].beverage.assets[]` are resolved to flat assets carrying
|
|
2090
|
+
* their Supabase `publicUrl`; the raw `*_assets` junction relations are
|
|
2091
|
+
* stripped at source and never surface on the wire. Bound here via the
|
|
2092
|
+
* same alias-derivation style as `Basket`/`BasketItem`.
|
|
2093
|
+
*/
|
|
2094
|
+
type Menu = NonNullable<schemas['FetchMenuResponse']>;
|
|
2095
|
+
/**
|
|
2096
|
+
* A single menu item — generated-bound to the element type of
|
|
2097
|
+
* `Menu.items[]` (present when `expand=items`).
|
|
2098
|
+
*/
|
|
2099
|
+
type MenuItem = NonNullable<Menu['items']>[number];
|
|
2100
|
+
/**
|
|
2101
|
+
* The dish carried by a menu item — generated-bound to `MenuItem.dish`.
|
|
2102
|
+
*/
|
|
2103
|
+
type MenuDish = NonNullable<MenuItem['dish']>;
|
|
2104
|
+
/**
|
|
2105
|
+
* The beverage carried by a menu item — generated-bound to
|
|
2106
|
+
* `MenuItem.beverage`.
|
|
2107
|
+
*/
|
|
2108
|
+
type MenuBeverage = NonNullable<MenuItem['beverage']>;
|
|
2109
|
+
/**
|
|
2110
|
+
* A flat, hydrated asset — generated-bound to the element type of the
|
|
2111
|
+
* always-present menu-level `Menu.assets[]`. Identical in shape to the
|
|
2112
|
+
* per-item `dish.assets[]` / `beverage.assets[]` elements (all are the
|
|
2113
|
+
* same hydrated asset projection with a resolved `publicUrl`).
|
|
2114
|
+
*/
|
|
2115
|
+
type MenuAsset = NonNullable<Menu['assets']>[number];
|
|
1665
2116
|
interface GetMenuOptions {
|
|
1666
2117
|
/** Expand related resources (items, assets) */
|
|
1667
2118
|
expand?: ('items' | 'assets')[];
|
|
1668
2119
|
}
|
|
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
|
-
}
|
|
2120
|
+
/**
|
|
2121
|
+
* Wire shape for a single menu bundle, bound to the generated OpenAPI
|
|
2122
|
+
* schema (`FetchMenuBundlesResponse`) — never hand-rolled. The
|
|
2123
|
+
* authoritative contract is order3000's `fetchMenuBundles` output
|
|
2124
|
+
* schema, surfaced here via `openapi-typescript`. Notably `price` is
|
|
2125
|
+
* `{ amount, currency }`, not a bare number.
|
|
2126
|
+
*/
|
|
2127
|
+
type MenuBundle = schemas['FetchMenuBundlesResponse'][number];
|
|
2128
|
+
type MenuBundleDeposit = NonNullable<MenuBundle['deposit']>;
|
|
2129
|
+
/**
|
|
2130
|
+
* A single event as returned by the `getByAccessor` endpoint, with
|
|
2131
|
+
* optional schedule / menus / posters expansions. Generated-bound to the
|
|
2132
|
+
* `FetchEventResponse` component (the order3000 `fetchEvent` output
|
|
2133
|
+
* schema is now precise) — request-shape drift is impossible.
|
|
2134
|
+
*/
|
|
2135
|
+
type EventByAccessor = schemas['FetchEventResponse'];
|
|
2136
|
+
/**
|
|
2137
|
+
* The `getByAccessor` event's schedule sub-object, including the optional
|
|
2138
|
+
* `scheduleTimeSlots[]` expansion. Generated-bound to the non-null
|
|
2139
|
+
* `schedule` on `FetchEventResponse`. Kept as a distinct public SDK type
|
|
2140
|
+
* name (re-exported as `O3KScheduleWithTimeSlots`) for downstream
|
|
2141
|
+
* stability; structurally it is the by-accessor schedule shape.
|
|
2142
|
+
*/
|
|
2143
|
+
type ScheduleWithTimeSlots = NonNullable<EventByAccessor['schedule']>;
|
|
2144
|
+
/**
|
|
2145
|
+
* A single regular time slot on the by-accessor event's schedule.
|
|
2146
|
+
* Generated-bound to the element type of the (optional)
|
|
2147
|
+
* `schedule.scheduleTimeSlots[]` array on `FetchEventResponse`.
|
|
2148
|
+
*/
|
|
2149
|
+
type ScheduleTimeSlot = NonNullable<ScheduleWithTimeSlots['scheduleTimeSlots']>[number];
|
|
2150
|
+
/**
|
|
2151
|
+
* A menu summary attached to a by-accessor event. Generated-bound to the
|
|
2152
|
+
* element type of `FetchEventResponse`'s optional `menus[]` array.
|
|
2153
|
+
*/
|
|
2154
|
+
type EventMenu = NonNullable<EventByAccessor['menus']>[number];
|
|
1750
2155
|
interface GetEventOptions {
|
|
1751
2156
|
/** Expand related resources (schedule, timeSlots, menus, posters) */
|
|
1752
2157
|
expand?: ('schedule' | 'timeSlots' | 'menus' | 'posters')[];
|
|
1753
2158
|
}
|
|
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
|
-
}
|
|
2159
|
+
type AreaBookingMode = schemas['FetchAreaResponse']['bookingMode'];
|
|
2160
|
+
type AreaBookingRequestStatus = schemas['SubmitAreaBookingRequestResponse']['status'];
|
|
2161
|
+
type AreaBookingRequestSource = schemas['SubmitAreaBookingRequestResponse']['source'];
|
|
2162
|
+
type AreaBookingStatus = schemas['FetchAreaBookingsResponse'][number]['status'];
|
|
2163
|
+
type AreaAsset = NonNullable<schemas['FetchAreaResponse']['assets']>[number];
|
|
2164
|
+
type AreaFeature = NonNullable<schemas['FetchAreaResponse']['features']>[number];
|
|
2165
|
+
type Area = schemas['FetchAreaResponse'];
|
|
1795
2166
|
interface GetAreaOptions {
|
|
1796
2167
|
expand?: 'assets'[];
|
|
1797
2168
|
}
|
|
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
|
-
}
|
|
2169
|
+
type AreaAvailabilityWindow = schemas['GetAreaAvailabilityResponse']['occupied'][number];
|
|
2170
|
+
type AreaAvailabilityResponse = schemas['GetAreaAvailabilityResponse'];
|
|
1811
2171
|
interface GetAreaAvailabilityOptions {
|
|
1812
2172
|
/** YYYY-MM-DD — defaults to today */
|
|
1813
2173
|
from?: string;
|
|
1814
2174
|
/** YYYY-MM-DD — defaults to today + 90d */
|
|
1815
2175
|
to?: string;
|
|
1816
2176
|
}
|
|
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';
|
|
2177
|
+
type SubmitAreaBookingRequestPayload = schemas['SubmitAreaBookingPayload'];
|
|
2178
|
+
type AreaBookingRequestResponse = schemas['SubmitAreaBookingRequestResponse'];
|
|
1852
2179
|
/**
|
|
1853
|
-
*
|
|
2180
|
+
* Canonical basket — generated-bound to the `FetchBasketResponse`
|
|
2181
|
+
* component (the order3000 `fetchBasket` output schema is now precise).
|
|
2182
|
+
* Returned by `baskets.get(sessionId)`.
|
|
1854
2183
|
*/
|
|
1855
|
-
type
|
|
2184
|
+
type Basket = NonNullable<schemas['FetchBasketResponse']>;
|
|
1856
2185
|
/**
|
|
1857
|
-
*
|
|
1858
|
-
*
|
|
1859
|
-
* Each menu item can have its own portion size (quantity + unit),
|
|
1860
|
-
* allowing for precise tracking like "100g rice, 80g curry".
|
|
2186
|
+
* Basket lifecycle status — generated-bound to the `status` enum on
|
|
2187
|
+
* `FetchBasketResponse`. No longer a bare wire `string`.
|
|
1861
2188
|
*/
|
|
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
|
-
}
|
|
2189
|
+
type BasketStatus = Basket['status'];
|
|
2190
|
+
type Currency = schemas['BasketTotals']['currency'];
|
|
1878
2191
|
/**
|
|
1879
|
-
*
|
|
1880
|
-
*
|
|
1881
|
-
* money amount; this object is outbound-only, for UI display.
|
|
2192
|
+
* Unit of measurement for portion tracking. Bound to the generated
|
|
2193
|
+
* add-to-basket request shape.
|
|
1882
2194
|
*/
|
|
1883
|
-
|
|
1884
|
-
depositwareTemplateId: string;
|
|
1885
|
-
name: Record<string, string>;
|
|
1886
|
-
amount: number;
|
|
1887
|
-
currency: Currency;
|
|
1888
|
-
}
|
|
2195
|
+
type Unit = NonNullable<schemas['AddToBasketRequest']['menuItems'][number]['unit']>;
|
|
1889
2196
|
/**
|
|
1890
|
-
* A basket item
|
|
1891
|
-
*
|
|
1892
|
-
*
|
|
1893
|
-
*
|
|
1894
|
-
* COUNT of basket items, not a sum of quantities.
|
|
2197
|
+
* A single basket item — generated-bound to the element type of
|
|
2198
|
+
* `FetchBasketResponse.items[]`. One physical product (e.g. a TiffinBox
|
|
2199
|
+
* with rice, curry, and sides); `Basket.itemCount` is the COUNT of basket
|
|
2200
|
+
* items, not a sum of menu-item quantities.
|
|
1895
2201
|
*/
|
|
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
|
-
}
|
|
2202
|
+
type BasketItem = Basket['items'][number];
|
|
2203
|
+
/**
|
|
2204
|
+
* Reference to a menu item within a basket item — generated-bound to the
|
|
2205
|
+
* element type of `BasketItem.menuItems[]`. Each ref carries its own
|
|
2206
|
+
* portion size (quantity + unit) for precise tracking like
|
|
2207
|
+
* "100g rice, 80g curry".
|
|
2208
|
+
*/
|
|
2209
|
+
type BasketItemMenuItemRef = BasketItem['menuItems'][number];
|
|
2210
|
+
/**
|
|
2211
|
+
* Free-form per-basket-item metadata bag — generated-bound to the
|
|
2212
|
+
* (nullable) `metadata` object on `FetchBasketResponse.items[]`. The wire
|
|
2213
|
+
* contract types this as an open `{ [key: string]: unknown }` record;
|
|
2214
|
+
* thamarai narrows individual keys (`type`, `mode`, `upsell`, `price`) at
|
|
2215
|
+
* its own transform boundary.
|
|
2216
|
+
*/
|
|
2217
|
+
type BasketItemMetadata = NonNullable<BasketItem['metadata']>;
|
|
2218
|
+
/**
|
|
2219
|
+
* Deposit info on a basket item — generated-bound to the (nullable)
|
|
2220
|
+
* `deposit` object on `FetchBasketResponse.items[]`. order3000 refuses
|
|
2221
|
+
* any inbound deposit money amount; this object is outbound-only, for UI
|
|
2222
|
+
* display.
|
|
2223
|
+
*/
|
|
2224
|
+
type BasketItemDeposit = NonNullable<BasketItem['deposit']>;
|
|
1930
2225
|
/**
|
|
1931
|
-
* Order workflow status
|
|
2226
|
+
* Order workflow status — generated-bound to the `status` enum on
|
|
2227
|
+
* `FetchLatestOrderResponse` (order3000's `order_status`). No longer a
|
|
2228
|
+
* bare wire `string`.
|
|
1932
2229
|
*/
|
|
1933
|
-
type OrderStatus = '
|
|
2230
|
+
type OrderStatus = NonNullable<schemas['FetchLatestOrderResponse']>['status'];
|
|
1934
2231
|
/**
|
|
1935
|
-
* Payment workflow status
|
|
2232
|
+
* Payment workflow status — generated-bound to the `paymentStatus` enum
|
|
2233
|
+
* on `FetchLatestOrderResponse` (order3000's `payment_status`). No longer
|
|
2234
|
+
* a bare wire `string`.
|
|
1936
2235
|
*/
|
|
1937
|
-
type PaymentStatus = '
|
|
2236
|
+
type PaymentStatus = NonNullable<schemas['FetchLatestOrderResponse']>['paymentStatus'];
|
|
1938
2237
|
/**
|
|
1939
2238
|
* The most recent non-team order for a guest session, with the captured
|
|
1940
2239
|
* basket items + totals + declared returns inlined. Returned by
|
|
1941
|
-
* `orders.getLatest(sessionId)
|
|
1942
|
-
*
|
|
1943
|
-
*
|
|
1944
|
-
*
|
|
1945
|
-
*
|
|
2240
|
+
* `orders.getLatest(sessionId)` — `null` when the session has no
|
|
2241
|
+
* qualifying order (fresh sessionIds and team-only sessions both fall
|
|
2242
|
+
* through to `null`). Generated-bound to the `FetchLatestOrderResponse`
|
|
2243
|
+
* component (the order3000 `fetchLatestOrder` output schema is now
|
|
2244
|
+
* precise).
|
|
1946
2245
|
*/
|
|
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
|
-
}
|
|
2246
|
+
type LatestOrder = NonNullable<schemas['FetchLatestOrderResponse']>;
|
|
1969
2247
|
/**
|
|
1970
|
-
* One "I'll return N of this template" declaration.
|
|
1971
|
-
*
|
|
1972
|
-
* deposit money amount.
|
|
2248
|
+
* One "I'll return N of this template" declaration. Bound to the
|
|
2249
|
+
* generated basket-totals `returnable` element — clients never specify
|
|
2250
|
+
* a deposit money amount.
|
|
1973
2251
|
*/
|
|
1974
|
-
|
|
1975
|
-
depositwareTemplateId: string;
|
|
1976
|
-
count: number;
|
|
1977
|
-
}
|
|
2252
|
+
type DeclaredReturn = schemas['BasketTotals']['returnable'][number];
|
|
1978
2253
|
/**
|
|
1979
|
-
* Canonical basket totals (all cents)
|
|
1980
|
-
*
|
|
1981
|
-
*
|
|
2254
|
+
* Canonical basket totals (all cents), bound to the generated
|
|
2255
|
+
* `BasketTotals` component. The single figure clients read for every
|
|
2256
|
+
* displayed monetary value.
|
|
1982
2257
|
*/
|
|
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
|
-
}
|
|
2258
|
+
type BasketTotals = schemas['BasketTotals'];
|
|
2002
2259
|
/**
|
|
2003
2260
|
* Request to add an item to the basket.
|
|
2004
2261
|
*
|
|
2005
2262
|
* Menu items can optionally include portion information (quantity/unit).
|
|
2006
2263
|
* If not provided, defaults to the menu item's configured portion size.
|
|
2264
|
+
* `venueAccessor` is injected by the SDK resource layer, so it's omitted
|
|
2265
|
+
* from the public caller shape.
|
|
2007
2266
|
*/
|
|
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;
|
|
2267
|
+
type AddToBasketRequest = Omit<schemas['AddToBasketRequest'], 'venueId'>;
|
|
2268
|
+
type AddToBasketResponse = schemas['AddToBasketResponse'];
|
|
2269
|
+
type RemoveFromBasketResponse = schemas['RemoveFromBasketResponse'];
|
|
2270
|
+
type CreatePaymentIntentRequest = Omit<schemas['CreatePaymentIntentRequest'], 'venueAccessor' | 'fulfillmentAt'> & {
|
|
2043
2271
|
/**
|
|
2044
2272
|
* Optional — null / omitted in team-order mode. The Lead's pickup-time
|
|
2045
2273
|
* decision is stored on the team row and backfilled onto each child
|
|
2046
2274
|
* order at submit time.
|
|
2047
2275
|
*/
|
|
2048
2276
|
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
|
-
}
|
|
2277
|
+
};
|
|
2278
|
+
type CreatePaymentIntentResponse = schemas['CreatePaymentIntentResponse'];
|
|
2279
|
+
type CreateDeltaPaymentIntentRequest = Omit<schemas['CreateDeltaPaymentIntentRequest'], 'venueAccessor'>;
|
|
2280
|
+
type CreateDeltaPaymentIntentResponse = schemas['CreateDeltaPaymentIntentResponse'];
|
|
2281
|
+
type ReduceDeltaPaymentIntentRequest = Omit<schemas['ReduceDeltaPaymentIntentRequest'], 'venueAccessor'>;
|
|
2282
|
+
type ReduceDeltaPaymentIntentResponse = schemas['ReduceDeltaPaymentIntentResponse'];
|
|
2283
|
+
type ConfirmOrderRequest = Omit<schemas['ConfirmOrderRequest'], 'venueAccessor' | 'orderId'>;
|
|
2284
|
+
type ConfirmOrderResponse = schemas['ConfirmOrderResponse'];
|
|
2285
|
+
type SubscriptionPeriod = schemas['GetSubscriptionResponse']['billingPeriod'];
|
|
2286
|
+
/**
|
|
2287
|
+
* Subscriber lifecycle status — generated-bound to the `subscriber_status`
|
|
2288
|
+
* pgEnum, surfaced via order3000's `FetchSubscribersResponse[].status`
|
|
2289
|
+
* (and `fetchMenuSubscription`). openapi-typescript hoists the shared
|
|
2290
|
+
* enum into `components.schemas['SubscriberStatus']`.
|
|
2291
|
+
*/
|
|
2292
|
+
type SubscriberStatus = schemas['SubscriberStatus'];
|
|
2293
|
+
type SubscriptionCreditStatus = schemas['GetSubscriptionCreditsResponse'][number]['status'];
|
|
2294
|
+
type MenuSubscriptionPoster = NonNullable<schemas['GetSubscriptionResponse']['posters']>[number];
|
|
2295
|
+
type MenuSubscription = schemas['GetSubscriptionResponse'];
|
|
2296
|
+
type SubscribeRequest = schemas['SubscribeToSubscriptionBody'];
|
|
2297
|
+
type SubscribeResponse = schemas['SubscribeToSubscriptionResponse'];
|
|
2298
|
+
type SubscriptionCredit = schemas['GetSubscriptionCreditsResponse'][number];
|
|
2190
2299
|
|
|
2191
2300
|
declare class AreasResource extends BaseResource {
|
|
2192
2301
|
constructor(tokenManager: TokenManager, baseUrl: string);
|
|
@@ -3035,7 +3144,7 @@ interface MenuItemRow {
|
|
|
3035
3144
|
dish_id: string | null;
|
|
3036
3145
|
beverage_id: string | null;
|
|
3037
3146
|
price_adjustment: number;
|
|
3038
|
-
currency:
|
|
3147
|
+
currency: Currency;
|
|
3039
3148
|
is_active: boolean;
|
|
3040
3149
|
is_featured: boolean;
|
|
3041
3150
|
tags: string[] | null;
|