@feedmepos/mf-order-setting 0.0.53 → 0.0.56-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/.tsbuildinfo +1 -0
  2. package/dist/{KioskDevicesView-CMKNjgWx.js → KioskDevicesView-CccsAZqK.js} +1 -1
  3. package/dist/{KioskDevicesView.vue_vue_type_script_setup_true_lang-B1sNvlUC.js → KioskDevicesView.vue_vue_type_script_setup_true_lang-dF1jgi53.js} +2 -2
  4. package/dist/{KioskSettingView-BE_pMA-i.js → KioskSettingView-8GY7AT-N.js} +128 -126
  5. package/dist/{KioskView-U-Wg8oMC.js → KioskView-DmaCjLcw.js} +4 -4
  6. package/dist/{OrderSettingsView-BWzaITT6.js → OrderSettingsView-BZcU4t9L.js} +28631 -24307
  7. package/dist/{app-CFfgPAd8.js → app-EGmxrjDM.js} +392 -228
  8. package/dist/app.js +1 -1
  9. package/dist/{dayjs.min-CuRr-wlf.js → dayjs.min-lCwCAXUZ.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 -0
  12. package/dist/frontend/mf-order/src/main.d.ts +164 -0
  13. package/dist/frontend/mf-order/src/views/order-settings/reservation/CopySettingsSheet.vue.d.ts +186 -0
  14. package/dist/frontend/mf-order/src/views/order-settings/reservation/CustomSelect.vue.d.ts +15 -0
  15. package/dist/frontend/mf-order/src/views/order-settings/reservation/CustomTimePicker.vue.d.ts +10 -0
  16. package/dist/frontend/mf-order/src/views/order-settings/reservation/ReservationSetting.vue.d.ts +2 -0
  17. package/dist/{index-Bj0bCGTm.js → index-CWrX79Jg.js} +8 -8
  18. package/dist/{menu.dto-DAh1J2ES.js → menu.dto-CgymySda.js} +47093 -44304
  19. package/dist/package/entity/index.d.ts +5 -0
  20. package/dist/package/entity/order-setting/order-setting.do.d.ts +861 -0
  21. package/dist/package/entity/order-setting/reservationV2/reservation.do.d.ts +1269 -0
  22. package/dist/package/entity/reservation/reservation.do.d.ts +101 -0
  23. package/dist/package/entity/reservation/reservation.dto.d.ts +325 -0
  24. package/dist/package/entity/reservation/reservation.enum.d.ts +3 -0
  25. package/dist/package/entity/reservation/reservation.utils.d.ts +152 -0
  26. package/dist/style.css +1 -0
  27. package/package.json +1 -1
  28. package/src/api/reservation/index.ts +28 -0
  29. package/src/assets/images/not-found.png +0 -0
  30. package/src/locales/en-US.json +56 -0
  31. package/src/locales/th-TH.json +54 -0
  32. package/src/locales/zh-CN.json +54 -0
  33. package/src/views/kiosk/settings/KioskSettingView.vue +16 -14
  34. package/src/views/order-settings/OrderSettingsView.vue +6 -1
  35. package/src/views/order-settings/reservation/CopySettingsSheet.vue +256 -0
  36. package/src/views/order-settings/reservation/CustomSelect.vue +99 -0
  37. package/src/views/order-settings/reservation/CustomTimePicker.vue +231 -0
  38. package/src/views/order-settings/reservation/ReservationSetting.vue +1311 -0
  39. package/tsconfig.app.json +8 -6
  40. 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>;