@feedmepos/mf-order-setting 0.0.51 → 0.0.52-dev.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.
Files changed (67) hide show
  1. package/.tsbuildinfo +1 -0
  2. package/dist/{KioskDevicesView-TIls1ag1.js → KioskDevicesView-Vy9FLX1n.js} +1 -1
  3. package/dist/{KioskDevicesView.vue_vue_type_script_setup_true_lang-B2gjPfOJ.js → KioskDevicesView.vue_vue_type_script_setup_true_lang-DhZPOEEQ.js} +2 -2
  4. package/dist/KioskSettingView-cE-JdCBB.js +551 -0
  5. package/dist/{KioskView-B0Jj2sOl.js → KioskView-BYs5bem0.js} +108 -111
  6. package/dist/OrderSettingsView-C4aEpC1j.js +56063 -0
  7. package/dist/{app-JqOEacuf.js → app-CwYXsqxX.js} +182 -26
  8. package/dist/app.js +1 -1
  9. package/dist/{dayjs.min-B42nUieJ.js → dayjs.min-JEYIJz2D.js} +1 -1
  10. package/dist/frontend/mf-order/src/api/reservation/index.d.ts +8 -0
  11. package/dist/frontend/mf-order/src/app.d.ts +164 -8
  12. package/dist/frontend/mf-order/src/main.d.ts +164 -8
  13. package/dist/frontend/mf-order/src/modules/order-setting/kiosk/interface.d.ts +0 -2
  14. package/dist/frontend/mf-order/src/stores/order-setting/index.d.ts +0 -6
  15. package/dist/frontend/mf-order/src/stores/restaurant/index.d.ts +3 -3
  16. package/dist/frontend/mf-order/src/views/all-orders/ReflowOrder.vue.d.ts +2 -2
  17. package/dist/frontend/mf-order/src/views/order-settings/delivery/inhouse/InHouseDelivery.vue.d.ts +2 -2
  18. package/dist/frontend/mf-order/src/views/order-settings/reservation/CopySettingsSheet.vue.d.ts +186 -0
  19. package/dist/frontend/mf-order/src/views/order-settings/reservation/CustomSelect.vue.d.ts +15 -0
  20. package/dist/frontend/mf-order/src/views/order-settings/reservation/CustomTimePicker.vue.d.ts +10 -0
  21. package/dist/frontend/mf-order/src/views/order-settings/reservation/ReservationSetting.vue.d.ts +2 -0
  22. package/dist/{index-B0teNm7_.js → index-DZCjODMx.js} +2 -2
  23. package/dist/{menu.dto-DFTxveX1.js → menu.dto-D9CDVLiP.js} +22865 -20037
  24. package/dist/package/entity/food-court/order.do.d.ts +47 -2
  25. package/dist/package/entity/food-court/order.dto.d.ts +0 -3
  26. package/dist/package/entity/incoming-order/incoming-order-to-bill.dto.d.ts +12341 -1
  27. package/dist/package/entity/incoming-order/incoming-order.do.d.ts +3 -22266
  28. package/dist/package/entity/index.d.ts +5 -0
  29. package/dist/package/entity/kiosk/marketing/marketing.dto.d.ts +1 -19864
  30. package/dist/package/entity/order/order-item/order-item.dto.d.ts +1 -3721
  31. package/dist/package/entity/order-setting/kiosk/kiosk.do.d.ts +0 -3
  32. package/dist/package/entity/order-setting/kiosk/kiosk.dto.d.ts +0 -3
  33. package/dist/package/entity/order-setting/order-setting.do.d.ts +861 -5
  34. package/dist/package/entity/order-setting/order-setting.dto.d.ts +0 -10
  35. package/dist/package/entity/order-setting/reservationV2/reservation.do.d.ts +1269 -0
  36. package/dist/package/entity/queue/queue.do.d.ts +1 -11
  37. package/dist/package/entity/reservation/reservation.do.d.ts +101 -0
  38. package/dist/package/entity/reservation/reservation.dto.d.ts +325 -0
  39. package/dist/package/entity/reservation/reservation.enum.d.ts +3 -0
  40. package/dist/package/entity/reservation/reservation.utils.d.ts +152 -0
  41. package/dist/package/entity/restaurant/restaurant.dto.d.ts +0 -5
  42. package/dist/package/entity/websocket/websocket.dto.d.ts +0 -12
  43. package/dist/style.css +1 -0
  44. package/package.json +3 -3
  45. package/src/api/reservation/index.ts +28 -0
  46. package/src/assets/images/not-found.png +0 -0
  47. package/src/locales/en-US.json +57 -3
  48. package/src/locales/ja-JP.json +9 -11
  49. package/src/locales/th-TH.json +55 -3
  50. package/src/locales/zh-CN.json +55 -3
  51. package/src/main.ts +7 -5
  52. package/src/modules/order-setting/kiosk/interface.ts +13 -15
  53. package/src/stores/order-setting/mapper.ts +41 -44
  54. package/src/views/kiosk/settings/KioskPaymentTypeSection.vue +1 -19
  55. package/src/views/kiosk/settings/KioskSettingView.vue +23 -43
  56. package/src/views/order-settings/OrderSettingsView.vue +7 -2
  57. package/src/views/order-settings/delivery/integrated-delivery/IntegratedDelivery.vue +3 -1
  58. package/src/views/order-settings/drive-thru/DriveThruSetting.vue +13 -28
  59. package/src/views/order-settings/reservation/CopySettingsSheet.vue +238 -0
  60. package/src/views/order-settings/reservation/CustomSelect.vue +99 -0
  61. package/src/views/order-settings/reservation/CustomTimePicker.vue +201 -0
  62. package/src/views/order-settings/reservation/ReservationSetting.vue +1246 -0
  63. package/src/views/order-settings/servicecharge/ServiceChargeRule.vue +5 -1
  64. package/tsconfig.app.json +8 -6
  65. package/dist/KioskSettingView-UPE-q-Zd.js +0 -573
  66. package/dist/OrderSettingsView-Ca4y2PNF.js +0 -51603
  67. package/dist/frontend/mf-order/tsconfig.app.tsbuildinfo +0 -1
@@ -0,0 +1,1269 @@
1
+ import { z } from 'zod';
2
+ export declare const FdoDuration: z.ZodObject<{
3
+ value: z.ZodNumber;
4
+ unit: z.ZodEnum<["day", "hour", "minute"]>;
5
+ }, "strip", z.ZodTypeAny, {
6
+ value: number;
7
+ unit: "day" | "hour" | "minute";
8
+ }, {
9
+ value: number;
10
+ unit: "day" | "hour" | "minute";
11
+ }>;
12
+ export declare const FdoReservationPreference: z.ZodObject<{
13
+ name: z.ZodString;
14
+ type: z.ZodEnum<["text", "checkbox", "radio"]>;
15
+ options: z.ZodArray<z.ZodString, "many">;
16
+ }, "strip", z.ZodTypeAny, {
17
+ name: string;
18
+ options: string[];
19
+ type: "text" | "checkbox" | "radio";
20
+ }, {
21
+ name: string;
22
+ options: string[];
23
+ type: "text" | "checkbox" | "radio";
24
+ }>;
25
+ export declare const FdoCapacityTier: z.ZodObject<{
26
+ _id: z.ZodString;
27
+ /** Priority for the capacity tier, the higher the number the higher the priority, null is the lowest priority */
28
+ priority: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
29
+ /** Minimum number of Pax for this capacity tier */
30
+ minPax: z.ZodNumber;
31
+ /** Maximum number of Pax for this capacity tier, can be nullish to indicate no maxPax */
32
+ maxPax: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
33
+ /** Total number of tables/slots available for this pax range */
34
+ capacity: z.ZodNumber;
35
+ }, "strip", z.ZodTypeAny, {
36
+ priority?: number | null | undefined;
37
+ maxPax?: number | null | undefined;
38
+ _id: string;
39
+ minPax: number;
40
+ capacity: number;
41
+ }, {
42
+ priority?: number | null | undefined;
43
+ maxPax?: number | null | undefined;
44
+ _id: string;
45
+ minPax: number;
46
+ capacity: number;
47
+ }>;
48
+ export declare const FdoReservationRange: z.ZodObject<{
49
+ _id: z.ZodString;
50
+ /** Enable range */
51
+ enable: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
52
+ /** Name for the ReservationRange eg. VIP Rooms, Private Rooms, 1-4 PAX etc */
53
+ name: z.ZodString;
54
+ /** Operating hours, leave empty array to "disable" for the weekday */
55
+ operatingHours: z.ZodObject<{
56
+ 0: z.ZodObject<{
57
+ enable: z.ZodBoolean;
58
+ hours: z.ZodArray<z.ZodObject<{
59
+ start: z.ZodString;
60
+ end: z.ZodString;
61
+ }, "strip", z.ZodTypeAny, {
62
+ end: string;
63
+ start: string;
64
+ }, {
65
+ end: string;
66
+ start: string;
67
+ }>, "many">;
68
+ }, "strip", z.ZodTypeAny, {
69
+ hours: {
70
+ end: string;
71
+ start: string;
72
+ }[];
73
+ enable: boolean;
74
+ }, {
75
+ hours: {
76
+ end: string;
77
+ start: string;
78
+ }[];
79
+ enable: boolean;
80
+ }>;
81
+ 1: z.ZodObject<{
82
+ enable: z.ZodBoolean;
83
+ hours: z.ZodArray<z.ZodObject<{
84
+ start: z.ZodString;
85
+ end: z.ZodString;
86
+ }, "strip", z.ZodTypeAny, {
87
+ end: string;
88
+ start: string;
89
+ }, {
90
+ end: string;
91
+ start: string;
92
+ }>, "many">;
93
+ }, "strip", z.ZodTypeAny, {
94
+ hours: {
95
+ end: string;
96
+ start: string;
97
+ }[];
98
+ enable: boolean;
99
+ }, {
100
+ hours: {
101
+ end: string; /** Guest message before booking, similar to a TOS for user */
102
+ start: string;
103
+ }[];
104
+ enable: boolean;
105
+ }>;
106
+ 2: z.ZodObject<{
107
+ enable: z.ZodBoolean;
108
+ hours: z.ZodArray<z.ZodObject<{
109
+ start: z.ZodString;
110
+ end: z.ZodString;
111
+ }, "strip", z.ZodTypeAny, {
112
+ end: string;
113
+ start: string;
114
+ }, {
115
+ end: string;
116
+ start: string;
117
+ }>, "many">; /** Draft hold time in minutes */
118
+ }, "strip", z.ZodTypeAny, {
119
+ hours: {
120
+ end: string; /** Enable SMS notifications for reservations */
121
+ start: string;
122
+ }[];
123
+ enable: boolean;
124
+ }, {
125
+ hours: {
126
+ end: string;
127
+ start: string;
128
+ }[];
129
+ enable: boolean;
130
+ }>; /** Send notification when reservation is confirmed */
131
+ 3: z.ZodObject<{
132
+ enable: z.ZodBoolean;
133
+ hours: z.ZodArray<z.ZodObject<{
134
+ start: z.ZodString;
135
+ end: z.ZodString;
136
+ }, "strip", z.ZodTypeAny, {
137
+ end: string;
138
+ start: string;
139
+ }, {
140
+ end: string;
141
+ start: string;
142
+ }>, "many">;
143
+ }, "strip", z.ZodTypeAny, {
144
+ hours: {
145
+ end: string;
146
+ start: string;
147
+ }[];
148
+ enable: boolean;
149
+ }, {
150
+ hours: {
151
+ end: string;
152
+ start: string;
153
+ }[];
154
+ enable: boolean;
155
+ }>;
156
+ 4: z.ZodObject<{
157
+ enable: z.ZodBoolean;
158
+ hours: z.ZodArray<z.ZodObject<{
159
+ start: z.ZodString;
160
+ end: z.ZodString;
161
+ }, "strip", z.ZodTypeAny, {
162
+ end: string;
163
+ start: string;
164
+ }, {
165
+ end: string;
166
+ start: string;
167
+ }>, "many">;
168
+ }, "strip", z.ZodTypeAny, {
169
+ hours: {
170
+ end: string;
171
+ start: string;
172
+ }[];
173
+ enable: boolean;
174
+ }, {
175
+ hours: {
176
+ end: string;
177
+ start: string;
178
+ }[];
179
+ enable: boolean;
180
+ }>;
181
+ 5: z.ZodObject<{
182
+ enable: z.ZodBoolean;
183
+ hours: z.ZodArray<z.ZodObject<{
184
+ start: z.ZodString;
185
+ end: z.ZodString;
186
+ }, "strip", z.ZodTypeAny, {
187
+ end: string;
188
+ start: string;
189
+ }, {
190
+ end: string;
191
+ start: string;
192
+ }>, "many">;
193
+ }, "strip", z.ZodTypeAny, {
194
+ hours: {
195
+ end: string;
196
+ start: string;
197
+ }[];
198
+ enable: boolean;
199
+ }, {
200
+ hours: {
201
+ end: string;
202
+ start: string;
203
+ }[];
204
+ enable: boolean;
205
+ }>;
206
+ 6: z.ZodObject<{
207
+ enable: z.ZodBoolean;
208
+ hours: z.ZodArray<z.ZodObject<{
209
+ start: z.ZodString;
210
+ end: z.ZodString;
211
+ }, "strip", z.ZodTypeAny, {
212
+ end: string;
213
+ start: string;
214
+ }, {
215
+ end: string;
216
+ start: string;
217
+ }>, "many">;
218
+ }, "strip", z.ZodTypeAny, {
219
+ hours: {
220
+ end: string;
221
+ start: string;
222
+ }[];
223
+ enable: boolean;
224
+ }, {
225
+ hours: {
226
+ end: string;
227
+ start: string;
228
+ }[];
229
+ enable: boolean;
230
+ }>;
231
+ }, "strip", z.ZodTypeAny, {
232
+ 0: {
233
+ hours: {
234
+ end: string;
235
+ start: string;
236
+ }[];
237
+ enable: boolean;
238
+ };
239
+ 2: {
240
+ hours: {
241
+ end: string;
242
+ start: string;
243
+ }[];
244
+ enable: boolean;
245
+ };
246
+ 1: {
247
+ hours: {
248
+ end: string;
249
+ start: string;
250
+ }[];
251
+ enable: boolean;
252
+ };
253
+ 3: {
254
+ hours: {
255
+ end: string;
256
+ start: string;
257
+ }[];
258
+ enable: boolean;
259
+ };
260
+ 4: {
261
+ hours: {
262
+ end: string;
263
+ start: string;
264
+ }[];
265
+ enable: boolean;
266
+ };
267
+ 5: {
268
+ hours: {
269
+ end: string;
270
+ start: string;
271
+ }[];
272
+ enable: boolean;
273
+ };
274
+ 6: {
275
+ hours: {
276
+ end: string;
277
+ start: string;
278
+ }[];
279
+ enable: boolean;
280
+ };
281
+ }, {
282
+ 0: {
283
+ hours: {
284
+ end: string;
285
+ start: string;
286
+ }[];
287
+ enable: boolean;
288
+ };
289
+ 2: {
290
+ hours: {
291
+ end: string;
292
+ start: string;
293
+ }[];
294
+ enable: boolean;
295
+ };
296
+ 1: {
297
+ hours: {
298
+ end: string;
299
+ start: string;
300
+ }[];
301
+ enable: boolean;
302
+ };
303
+ 3: {
304
+ hours: {
305
+ end: string;
306
+ start: string;
307
+ }[];
308
+ enable: boolean;
309
+ };
310
+ 4: {
311
+ hours: {
312
+ end: string;
313
+ start: string;
314
+ }[];
315
+ enable: boolean;
316
+ };
317
+ 5: {
318
+ hours: {
319
+ end: string;
320
+ start: string;
321
+ }[];
322
+ enable: boolean;
323
+ };
324
+ 6: {
325
+ hours: {
326
+ end: string;
327
+ start: string;
328
+ }[];
329
+ enable: boolean;
330
+ };
331
+ }>;
332
+ /** Frequency of start times in minutes (e.g., every 30 mins) */
333
+ slotInterval: z.ZodNumber;
334
+ /** Duration of each slot in minutes (e.g., 60 mins) */
335
+ bookingDuration: z.ZodNumber;
336
+ /** Limit: How many days in advance must they book in days (0 = same day) */
337
+ minLeadDuration: z.ZodObject<{
338
+ value: z.ZodNumber;
339
+ unit: z.ZodEnum<["day", "hour", "minute"]>;
340
+ }, "strip", z.ZodTypeAny, {
341
+ value: number;
342
+ unit: "day" | "hour" | "minute";
343
+ }, {
344
+ value: number;
345
+ unit: "day" | "hour" | "minute";
346
+ }>;
347
+ /** Limit: How far into the future can they book ahead in days (e.g., 30 days) */
348
+ maxLeadDuration: z.ZodObject<{
349
+ value: z.ZodNumber;
350
+ unit: z.ZodEnum<["day", "hour", "minute"]>;
351
+ }, "strip", z.ZodTypeAny, {
352
+ value: number;
353
+ unit: "day" | "hour" | "minute";
354
+ }, {
355
+ value: number;
356
+ unit: "day" | "hour" | "minute";
357
+ }>;
358
+ /** Capacity tiers: different capacity allocations for different party sizes within this range/zone */
359
+ capacityTiers: z.ZodArray<z.ZodObject<{
360
+ _id: z.ZodString;
361
+ /** Priority for the capacity tier, the higher the number the higher the priority, null is the lowest priority */
362
+ priority: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
363
+ /** Minimum number of Pax for this capacity tier */
364
+ minPax: z.ZodNumber;
365
+ /** Maximum number of Pax for this capacity tier, can be nullish to indicate no maxPax */
366
+ maxPax: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
367
+ /** Total number of tables/slots available for this pax range */
368
+ capacity: z.ZodNumber;
369
+ }, "strip", z.ZodTypeAny, {
370
+ priority?: number | null | undefined;
371
+ maxPax?: number | null | undefined;
372
+ _id: string;
373
+ minPax: number;
374
+ capacity: number;
375
+ }, {
376
+ priority?: number | null | undefined;
377
+ maxPax?: number | null | undefined;
378
+ _id: string;
379
+ minPax: number;
380
+ capacity: number;
381
+ }>, "many">;
382
+ /** Enable the pre-order for the reservation range */
383
+ enablePreorder: z.ZodBoolean;
384
+ /** Custom preferences */
385
+ preferences: z.ZodArray<z.ZodObject<{
386
+ name: z.ZodString;
387
+ type: z.ZodEnum<["text", "checkbox", "radio"]>;
388
+ options: z.ZodArray<z.ZodString, "many">;
389
+ }, "strip", z.ZodTypeAny, {
390
+ name: string;
391
+ options: string[];
392
+ type: "text" | "checkbox" | "radio";
393
+ }, {
394
+ name: string;
395
+ options: string[];
396
+ type: "text" | "checkbox" | "radio";
397
+ }>, "many">;
398
+ /** Guest message before booking, similar to a TOS for user */
399
+ guestMessage: z.ZodNullable<z.ZodOptional<z.ZodString>>;
400
+ /** Policy message before booking, also similar to a TOS for user */
401
+ cancellationPolicy: z.ZodNullable<z.ZodOptional<z.ZodString>>;
402
+ }, "strip", z.ZodTypeAny, {
403
+ enable?: boolean | null | undefined;
404
+ guestMessage?: string | null | undefined;
405
+ cancellationPolicy?: string | null | undefined;
406
+ name: string;
407
+ _id: string;
408
+ operatingHours: {
409
+ 0: {
410
+ hours: {
411
+ end: string;
412
+ start: string;
413
+ }[];
414
+ enable: boolean;
415
+ };
416
+ 2: {
417
+ hours: {
418
+ end: string;
419
+ start: string;
420
+ }[];
421
+ enable: boolean;
422
+ };
423
+ 1: {
424
+ hours: {
425
+ end: string;
426
+ start: string;
427
+ }[];
428
+ enable: boolean;
429
+ };
430
+ 3: {
431
+ hours: {
432
+ end: string;
433
+ start: string;
434
+ }[];
435
+ enable: boolean;
436
+ };
437
+ 4: {
438
+ hours: {
439
+ end: string;
440
+ start: string;
441
+ }[];
442
+ enable: boolean;
443
+ };
444
+ 5: {
445
+ hours: {
446
+ end: string;
447
+ start: string;
448
+ }[];
449
+ enable: boolean;
450
+ };
451
+ 6: {
452
+ hours: {
453
+ end: string;
454
+ start: string;
455
+ }[];
456
+ enable: boolean;
457
+ };
458
+ };
459
+ slotInterval: number;
460
+ bookingDuration: number;
461
+ minLeadDuration: {
462
+ value: number;
463
+ unit: "day" | "hour" | "minute";
464
+ };
465
+ maxLeadDuration: {
466
+ value: number;
467
+ unit: "day" | "hour" | "minute";
468
+ };
469
+ capacityTiers: {
470
+ priority?: number | null | undefined;
471
+ maxPax?: number | null | undefined;
472
+ _id: string;
473
+ minPax: number;
474
+ capacity: number;
475
+ }[];
476
+ enablePreorder: boolean;
477
+ preferences: {
478
+ name: string;
479
+ options: string[];
480
+ type: "text" | "checkbox" | "radio";
481
+ }[];
482
+ }, {
483
+ enable?: boolean | null | undefined;
484
+ guestMessage?: string | null | undefined;
485
+ cancellationPolicy?: string | null | undefined;
486
+ name: string;
487
+ _id: string;
488
+ operatingHours: {
489
+ 0: {
490
+ hours: {
491
+ end: string;
492
+ start: string;
493
+ }[];
494
+ enable: boolean;
495
+ };
496
+ 2: {
497
+ hours: {
498
+ end: string;
499
+ start: string;
500
+ }[];
501
+ enable: boolean;
502
+ };
503
+ 1: {
504
+ hours: {
505
+ end: string;
506
+ start: string;
507
+ }[];
508
+ enable: boolean;
509
+ };
510
+ 3: {
511
+ hours: {
512
+ end: string;
513
+ start: string;
514
+ }[];
515
+ enable: boolean;
516
+ };
517
+ 4: {
518
+ hours: {
519
+ end: string;
520
+ start: string;
521
+ }[];
522
+ enable: boolean;
523
+ };
524
+ 5: {
525
+ hours: {
526
+ end: string;
527
+ start: string;
528
+ }[];
529
+ enable: boolean;
530
+ };
531
+ 6: {
532
+ hours: {
533
+ end: string;
534
+ start: string;
535
+ }[];
536
+ enable: boolean;
537
+ };
538
+ };
539
+ slotInterval: number;
540
+ bookingDuration: number;
541
+ minLeadDuration: {
542
+ value: number;
543
+ unit: "day" | "hour" | "minute";
544
+ };
545
+ maxLeadDuration: {
546
+ value: number;
547
+ unit: "day" | "hour" | "minute";
548
+ };
549
+ capacityTiers: {
550
+ priority?: number | null | undefined;
551
+ maxPax?: number | null | undefined;
552
+ _id: string;
553
+ minPax: number;
554
+ capacity: number;
555
+ }[];
556
+ enablePreorder: boolean;
557
+ preferences: {
558
+ name: string;
559
+ options: string[];
560
+ type: "text" | "checkbox" | "radio";
561
+ }[];
562
+ }>;
563
+ export declare const FdoOrderReservationSettingsV2: z.ZodObject<{
564
+ ranges: z.ZodArray<z.ZodObject<{
565
+ _id: z.ZodString;
566
+ /** Enable range */
567
+ enable: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
568
+ /** Name for the ReservationRange eg. VIP Rooms, Private Rooms, 1-4 PAX etc */
569
+ name: z.ZodString;
570
+ /** Operating hours, leave empty array to "disable" for the weekday */
571
+ operatingHours: z.ZodObject<{
572
+ 0: z.ZodObject<{
573
+ enable: z.ZodBoolean;
574
+ hours: z.ZodArray<z.ZodObject<{
575
+ start: z.ZodString;
576
+ end: z.ZodString;
577
+ }, "strip", z.ZodTypeAny, {
578
+ end: string;
579
+ start: string;
580
+ }, {
581
+ end: string;
582
+ start: string;
583
+ }>, "many">;
584
+ }, "strip", z.ZodTypeAny, {
585
+ hours: {
586
+ end: string;
587
+ start: string;
588
+ }[];
589
+ enable: boolean;
590
+ }, {
591
+ hours: {
592
+ end: string;
593
+ start: string;
594
+ }[];
595
+ enable: boolean;
596
+ }>;
597
+ 1: z.ZodObject<{
598
+ enable: z.ZodBoolean;
599
+ hours: z.ZodArray<z.ZodObject<{
600
+ start: z.ZodString;
601
+ end: z.ZodString;
602
+ }, "strip", z.ZodTypeAny, {
603
+ end: string;
604
+ start: string;
605
+ }, {
606
+ end: string;
607
+ start: string;
608
+ }>, "many">;
609
+ }, "strip", z.ZodTypeAny, {
610
+ hours: {
611
+ end: string;
612
+ start: string;
613
+ }[];
614
+ enable: boolean;
615
+ }, {
616
+ hours: {
617
+ end: string; /** Guest message before booking, similar to a TOS for user */
618
+ start: string;
619
+ }[];
620
+ enable: boolean;
621
+ }>;
622
+ 2: z.ZodObject<{
623
+ enable: z.ZodBoolean;
624
+ hours: z.ZodArray<z.ZodObject<{
625
+ start: z.ZodString;
626
+ end: z.ZodString;
627
+ }, "strip", z.ZodTypeAny, {
628
+ end: string;
629
+ start: string;
630
+ }, {
631
+ end: string;
632
+ start: string;
633
+ }>, "many">; /** Draft hold time in minutes */
634
+ }, "strip", z.ZodTypeAny, {
635
+ hours: {
636
+ end: string; /** Enable SMS notifications for reservations */
637
+ start: string;
638
+ }[];
639
+ enable: boolean;
640
+ }, {
641
+ hours: {
642
+ end: string;
643
+ start: string;
644
+ }[];
645
+ enable: boolean;
646
+ }>; /** Send notification when reservation is confirmed */
647
+ 3: z.ZodObject<{
648
+ enable: z.ZodBoolean;
649
+ hours: z.ZodArray<z.ZodObject<{
650
+ start: z.ZodString;
651
+ end: z.ZodString;
652
+ }, "strip", z.ZodTypeAny, {
653
+ end: string;
654
+ start: string;
655
+ }, {
656
+ end: string;
657
+ start: string;
658
+ }>, "many">;
659
+ }, "strip", z.ZodTypeAny, {
660
+ hours: {
661
+ end: string;
662
+ start: string;
663
+ }[];
664
+ enable: boolean;
665
+ }, {
666
+ hours: {
667
+ end: string;
668
+ start: string;
669
+ }[];
670
+ enable: boolean;
671
+ }>;
672
+ 4: z.ZodObject<{
673
+ enable: z.ZodBoolean;
674
+ hours: z.ZodArray<z.ZodObject<{
675
+ start: z.ZodString;
676
+ end: z.ZodString;
677
+ }, "strip", z.ZodTypeAny, {
678
+ end: string;
679
+ start: string;
680
+ }, {
681
+ end: string;
682
+ start: string;
683
+ }>, "many">;
684
+ }, "strip", z.ZodTypeAny, {
685
+ hours: {
686
+ end: string;
687
+ start: string;
688
+ }[];
689
+ enable: boolean;
690
+ }, {
691
+ hours: {
692
+ end: string;
693
+ start: string;
694
+ }[];
695
+ enable: boolean;
696
+ }>;
697
+ 5: z.ZodObject<{
698
+ enable: z.ZodBoolean;
699
+ hours: z.ZodArray<z.ZodObject<{
700
+ start: z.ZodString;
701
+ end: z.ZodString;
702
+ }, "strip", z.ZodTypeAny, {
703
+ end: string;
704
+ start: string;
705
+ }, {
706
+ end: string;
707
+ start: string;
708
+ }>, "many">;
709
+ }, "strip", z.ZodTypeAny, {
710
+ hours: {
711
+ end: string;
712
+ start: string;
713
+ }[];
714
+ enable: boolean;
715
+ }, {
716
+ hours: {
717
+ end: string;
718
+ start: string;
719
+ }[];
720
+ enable: boolean;
721
+ }>;
722
+ 6: z.ZodObject<{
723
+ enable: z.ZodBoolean;
724
+ hours: z.ZodArray<z.ZodObject<{
725
+ start: z.ZodString;
726
+ end: z.ZodString;
727
+ }, "strip", z.ZodTypeAny, {
728
+ end: string;
729
+ start: string;
730
+ }, {
731
+ end: string;
732
+ start: string;
733
+ }>, "many">;
734
+ }, "strip", z.ZodTypeAny, {
735
+ hours: {
736
+ end: string;
737
+ start: string;
738
+ }[];
739
+ enable: boolean;
740
+ }, {
741
+ hours: {
742
+ end: string;
743
+ start: string;
744
+ }[];
745
+ enable: boolean;
746
+ }>;
747
+ }, "strip", z.ZodTypeAny, {
748
+ 0: {
749
+ hours: {
750
+ end: string;
751
+ start: string;
752
+ }[];
753
+ enable: boolean;
754
+ };
755
+ 2: {
756
+ hours: {
757
+ end: string;
758
+ start: string;
759
+ }[];
760
+ enable: boolean;
761
+ };
762
+ 1: {
763
+ hours: {
764
+ end: string;
765
+ start: string;
766
+ }[];
767
+ enable: boolean;
768
+ };
769
+ 3: {
770
+ hours: {
771
+ end: string;
772
+ start: string;
773
+ }[];
774
+ enable: boolean;
775
+ };
776
+ 4: {
777
+ hours: {
778
+ end: string;
779
+ start: string;
780
+ }[];
781
+ enable: boolean;
782
+ };
783
+ 5: {
784
+ hours: {
785
+ end: string;
786
+ start: string;
787
+ }[];
788
+ enable: boolean;
789
+ };
790
+ 6: {
791
+ hours: {
792
+ end: string;
793
+ start: string;
794
+ }[];
795
+ enable: boolean;
796
+ };
797
+ }, {
798
+ 0: {
799
+ hours: {
800
+ end: string;
801
+ start: string;
802
+ }[];
803
+ enable: boolean;
804
+ };
805
+ 2: {
806
+ hours: {
807
+ end: string;
808
+ start: string;
809
+ }[];
810
+ enable: boolean;
811
+ };
812
+ 1: {
813
+ hours: {
814
+ end: string;
815
+ start: string;
816
+ }[];
817
+ enable: boolean;
818
+ };
819
+ 3: {
820
+ hours: {
821
+ end: string;
822
+ start: string;
823
+ }[];
824
+ enable: boolean;
825
+ };
826
+ 4: {
827
+ hours: {
828
+ end: string;
829
+ start: string;
830
+ }[];
831
+ enable: boolean;
832
+ };
833
+ 5: {
834
+ hours: {
835
+ end: string;
836
+ start: string;
837
+ }[];
838
+ enable: boolean;
839
+ };
840
+ 6: {
841
+ hours: {
842
+ end: string;
843
+ start: string;
844
+ }[];
845
+ enable: boolean;
846
+ };
847
+ }>;
848
+ /** Frequency of start times in minutes (e.g., every 30 mins) */
849
+ slotInterval: z.ZodNumber;
850
+ /** Duration of each slot in minutes (e.g., 60 mins) */
851
+ bookingDuration: z.ZodNumber;
852
+ /** Limit: How many days in advance must they book in days (0 = same day) */
853
+ minLeadDuration: z.ZodObject<{
854
+ value: z.ZodNumber;
855
+ unit: z.ZodEnum<["day", "hour", "minute"]>;
856
+ }, "strip", z.ZodTypeAny, {
857
+ value: number;
858
+ unit: "day" | "hour" | "minute";
859
+ }, {
860
+ value: number;
861
+ unit: "day" | "hour" | "minute";
862
+ }>;
863
+ /** Limit: How far into the future can they book ahead in days (e.g., 30 days) */
864
+ maxLeadDuration: z.ZodObject<{
865
+ value: z.ZodNumber;
866
+ unit: z.ZodEnum<["day", "hour", "minute"]>;
867
+ }, "strip", z.ZodTypeAny, {
868
+ value: number;
869
+ unit: "day" | "hour" | "minute";
870
+ }, {
871
+ value: number;
872
+ unit: "day" | "hour" | "minute";
873
+ }>;
874
+ /** Capacity tiers: different capacity allocations for different party sizes within this range/zone */
875
+ capacityTiers: z.ZodArray<z.ZodObject<{
876
+ _id: z.ZodString;
877
+ /** Priority for the capacity tier, the higher the number the higher the priority, null is the lowest priority */
878
+ priority: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
879
+ /** Minimum number of Pax for this capacity tier */
880
+ minPax: z.ZodNumber;
881
+ /** Maximum number of Pax for this capacity tier, can be nullish to indicate no maxPax */
882
+ maxPax: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
883
+ /** Total number of tables/slots available for this pax range */
884
+ capacity: z.ZodNumber;
885
+ }, "strip", z.ZodTypeAny, {
886
+ priority?: number | null | undefined;
887
+ maxPax?: number | null | undefined;
888
+ _id: string;
889
+ minPax: number;
890
+ capacity: number;
891
+ }, {
892
+ priority?: number | null | undefined;
893
+ maxPax?: number | null | undefined;
894
+ _id: string;
895
+ minPax: number;
896
+ capacity: number;
897
+ }>, "many">;
898
+ /** Enable the pre-order for the reservation range */
899
+ enablePreorder: z.ZodBoolean;
900
+ /** Custom preferences */
901
+ preferences: z.ZodArray<z.ZodObject<{
902
+ name: z.ZodString;
903
+ type: z.ZodEnum<["text", "checkbox", "radio"]>;
904
+ options: z.ZodArray<z.ZodString, "many">;
905
+ }, "strip", z.ZodTypeAny, {
906
+ name: string;
907
+ options: string[];
908
+ type: "text" | "checkbox" | "radio";
909
+ }, {
910
+ name: string;
911
+ options: string[];
912
+ type: "text" | "checkbox" | "radio";
913
+ }>, "many">;
914
+ /** Guest message before booking, similar to a TOS for user */
915
+ guestMessage: z.ZodNullable<z.ZodOptional<z.ZodString>>;
916
+ /** Policy message before booking, also similar to a TOS for user */
917
+ cancellationPolicy: z.ZodNullable<z.ZodOptional<z.ZodString>>;
918
+ }, "strip", z.ZodTypeAny, {
919
+ enable?: boolean | null | undefined;
920
+ guestMessage?: string | null | undefined;
921
+ cancellationPolicy?: string | null | undefined;
922
+ name: string;
923
+ _id: string;
924
+ operatingHours: {
925
+ 0: {
926
+ hours: {
927
+ end: string;
928
+ start: string;
929
+ }[];
930
+ enable: boolean;
931
+ };
932
+ 2: {
933
+ hours: {
934
+ end: string;
935
+ start: string;
936
+ }[];
937
+ enable: boolean;
938
+ };
939
+ 1: {
940
+ hours: {
941
+ end: string;
942
+ start: string;
943
+ }[];
944
+ enable: boolean;
945
+ };
946
+ 3: {
947
+ hours: {
948
+ end: string;
949
+ start: string;
950
+ }[];
951
+ enable: boolean;
952
+ };
953
+ 4: {
954
+ hours: {
955
+ end: string;
956
+ start: string;
957
+ }[];
958
+ enable: boolean;
959
+ };
960
+ 5: {
961
+ hours: {
962
+ end: string;
963
+ start: string;
964
+ }[];
965
+ enable: boolean;
966
+ };
967
+ 6: {
968
+ hours: {
969
+ end: string;
970
+ start: string;
971
+ }[];
972
+ enable: boolean;
973
+ };
974
+ };
975
+ slotInterval: number;
976
+ bookingDuration: number;
977
+ minLeadDuration: {
978
+ value: number;
979
+ unit: "day" | "hour" | "minute";
980
+ };
981
+ maxLeadDuration: {
982
+ value: number;
983
+ unit: "day" | "hour" | "minute";
984
+ };
985
+ capacityTiers: {
986
+ priority?: number | null | undefined;
987
+ maxPax?: number | null | undefined;
988
+ _id: string;
989
+ minPax: number;
990
+ capacity: number;
991
+ }[];
992
+ enablePreorder: boolean;
993
+ preferences: {
994
+ name: string;
995
+ options: string[];
996
+ type: "text" | "checkbox" | "radio";
997
+ }[];
998
+ }, {
999
+ enable?: boolean | null | undefined;
1000
+ guestMessage?: string | null | undefined;
1001
+ cancellationPolicy?: string | null | undefined;
1002
+ name: string;
1003
+ _id: string;
1004
+ operatingHours: {
1005
+ 0: {
1006
+ hours: {
1007
+ end: string;
1008
+ start: string;
1009
+ }[];
1010
+ enable: boolean;
1011
+ };
1012
+ 2: {
1013
+ hours: {
1014
+ end: string;
1015
+ start: string;
1016
+ }[];
1017
+ enable: boolean;
1018
+ };
1019
+ 1: {
1020
+ hours: {
1021
+ end: string;
1022
+ start: string;
1023
+ }[];
1024
+ enable: boolean;
1025
+ };
1026
+ 3: {
1027
+ hours: {
1028
+ end: string;
1029
+ start: string;
1030
+ }[];
1031
+ enable: boolean;
1032
+ };
1033
+ 4: {
1034
+ hours: {
1035
+ end: string;
1036
+ start: string;
1037
+ }[];
1038
+ enable: boolean;
1039
+ };
1040
+ 5: {
1041
+ hours: {
1042
+ end: string;
1043
+ start: string;
1044
+ }[];
1045
+ enable: boolean;
1046
+ };
1047
+ 6: {
1048
+ hours: {
1049
+ end: string;
1050
+ start: string;
1051
+ }[];
1052
+ enable: boolean;
1053
+ };
1054
+ };
1055
+ slotInterval: number;
1056
+ bookingDuration: number;
1057
+ minLeadDuration: {
1058
+ value: number;
1059
+ unit: "day" | "hour" | "minute";
1060
+ };
1061
+ maxLeadDuration: {
1062
+ value: number;
1063
+ unit: "day" | "hour" | "minute";
1064
+ };
1065
+ capacityTiers: {
1066
+ priority?: number | null | undefined;
1067
+ maxPax?: number | null | undefined;
1068
+ _id: string;
1069
+ minPax: number;
1070
+ capacity: number;
1071
+ }[];
1072
+ enablePreorder: boolean;
1073
+ preferences: {
1074
+ name: string;
1075
+ options: string[];
1076
+ type: "text" | "checkbox" | "radio";
1077
+ }[];
1078
+ }>, "many">;
1079
+ /** Set to true will allow POS to overbook */
1080
+ posCanOverbook: z.ZodBoolean;
1081
+ /** Draft hold time in minutes */
1082
+ draftHoldTimeMinutes: z.ZodNumber;
1083
+ /** Enable SMS notifications for reservations */
1084
+ smsEnabled: z.ZodDefault<z.ZodBoolean>;
1085
+ /** Enable email notifications for reservations */
1086
+ emailEnabled: z.ZodDefault<z.ZodBoolean>;
1087
+ /** Send notification when reservation is confirmed */
1088
+ notifyOnConfirm: z.ZodDefault<z.ZodBoolean>;
1089
+ /** Send notification when reservation is cancelled */
1090
+ notifyOnCancel: z.ZodDefault<z.ZodBoolean>;
1091
+ }, "strip", z.ZodTypeAny, {
1092
+ smsEnabled: boolean;
1093
+ ranges: {
1094
+ enable?: boolean | null | undefined;
1095
+ guestMessage?: string | null | undefined;
1096
+ cancellationPolicy?: string | null | undefined;
1097
+ name: string;
1098
+ _id: string;
1099
+ operatingHours: {
1100
+ 0: {
1101
+ hours: {
1102
+ end: string;
1103
+ start: string;
1104
+ }[];
1105
+ enable: boolean;
1106
+ };
1107
+ 2: {
1108
+ hours: {
1109
+ end: string;
1110
+ start: string;
1111
+ }[];
1112
+ enable: boolean;
1113
+ };
1114
+ 1: {
1115
+ hours: {
1116
+ end: string;
1117
+ start: string;
1118
+ }[];
1119
+ enable: boolean;
1120
+ };
1121
+ 3: {
1122
+ hours: {
1123
+ end: string;
1124
+ start: string;
1125
+ }[];
1126
+ enable: boolean;
1127
+ };
1128
+ 4: {
1129
+ hours: {
1130
+ end: string;
1131
+ start: string;
1132
+ }[];
1133
+ enable: boolean;
1134
+ };
1135
+ 5: {
1136
+ hours: {
1137
+ end: string;
1138
+ start: string;
1139
+ }[];
1140
+ enable: boolean;
1141
+ };
1142
+ 6: {
1143
+ hours: {
1144
+ end: string;
1145
+ start: string;
1146
+ }[];
1147
+ enable: boolean;
1148
+ };
1149
+ };
1150
+ slotInterval: number;
1151
+ bookingDuration: number;
1152
+ minLeadDuration: {
1153
+ value: number;
1154
+ unit: "day" | "hour" | "minute";
1155
+ };
1156
+ maxLeadDuration: {
1157
+ value: number;
1158
+ unit: "day" | "hour" | "minute";
1159
+ };
1160
+ capacityTiers: {
1161
+ priority?: number | null | undefined;
1162
+ maxPax?: number | null | undefined;
1163
+ _id: string;
1164
+ minPax: number;
1165
+ capacity: number;
1166
+ }[];
1167
+ enablePreorder: boolean;
1168
+ preferences: {
1169
+ name: string;
1170
+ options: string[];
1171
+ type: "text" | "checkbox" | "radio";
1172
+ }[];
1173
+ }[];
1174
+ posCanOverbook: boolean;
1175
+ draftHoldTimeMinutes: number;
1176
+ emailEnabled: boolean;
1177
+ notifyOnConfirm: boolean;
1178
+ notifyOnCancel: boolean;
1179
+ }, {
1180
+ smsEnabled?: boolean | undefined;
1181
+ emailEnabled?: boolean | undefined;
1182
+ notifyOnConfirm?: boolean | undefined;
1183
+ notifyOnCancel?: boolean | undefined;
1184
+ ranges: {
1185
+ enable?: boolean | null | undefined;
1186
+ guestMessage?: string | null | undefined;
1187
+ cancellationPolicy?: string | null | undefined;
1188
+ name: string;
1189
+ _id: string;
1190
+ operatingHours: {
1191
+ 0: {
1192
+ hours: {
1193
+ end: string;
1194
+ start: string;
1195
+ }[];
1196
+ enable: boolean;
1197
+ };
1198
+ 2: {
1199
+ hours: {
1200
+ end: string;
1201
+ start: string;
1202
+ }[];
1203
+ enable: boolean;
1204
+ };
1205
+ 1: {
1206
+ hours: {
1207
+ end: string;
1208
+ start: string;
1209
+ }[];
1210
+ enable: boolean;
1211
+ };
1212
+ 3: {
1213
+ hours: {
1214
+ end: string;
1215
+ start: string;
1216
+ }[];
1217
+ enable: boolean;
1218
+ };
1219
+ 4: {
1220
+ hours: {
1221
+ end: string;
1222
+ start: string;
1223
+ }[];
1224
+ enable: boolean;
1225
+ };
1226
+ 5: {
1227
+ hours: {
1228
+ end: string;
1229
+ start: string;
1230
+ }[];
1231
+ enable: boolean;
1232
+ };
1233
+ 6: {
1234
+ hours: {
1235
+ end: string;
1236
+ start: string;
1237
+ }[];
1238
+ enable: boolean;
1239
+ };
1240
+ };
1241
+ slotInterval: number;
1242
+ bookingDuration: number;
1243
+ minLeadDuration: {
1244
+ value: number;
1245
+ unit: "day" | "hour" | "minute";
1246
+ };
1247
+ maxLeadDuration: {
1248
+ value: number;
1249
+ unit: "day" | "hour" | "minute";
1250
+ };
1251
+ capacityTiers: {
1252
+ priority?: number | null | undefined;
1253
+ maxPax?: number | null | undefined;
1254
+ _id: string;
1255
+ minPax: number;
1256
+ capacity: number;
1257
+ }[];
1258
+ enablePreorder: boolean;
1259
+ preferences: {
1260
+ name: string;
1261
+ options: string[];
1262
+ type: "text" | "checkbox" | "radio";
1263
+ }[];
1264
+ }[];
1265
+ posCanOverbook: boolean;
1266
+ draftHoldTimeMinutes: number;
1267
+ }>;
1268
+ export type FdoOrderReservationSettingsV2 = z.infer<typeof FdoOrderReservationSettingsV2>;
1269
+ export type FdoReservationRange = z.infer<typeof FdoReservationRange>;