order3000 1.6.0 → 1.8.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/schemas.mjs CHANGED
@@ -132,6 +132,8 @@ const areaBookingStatusSchema = z.enum([
132
132
  "no_show"
133
133
  ]);
134
134
 
135
+ const areaTypeSchema = z.enum(["indoor", "outdoor"]);
136
+
135
137
  const assetTypeSchema = z.enum(["image", "video", "document"]);
136
138
 
137
139
  const areaSchema = z.object({
@@ -167,6 +169,11 @@ const areaSchema = z.object({
167
169
  isBookable: z.optional(z.boolean()),
168
170
  isPublic: z.optional(z.boolean()),
169
171
  isActive: z.optional(z.boolean()),
172
+ get areaType() {
173
+ return areaTypeSchema.optional();
174
+ },
175
+ turnTimes: z.object({}).catchall(z.number()).nullish(),
176
+ cleanup: z.int().min(-9007199254740991).max(9007199254740991).nullish(),
170
177
  assets: z.optional(
171
178
  z.array(
172
179
  z.object({
@@ -195,6 +202,16 @@ const areaSchema = z.object({
195
202
  publicUrl: z.url()
196
203
  })
197
204
  )
205
+ ),
206
+ closures: z.optional(
207
+ z.array(
208
+ z.object({
209
+ id: z.string(),
210
+ date: z.string(),
211
+ reason: z.nullable(z.object({}).catchall(z.string())),
212
+ isActive: z.boolean()
213
+ })
214
+ )
198
215
  )
199
216
  }).describe(
200
217
  "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."
@@ -592,7 +609,7 @@ const createAdResponseSchema = z.object({
592
609
  z.object({}).catchall(z.any())
593
610
  ])
594
611
  ),
595
- targetingOverride: z.nullable(
612
+ servedMarket: z.nullable(
596
613
  z.union([
597
614
  z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
598
615
  z.array(z.any()),
@@ -687,13 +704,23 @@ const createEventRequestSchema = z.object({
687
704
  maxGuests: z.int().min(-2147483648).max(2147483647).nullish(),
688
705
  minPartySize: z.int().min(-2147483648).max(2147483647).nullish(),
689
706
  maxPartySize: z.int().min(-2147483648).max(2147483647).nullish(),
707
+ staffByRole: z.union([
708
+ z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
709
+ z.array(z.any()),
710
+ z.object({}).catchall(z.any())
711
+ ]).nullish(),
690
712
  isPublic: z.optional(z.boolean()),
691
713
  reservationsEnabled: z.optional(z.boolean()),
692
714
  bookingOpensAtDays: z.int().min(-2147483648).max(2147483647).nullish(),
693
715
  bookingClosesAtOffset: z.int().min(-2147483648).max(2147483647).nullish(),
694
716
  isActive: z.optional(z.boolean()),
695
717
  isFeatured: z.optional(z.boolean()),
696
- priority: z.optional(z.int().min(-2147483648).max(2147483647)),
718
+ takesOverDay: z.optional(z.boolean()),
719
+ servedMarket: z.union([
720
+ z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
721
+ z.array(z.any()),
722
+ z.object({}).catchall(z.any())
723
+ ]).nullish(),
697
724
  schedule: z.object({
698
725
  rrule: z.string().nullish(),
699
726
  timezone: z.string().nullish(),
@@ -739,13 +766,27 @@ const createEventResponseSchema = z.object({
739
766
  maxGuests: z.nullable(z.int().min(-2147483648).max(2147483647)),
740
767
  minPartySize: z.nullable(z.int().min(-2147483648).max(2147483647)),
741
768
  maxPartySize: z.nullable(z.int().min(-2147483648).max(2147483647)),
769
+ staffByRole: z.nullable(
770
+ z.union([
771
+ z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
772
+ z.array(z.any()),
773
+ z.object({}).catchall(z.any())
774
+ ])
775
+ ),
742
776
  isPublic: z.boolean(),
743
777
  reservationsEnabled: z.boolean(),
744
778
  bookingOpensAtDays: z.nullable(z.int().min(-2147483648).max(2147483647)),
745
779
  bookingClosesAtOffset: z.nullable(z.int().min(-2147483648).max(2147483647)),
746
780
  isActive: z.boolean(),
747
781
  isFeatured: z.boolean(),
748
- priority: z.int().min(-2147483648).max(2147483647),
782
+ takesOverDay: z.boolean(),
783
+ servedMarket: z.nullable(
784
+ z.union([
785
+ z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
786
+ z.array(z.any()),
787
+ z.object({}).catchall(z.any())
788
+ ])
789
+ ),
749
790
  createdBy: z.nullable(z.string()),
750
791
  updatedBy: z.nullable(z.string()),
751
792
  createdAt: z.nullable(z.any()),
@@ -853,7 +894,7 @@ const deleteAdResponseSchema = z.object({
853
894
  z.object({}).catchall(z.any())
854
895
  ])
855
896
  ),
856
- targetingOverride: z.nullable(
897
+ servedMarket: z.nullable(
857
898
  z.union([
858
899
  z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
859
900
  z.array(z.any()),
@@ -922,13 +963,27 @@ const deleteEventResponseSchema = z.object({
922
963
  maxGuests: z.nullable(z.int().min(-2147483648).max(2147483647)),
923
964
  minPartySize: z.nullable(z.int().min(-2147483648).max(2147483647)),
924
965
  maxPartySize: z.nullable(z.int().min(-2147483648).max(2147483647)),
966
+ staffByRole: z.nullable(
967
+ z.union([
968
+ z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
969
+ z.array(z.any()),
970
+ z.object({}).catchall(z.any())
971
+ ])
972
+ ),
925
973
  isPublic: z.boolean(),
926
974
  reservationsEnabled: z.boolean(),
927
975
  bookingOpensAtDays: z.nullable(z.int().min(-2147483648).max(2147483647)),
928
976
  bookingClosesAtOffset: z.nullable(z.int().min(-2147483648).max(2147483647)),
929
977
  isActive: z.boolean(),
930
978
  isFeatured: z.boolean(),
931
- priority: z.int().min(-2147483648).max(2147483647),
979
+ takesOverDay: z.boolean(),
980
+ servedMarket: z.nullable(
981
+ z.union([
982
+ z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
983
+ z.array(z.any()),
984
+ z.object({}).catchall(z.any())
985
+ ])
986
+ ),
932
987
  createdBy: z.nullable(z.string()),
933
988
  updatedBy: z.nullable(z.string()),
934
989
  createdAt: z.nullable(z.any()),
@@ -1002,7 +1057,7 @@ const editAdResponseSchema = z.object({
1002
1057
  z.object({}).catchall(z.any())
1003
1058
  ])
1004
1059
  ),
1005
- targetingOverride: z.nullable(
1060
+ servedMarket: z.nullable(
1006
1061
  z.union([
1007
1062
  z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
1008
1063
  z.array(z.any()),
@@ -1125,13 +1180,23 @@ const editEventRequestSchema = z.object({
1125
1180
  maxGuests: z.int().min(-2147483648).max(2147483647).nullish(),
1126
1181
  minPartySize: z.int().min(-2147483648).max(2147483647).nullish(),
1127
1182
  maxPartySize: z.int().min(-2147483648).max(2147483647).nullish(),
1183
+ staffByRole: z.union([
1184
+ z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
1185
+ z.array(z.any()),
1186
+ z.object({}).catchall(z.any())
1187
+ ]).nullish(),
1128
1188
  isPublic: z.optional(z.boolean()),
1129
1189
  reservationsEnabled: z.optional(z.boolean()),
1130
1190
  bookingOpensAtDays: z.int().min(-2147483648).max(2147483647).nullish(),
1131
1191
  bookingClosesAtOffset: z.int().min(-2147483648).max(2147483647).nullish(),
1132
1192
  isActive: z.optional(z.boolean()),
1133
1193
  isFeatured: z.optional(z.boolean()),
1134
- priority: z.optional(z.int().min(-2147483648).max(2147483647)),
1194
+ takesOverDay: z.optional(z.boolean()),
1195
+ servedMarket: z.union([
1196
+ z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
1197
+ z.array(z.any()),
1198
+ z.object({}).catchall(z.any())
1199
+ ]).nullish(),
1135
1200
  schedule: z.object({
1136
1201
  rrule: z.string().nullish(),
1137
1202
  timezone: z.string().nullish(),
@@ -1153,6 +1218,120 @@ const editEventRequestSchema = z.object({
1153
1218
  ritualAccessor: z.string().nullish()
1154
1219
  }).describe("Partial-update body for an existing event");
1155
1220
 
1221
+ const scheduleSchema = z.object({
1222
+ id: z.string(),
1223
+ name: z.union([
1224
+ z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
1225
+ z.array(z.any()),
1226
+ z.object({}).catchall(z.any())
1227
+ ]),
1228
+ description: z.nullable(
1229
+ z.union([
1230
+ z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
1231
+ z.array(z.any()),
1232
+ z.object({}).catchall(z.any())
1233
+ ])
1234
+ ),
1235
+ timezone: z.string(),
1236
+ rrule: z.nullable(z.string()),
1237
+ exdates: z.nullable(z.array(z.string())),
1238
+ validFrom: z.nullable(z.string()),
1239
+ validTo: z.nullable(z.string()),
1240
+ get slotMode() {
1241
+ return slotModeSchema;
1242
+ },
1243
+ intervalDuration: z.nullable(z.int().min(-2147483648).max(2147483647)),
1244
+ duration: z.nullable(z.int().min(-2147483648).max(2147483647)),
1245
+ isActive: z.boolean(),
1246
+ sortIndex: z.nullable(z.string().max(255)),
1247
+ updatedAt: z.nullable(z.any()),
1248
+ updatedBy: z.nullable(z.string()),
1249
+ createdAt: z.nullable(z.any()),
1250
+ createdBy: z.nullable(z.string()),
1251
+ scheduleTimeSlots: z.optional(
1252
+ z.array(
1253
+ z.object({
1254
+ scheduleId: z.nullable(z.string()),
1255
+ timeSlotId: z.nullable(z.string()),
1256
+ get dayOfWeek() {
1257
+ return dayOfWeekSchema;
1258
+ },
1259
+ sortIndex: z.nullable(z.string().max(255)),
1260
+ timeSlot: z.nullable(
1261
+ z.object({
1262
+ id: z.string(),
1263
+ startTime: z.string(),
1264
+ endTime: z.nullable(z.string()),
1265
+ isActive: z.nullable(z.boolean()),
1266
+ isSchedulable: z.nullable(z.boolean()),
1267
+ maxBookings: z.nullable(z.int().min(-2147483648).max(2147483647)),
1268
+ maxGuests: z.nullable(z.int().min(-2147483648).max(2147483647)),
1269
+ overflowBookings: z.nullable(
1270
+ z.int().min(-2147483648).max(2147483647)
1271
+ ),
1272
+ overflowGuests: z.nullable(
1273
+ z.int().min(-2147483648).max(2147483647)
1274
+ ),
1275
+ sortIndex: z.nullable(z.string().max(255)),
1276
+ updatedAt: z.nullable(z.any()),
1277
+ updatedBy: z.nullable(z.string()),
1278
+ createdAt: z.nullable(z.any()),
1279
+ createdBy: z.nullable(z.string())
1280
+ })
1281
+ )
1282
+ })
1283
+ )
1284
+ ),
1285
+ scheduleOverrides: z.optional(
1286
+ z.array(
1287
+ z.object({
1288
+ id: z.string(),
1289
+ scheduleId: z.string(),
1290
+ date: z.string(),
1291
+ reason: z.nullable(
1292
+ z.union([
1293
+ z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
1294
+ z.array(z.any()),
1295
+ z.object({}).catchall(z.any())
1296
+ ])
1297
+ ),
1298
+ isActive: z.boolean(),
1299
+ updatedAt: z.nullable(z.any()),
1300
+ updatedBy: z.nullable(z.string()),
1301
+ createdAt: z.nullable(z.any()),
1302
+ createdBy: z.nullable(z.string()),
1303
+ scheduleOverrideTimeSlots: z.array(
1304
+ z.object({
1305
+ overrideId: z.string(),
1306
+ timeSlotId: z.string(),
1307
+ sortIndex: z.nullable(z.string().max(255)),
1308
+ timeSlot: z.object({
1309
+ id: z.string(),
1310
+ startTime: z.string(),
1311
+ endTime: z.nullable(z.string()),
1312
+ isActive: z.nullable(z.boolean()),
1313
+ isSchedulable: z.nullable(z.boolean()),
1314
+ maxBookings: z.nullable(z.int().min(-2147483648).max(2147483647)),
1315
+ maxGuests: z.nullable(z.int().min(-2147483648).max(2147483647)),
1316
+ overflowBookings: z.nullable(
1317
+ z.int().min(-2147483648).max(2147483647)
1318
+ ),
1319
+ overflowGuests: z.nullable(
1320
+ z.int().min(-2147483648).max(2147483647)
1321
+ ),
1322
+ sortIndex: z.nullable(z.string().max(255)),
1323
+ updatedAt: z.nullable(z.any()),
1324
+ updatedBy: z.nullable(z.string()),
1325
+ createdAt: z.nullable(z.any()),
1326
+ createdBy: z.nullable(z.string())
1327
+ })
1328
+ })
1329
+ )
1330
+ })
1331
+ )
1332
+ )
1333
+ });
1334
+
1156
1335
  const editEventResponseSchema = z.object({
1157
1336
  id: z.string(),
1158
1337
  venueId: z.string(),
@@ -1176,77 +1355,34 @@ const editEventResponseSchema = z.object({
1176
1355
  maxGuests: z.nullable(z.int().min(-2147483648).max(2147483647)),
1177
1356
  minPartySize: z.nullable(z.int().min(-2147483648).max(2147483647)),
1178
1357
  maxPartySize: z.nullable(z.int().min(-2147483648).max(2147483647)),
1358
+ staffByRole: z.nullable(
1359
+ z.union([
1360
+ z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
1361
+ z.array(z.any()),
1362
+ z.object({}).catchall(z.any())
1363
+ ])
1364
+ ),
1179
1365
  isPublic: z.boolean(),
1180
1366
  reservationsEnabled: z.boolean(),
1181
1367
  bookingOpensAtDays: z.nullable(z.int().min(-2147483648).max(2147483647)),
1182
1368
  bookingClosesAtOffset: z.nullable(z.int().min(-2147483648).max(2147483647)),
1183
1369
  isActive: z.boolean(),
1184
1370
  isFeatured: z.boolean(),
1185
- priority: z.int().min(-2147483648).max(2147483647),
1371
+ takesOverDay: z.boolean(),
1372
+ servedMarket: z.nullable(
1373
+ z.union([
1374
+ z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
1375
+ z.array(z.any()),
1376
+ z.object({}).catchall(z.any())
1377
+ ])
1378
+ ),
1186
1379
  createdBy: z.nullable(z.string()),
1187
1380
  updatedBy: z.nullable(z.string()),
1188
1381
  createdAt: z.nullable(z.any()),
1189
1382
  updatedAt: z.nullable(z.any()),
1190
- schedule: z.nullable(
1191
- z.object({
1192
- id: z.string(),
1193
- name: z.union([
1194
- z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
1195
- z.array(z.any()),
1196
- z.object({}).catchall(z.any())
1197
- ]),
1198
- description: z.nullable(
1199
- z.union([
1200
- z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
1201
- z.array(z.any()),
1202
- z.object({}).catchall(z.any())
1203
- ])
1204
- ),
1205
- timezone: z.string(),
1206
- rrule: z.nullable(z.string()),
1207
- exdates: z.nullable(z.array(z.string())),
1208
- validFrom: z.nullable(z.string()),
1209
- validTo: z.nullable(z.string()),
1210
- priority: z.nullable(z.int().min(-2147483648).max(2147483647)),
1211
- get slotMode() {
1212
- return slotModeSchema;
1213
- },
1214
- intervalDuration: z.nullable(z.int().min(-2147483648).max(2147483647)),
1215
- duration: z.nullable(z.int().min(-2147483648).max(2147483647)),
1216
- isActive: z.boolean(),
1217
- sortIndex: z.nullable(z.string().max(255)),
1218
- updatedAt: z.nullable(z.any()),
1219
- updatedBy: z.nullable(z.string()),
1220
- createdAt: z.nullable(z.any()),
1221
- createdBy: z.nullable(z.string()),
1222
- scheduleTimeSlots: z.optional(
1223
- z.array(
1224
- z.object({
1225
- scheduleId: z.nullable(z.string()),
1226
- timeSlotId: z.nullable(z.string()),
1227
- get dayOfWeek() {
1228
- return dayOfWeekSchema;
1229
- },
1230
- sortIndex: z.nullable(z.string().max(255)),
1231
- timeSlot: z.nullable(
1232
- z.object({
1233
- id: z.string(),
1234
- startTime: z.string(),
1235
- endTime: z.nullable(z.string()),
1236
- isActive: z.nullable(z.boolean()),
1237
- isSchedulable: z.nullable(z.boolean()),
1238
- sortIndex: z.nullable(z.string().max(255)),
1239
- updatedAt: z.nullable(z.any()),
1240
- updatedBy: z.nullable(z.string()),
1241
- createdAt: z.nullable(z.any()),
1242
- createdBy: z.nullable(z.string())
1243
- })
1244
- )
1245
- })
1246
- )
1247
- )
1248
- })
1249
- )
1383
+ get schedule() {
1384
+ return scheduleSchema.nullable();
1385
+ }
1250
1386
  }).describe("Successfully updated event with schedule");
1251
1387
 
1252
1388
  const editMetaAdRequestSchema = z.object({
@@ -1304,7 +1440,7 @@ const editMetaAdResponseSchema = z.object({
1304
1440
  z.object({}).catchall(z.any())
1305
1441
  ])
1306
1442
  ),
1307
- targetingOverride: z.nullable(
1443
+ servedMarket: z.nullable(
1308
1444
  z.union([
1309
1445
  z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
1310
1446
  z.array(z.any()),
@@ -1432,7 +1568,7 @@ const fetchAdResponseSchema = z.object({
1432
1568
  z.object({}).catchall(z.any())
1433
1569
  ])
1434
1570
  ),
1435
- targetingOverride: z.nullable(
1571
+ servedMarket: z.nullable(
1436
1572
  z.union([
1437
1573
  z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
1438
1574
  z.array(z.any()),
@@ -1508,7 +1644,7 @@ const fetchAdsResponseSchema = z.array(
1508
1644
  z.object({}).catchall(z.any())
1509
1645
  ])
1510
1646
  ),
1511
- targetingOverride: z.nullable(
1647
+ servedMarket: z.nullable(
1512
1648
  z.union([
1513
1649
  z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
1514
1650
  z.array(z.any()),
@@ -1607,6 +1743,11 @@ const fetchAreaResponseSchema = z.object({
1607
1743
  isBookable: z.optional(z.boolean()),
1608
1744
  isPublic: z.optional(z.boolean()),
1609
1745
  isActive: z.optional(z.boolean()),
1746
+ get areaType() {
1747
+ return areaTypeSchema.optional();
1748
+ },
1749
+ turnTimes: z.object({}).catchall(z.number()).nullish(),
1750
+ cleanup: z.int().min(-9007199254740991).max(9007199254740991).nullish(),
1610
1751
  assets: z.optional(
1611
1752
  z.array(
1612
1753
  z.object({
@@ -1635,6 +1776,16 @@ const fetchAreaResponseSchema = z.object({
1635
1776
  publicUrl: z.url()
1636
1777
  })
1637
1778
  )
1779
+ ),
1780
+ closures: z.optional(
1781
+ z.array(
1782
+ z.object({
1783
+ id: z.string(),
1784
+ date: z.string(),
1785
+ reason: z.nullable(z.object({}).catchall(z.string())),
1786
+ isActive: z.boolean()
1787
+ })
1788
+ )
1638
1789
  )
1639
1790
  }).describe(
1640
1791
  "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."
@@ -1817,7 +1968,7 @@ const fetchEventResponseSchema = z.object({
1817
1968
  bookingClosesAtOffset: z.nullable(z.number()),
1818
1969
  isActive: z.boolean(),
1819
1970
  isFeatured: z.boolean(),
1820
- priority: z.number(),
1971
+ takesOverDay: z.boolean(),
1821
1972
  createdAt: z.nullable(z.any()),
1822
1973
  updatedAt: z.nullable(z.any()),
1823
1974
  nextOccurrence: z.string().nullish(),
@@ -1831,7 +1982,6 @@ const fetchEventResponseSchema = z.object({
1831
1982
  exdates: z.nullable(z.array(z.string())),
1832
1983
  validFrom: z.nullable(z.string()),
1833
1984
  validTo: z.nullable(z.string()),
1834
- priority: z.nullable(z.number()),
1835
1985
  isActive: z.boolean(),
1836
1986
  get slotMode() {
1837
1987
  return slotModeSchema;
@@ -1917,7 +2067,7 @@ const fetchEventsResponseSchema = z.array(
1917
2067
  bookingClosesAtOffset: z.nullable(z.number()),
1918
2068
  isActive: z.boolean(),
1919
2069
  isFeatured: z.boolean(),
1920
- priority: z.number(),
2070
+ takesOverDay: z.boolean(),
1921
2071
  createdBy: z.nullable(z.string()),
1922
2072
  updatedBy: z.nullable(z.string()),
1923
2073
  createdAt: z.nullable(z.any()),
@@ -1933,7 +2083,6 @@ const fetchEventsResponseSchema = z.array(
1933
2083
  exdates: z.nullable(z.array(z.string())),
1934
2084
  validFrom: z.nullable(z.string()),
1935
2085
  validTo: z.nullable(z.string()),
1936
- priority: z.nullable(z.number()),
1937
2086
  get slotMode() {
1938
2087
  return slotModeSchema;
1939
2088
  },
@@ -1948,7 +2097,6 @@ const fetchEventsResponseSchema = z.array(
1948
2097
  z.object({
1949
2098
  id: z.string(),
1950
2099
  date: z.string(),
1951
- priority: z.nullable(z.number()),
1952
2100
  isActive: z.boolean(),
1953
2101
  updatedAt: z.nullable(z.any()),
1954
2102
  updatedBy: z.nullable(z.string()),
@@ -2489,7 +2637,13 @@ const fetchRitualResponseSchema = z.object({
2489
2637
  bookingClosesAtOffset: z.nullable(z.int().min(-2147483648).max(2147483647)),
2490
2638
  isActive: z.boolean(),
2491
2639
  isFeatured: z.boolean(),
2492
- priority: z.int().min(-2147483648).max(2147483647),
2640
+ servedMarket: z.nullable(
2641
+ z.union([
2642
+ z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
2643
+ z.array(z.any()),
2644
+ z.object({}).catchall(z.any())
2645
+ ])
2646
+ ),
2493
2647
  createdBy: z.nullable(z.string()),
2494
2648
  updatedBy: z.nullable(z.string()),
2495
2649
  createdAt: z.nullable(z.any()),
@@ -2564,6 +2718,13 @@ const fetchRitualResponseSchema = z.object({
2564
2718
  maxGuests: z.nullable(z.int().min(-2147483648).max(2147483647)),
2565
2719
  minPartySize: z.nullable(z.int().min(-2147483648).max(2147483647)),
2566
2720
  maxPartySize: z.nullable(z.int().min(-2147483648).max(2147483647)),
2721
+ staffByRole: z.nullable(
2722
+ z.union([
2723
+ z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
2724
+ z.array(z.any()),
2725
+ z.object({}).catchall(z.any())
2726
+ ])
2727
+ ),
2567
2728
  isPublic: z.boolean(),
2568
2729
  reservationsEnabled: z.boolean(),
2569
2730
  bookingOpensAtDays: z.nullable(z.int().min(-2147483648).max(2147483647)),
@@ -2572,113 +2733,41 @@ const fetchRitualResponseSchema = z.object({
2572
2733
  ),
2573
2734
  isActive: z.boolean(),
2574
2735
  isFeatured: z.boolean(),
2575
- priority: z.int().min(-2147483648).max(2147483647),
2576
- createdBy: z.nullable(z.string()),
2577
- updatedBy: z.nullable(z.string()),
2578
- createdAt: z.nullable(z.any()),
2579
- updatedAt: z.nullable(z.any()),
2580
- covers: z.number()
2581
- })
2582
- ),
2583
- schedule: z.nullable(
2584
- z.object({
2585
- id: z.string(),
2586
- name: z.union([
2587
- z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
2588
- z.array(z.any()),
2589
- z.object({}).catchall(z.any())
2590
- ]),
2591
- description: z.nullable(
2736
+ takesOverDay: z.boolean(),
2737
+ servedMarket: z.nullable(
2592
2738
  z.union([
2593
2739
  z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
2594
2740
  z.array(z.any()),
2595
2741
  z.object({}).catchall(z.any())
2596
2742
  ])
2597
2743
  ),
2598
- timezone: z.string(),
2599
- rrule: z.nullable(z.string()),
2600
- exdates: z.nullable(z.array(z.string())),
2601
- validFrom: z.nullable(z.string()),
2602
- validTo: z.nullable(z.string()),
2603
- priority: z.nullable(z.int().min(-2147483648).max(2147483647)),
2604
- get slotMode() {
2605
- return slotModeSchema;
2606
- },
2607
- intervalDuration: z.nullable(z.int().min(-2147483648).max(2147483647)),
2608
- duration: z.nullable(z.int().min(-2147483648).max(2147483647)),
2609
- isActive: z.boolean(),
2610
- sortIndex: z.nullable(z.string().max(255)),
2611
- updatedAt: z.nullable(z.any()),
2744
+ createdBy: z.nullable(z.string()),
2612
2745
  updatedBy: z.nullable(z.string()),
2613
2746
  createdAt: z.nullable(z.any()),
2614
- createdBy: z.nullable(z.string()),
2615
- scheduleTimeSlots: z.array(
2616
- z.object({
2617
- scheduleId: z.nullable(z.string()),
2618
- timeSlotId: z.nullable(z.string()),
2619
- get dayOfWeek() {
2620
- return dayOfWeekSchema;
2621
- },
2622
- sortIndex: z.nullable(z.string().max(255)),
2623
- timeSlot: z.nullable(
2624
- z.object({
2625
- id: z.string(),
2626
- startTime: z.string(),
2627
- endTime: z.nullable(z.string()),
2628
- isActive: z.nullable(z.boolean()),
2629
- isSchedulable: z.nullable(z.boolean()),
2630
- sortIndex: z.nullable(z.string().max(255)),
2631
- updatedAt: z.nullable(z.any()),
2632
- updatedBy: z.nullable(z.string()),
2633
- createdAt: z.nullable(z.any()),
2634
- createdBy: z.nullable(z.string())
2635
- })
2636
- )
2637
- })
2638
- ),
2639
- scheduleOverrides: z.array(
2640
- z.object({
2641
- id: z.string(),
2642
- scheduleId: z.string(),
2643
- date: z.string(),
2644
- reason: z.nullable(
2645
- z.union([
2646
- z.union([z.boolean(), z.string(), z.number(), z.enum([])]),
2647
- z.array(z.any()),
2648
- z.object({}).catchall(z.any())
2649
- ])
2650
- ),
2651
- isActive: z.boolean(),
2652
- priority: z.nullable(z.int().min(-2147483648).max(2147483647)),
2653
- updatedAt: z.nullable(z.any()),
2654
- updatedBy: z.nullable(z.string()),
2655
- createdAt: z.nullable(z.any()),
2656
- createdBy: z.nullable(z.string()),
2657
- scheduleOverrideTimeSlots: z.array(
2658
- z.object({
2659
- overrideId: z.string(),
2660
- timeSlotId: z.string(),
2661
- sortIndex: z.nullable(z.string().max(255)),
2662
- timeSlot: z.object({
2663
- id: z.string(),
2664
- startTime: z.string(),
2665
- endTime: z.nullable(z.string()),
2666
- isActive: z.nullable(z.boolean()),
2667
- isSchedulable: z.nullable(z.boolean()),
2668
- sortIndex: z.nullable(z.string().max(255)),
2669
- updatedAt: z.nullable(z.any()),
2670
- updatedBy: z.nullable(z.string()),
2671
- createdAt: z.nullable(z.any()),
2672
- createdBy: z.nullable(z.string())
2673
- })
2674
- })
2675
- )
2676
- })
2677
- )
2747
+ updatedAt: z.nullable(z.any()),
2748
+ covers: z.number()
2678
2749
  })
2679
- )
2750
+ ),
2751
+ get schedule() {
2752
+ return scheduleSchema.nullable();
2753
+ }
2680
2754
  });
2681
2755
 
2756
+ const occupancyReasonSchema = z.enum(["ok", "tables", "personnel"]);
2757
+
2758
+ const fetchSlotAvailabilityResponseSchema = z.array(
2759
+ z.object({
2760
+ startTime: z.string().describe("Slot start time in HH:MM:SS format"),
2761
+ acceptable: z.boolean().describe("Whether a party of this size can be booked at this slot"),
2762
+ offered: z.boolean().describe(
2763
+ "Whether the public widget should offer this slot \u2014 passive: always; auto_steer: only when acceptable"
2764
+ ),
2765
+ get reason() {
2766
+ return occupancyReasonSchema;
2767
+ }
2768
+ })
2769
+ );
2770
+
2682
2771
  const fetchTeamOrderResponseSchema = z.object({
2683
2772
  teamOrder: z.object({
2684
2773
  id: z.string(),
@@ -2813,6 +2902,8 @@ const gbpSyncStatusSchema = z.enum([
2813
2902
  "removed"
2814
2903
  ]);
2815
2904
 
2905
+ const geoAreaTypeSchema = z.enum(["postcode", "city", "region"]);
2906
+
2816
2907
  const getAreaAvailabilityResponseSchema = z.object({
2817
2908
  from: z.string().regex(/^\d{4}-\d{2}-\d{2}$/),
2818
2909
  to: z.string().regex(/^\d{4}-\d{2}-\d{2}$/),
@@ -3185,6 +3276,9 @@ const makeReservationRequestSchema = z.object({
3185
3276
  "Venue identifier \u2014 UUID or URL-friendly slug (accessor). Resolved server-side."
3186
3277
  ),
3187
3278
  eventId: z.uuid().describe("UUID of the event this reservation is for"),
3279
+ areaId: z.uuid().describe(
3280
+ "UUID of the area to seat this party in. Defaults to the event's primary area (the one with the most tables) when omitted; the occupancy gate evaluates capacity against this area."
3281
+ ).nullish(),
3188
3282
  reservationDate: z.string().describe("Date of the reservation in YYYY-MM-DD format"),
3189
3283
  reservationTime: z.string().describe("Time of the reservation in HH:MM:SS format"),
3190
3284
  partySize: z.int().min(1).max(20).describe("Number of guests in the party. Must be between 1 and 20."),
@@ -3238,6 +3332,7 @@ const makeReservationResponseSchema = z.object({
3238
3332
  id: z.uuid().describe("Unique identifier for the reservation"),
3239
3333
  venueId: z.uuid().describe("Restaurant/tenant identifier"),
3240
3334
  eventId: z.uuid().describe("Event identifier for this reservation"),
3335
+ areaId: z.nullable(z.string()),
3241
3336
  quickReferenceNumber: z.nullable(z.int().min(-2147483648).max(2147483647)),
3242
3337
  reservationDate: z.string().describe("Date of the reservation in YYYY-MM-DD format"),
3243
3338
  reservationTime: z.string().describe("Time of the reservation in HH:MM:SS format"),
@@ -3315,7 +3410,7 @@ const mentionFieldFormatterSchema = z.enum([
3315
3410
  "boolean"
3316
3411
  ]);
3317
3412
 
3318
- const mentionKindSchema = z.enum(["link", "value"]);
3413
+ const mentionTypeSchema = z.enum(["link", "value"]);
3319
3414
 
3320
3415
  const patchArticleFeatureImageBodySchema = z.object({
3321
3416
  caption: z.optional(z.object({}).catchall(z.any())),
@@ -3324,6 +3419,8 @@ const patchArticleFeatureImageBodySchema = z.object({
3324
3419
  "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`."
3325
3420
  );
3326
3421
 
3422
+ const paxBandSchema = z.enum(["1-2", "3-4", "5-6", "7+"]);
3423
+
3327
3424
  const pendingSuperadminTransferStatusSchema = z.enum([
3328
3425
  "pending_invite",
3329
3426
  "accepted_awaiting_payment",
@@ -3369,6 +3466,8 @@ const placeOrderResponseSchema = z.object({
3369
3466
  }
3370
3467
  });
3371
3468
 
3469
+ const platformRoleSchema = z.enum(["platform_maintainer"]);
3470
+
3372
3471
  const reduceDeltaPaymentIntentRequestSchema = z.object({
3373
3472
  venueAccessor: z.string().min(1),
3374
3473
  basketId: z.string().min(1),
@@ -3403,12 +3502,24 @@ const removeFromBasketResponseSchema = z.object({
3403
3502
 
3404
3503
  const reservationMessageStatusSchema = z.enum(["draft", "sent"]);
3405
3504
 
3505
+ const reservationModeSchema = z.enum(["passive", "auto_steer"]);
3506
+
3406
3507
  const reservationPromotionStatusSchema = z.enum([
3407
3508
  "applied",
3408
3509
  "redeemed",
3409
3510
  "expired"
3410
3511
  ]);
3411
3512
 
3513
+ const roleSchema = z.enum([
3514
+ "superadmin",
3515
+ "admin",
3516
+ "manager",
3517
+ "chef",
3518
+ "cook",
3519
+ "waiter",
3520
+ "rider"
3521
+ ]);
3522
+
3412
3523
  const saveAdKeywordsRequestSchema = z.object({
3413
3524
  venueAccessor: z.string().min(1),
3414
3525
  adId: z.string().min(1),
@@ -3685,7 +3796,7 @@ const venueAssetTypeSchema = z.enum([
3685
3796
  "combinationmark_vertical"
3686
3797
  ]);
3687
3798
 
3688
- const venueChargeKindSchema = z.enum(["base", "addon"]);
3799
+ const venueChargeTypeSchema = z.enum(["base", "addon"]);
3689
3800
 
3690
3801
  const venueEmailSenderStatusSchema = z.enum([
3691
3802
  "pending",
@@ -3718,6 +3829,7 @@ const schemas = {
3718
3829
  AreaBookingRequestStatus: areaBookingRequestStatusSchema,
3719
3830
  AreaBookingStatus: areaBookingStatusSchema,
3720
3831
  Area: areaSchema,
3832
+ AreaType: areaTypeSchema,
3721
3833
  ArticleEditorSaveState: articleEditorSaveStateSchema,
3722
3834
  ArticleMentionCounts: articleMentionCountsSchema,
3723
3835
  ArticleStatus: articleStatusSchema,
@@ -3788,10 +3900,12 @@ const schemas = {
3788
3900
  FetchMenuResponse: fetchMenuResponseSchema,
3789
3901
  FetchMenuSubscriptionsResponse: fetchMenuSubscriptionsResponseSchema,
3790
3902
  FetchRitualResponse: fetchRitualResponseSchema,
3903
+ FetchSlotAvailabilityResponse: fetchSlotAvailabilityResponseSchema,
3791
3904
  FetchTeamOrderResponse: fetchTeamOrderResponseSchema,
3792
3905
  FulfillmentType: fulfillmentTypeSchema,
3793
3906
  GbpMediaCategory: gbpMediaCategorySchema,
3794
3907
  GbpSyncStatus: gbpSyncStatusSchema,
3908
+ GeoAreaType: geoAreaTypeSchema,
3795
3909
  GetAreaAvailabilityResponse: getAreaAvailabilityResponseSchema,
3796
3910
  GetBasketTotalsRequest: getBasketTotalsRequestSchema,
3797
3911
  GetBasketTotalsResponse: getBasketTotalsResponseSchema,
@@ -3811,28 +3925,34 @@ const schemas = {
3811
3925
  MakeReservationResponse: makeReservationResponseSchema,
3812
3926
  MentionEntityType: mentionEntityTypeSchema,
3813
3927
  MentionFieldFormatter: mentionFieldFormatterSchema,
3814
- MentionKind: mentionKindSchema,
3928
+ MentionType: mentionTypeSchema,
3815
3929
  MenuItemType: menuItemTypeSchema,
3930
+ OccupancyReason: occupancyReasonSchema,
3816
3931
  OgImage: ogImageSchema,
3817
3932
  OrderStatus: orderStatusSchema,
3818
3933
  ParticipantStatus: participantStatusSchema,
3819
3934
  PatchArticleFeatureImageBody: patchArticleFeatureImageBodySchema,
3935
+ PaxBand: paxBandSchema,
3820
3936
  PaymentMethod: paymentMethodSchema,
3821
3937
  PaymentStatus: paymentStatusSchema,
3822
3938
  PendingSuperadminTransferStatus: pendingSuperadminTransferStatusSchema,
3823
3939
  PlaceOrderRequest: placeOrderRequestSchema,
3824
3940
  PlaceOrderResponse: placeOrderResponseSchema,
3941
+ PlatformRole: platformRoleSchema,
3825
3942
  PromotionBenefitType: promotionBenefitTypeSchema,
3826
3943
  ReduceDeltaPaymentIntentRequest: reduceDeltaPaymentIntentRequestSchema,
3827
3944
  ReduceDeltaPaymentIntentResponse: reduceDeltaPaymentIntentResponseSchema,
3828
3945
  RemoveFromBasketResponse: removeFromBasketResponseSchema,
3829
3946
  ReservationMessageStatus: reservationMessageStatusSchema,
3947
+ ReservationMode: reservationModeSchema,
3830
3948
  ReservationPromotionStatus: reservationPromotionStatusSchema,
3831
3949
  ReservationStatus: reservationStatusSchema,
3832
3950
  RitualType: ritualTypeSchema,
3951
+ Role: roleSchema,
3833
3952
  SaveAdKeywordsRequest: saveAdKeywordsRequestSchema,
3834
3953
  SaveAdKeywordsResponse: saveAdKeywordsResponseSchema,
3835
3954
  ScanTokenEntityType: scanTokenEntityTypeSchema,
3955
+ Schedule: scheduleSchema,
3836
3956
  SetArticleFeatureImageUploadBody: setArticleFeatureImageUploadBodySchema,
3837
3957
  SetBasketDeclaredReturnsRequest: setBasketDeclaredReturnsRequestSchema,
3838
3958
  SetBasketDeclaredReturnsResponse: setBasketDeclaredReturnsResponseSchema,
@@ -3864,7 +3984,7 @@ const schemas = {
3864
3984
  UpdateDeliveryAddressTeamOrderResponse: updateDeliveryAddressTeamOrderResponseSchema,
3865
3985
  UploadAssetResponse: uploadAssetResponseSchema,
3866
3986
  VenueAssetType: venueAssetTypeSchema,
3867
- VenueChargeKind: venueChargeKindSchema,
3987
+ VenueChargeType: venueChargeTypeSchema,
3868
3988
  VenueEmailSenderStatus: venueEmailSenderStatusSchema,
3869
3989
  VenueType: venueTypeSchema,
3870
3990
  VenueUserStatus: venueUserStatusSchema