@wix/auto_sdk_table-reservations_experiences 1.0.35 → 1.0.37
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/build/cjs/index.d.ts +39 -27
- package/build/cjs/index.js +3043 -32
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/index.typings.d.ts +2 -3
- package/build/cjs/index.typings.js +3009 -10
- package/build/cjs/index.typings.js.map +1 -1
- package/build/cjs/meta.d.ts +106 -10
- package/build/cjs/meta.js +54 -0
- package/build/cjs/meta.js.map +1 -1
- package/build/cjs/schemas.d.ts +3 -3
- package/build/cjs/schemas.js +2 -2
- package/build/cjs/schemas.js.map +1 -1
- package/build/cjs/{table-reservations-v1-experience-experiences.universal-ZFrZgvqh.d.ts → table-reservations-v1-experience-experiences.universal-CHddGarE.d.ts} +119 -61
- package/build/es/index.d.mts +39 -27
- package/build/es/index.mjs +3031 -32
- package/build/es/index.mjs.map +1 -1
- package/build/es/index.typings.d.mts +2 -3
- package/build/es/index.typings.mjs +2997 -10
- package/build/es/index.typings.mjs.map +1 -1
- package/build/es/meta.d.mts +106 -10
- package/build/es/meta.mjs +52 -0
- package/build/es/meta.mjs.map +1 -1
- package/build/es/schemas.d.mts +3 -3
- package/build/es/schemas.mjs +2 -2
- package/build/es/schemas.mjs.map +1 -1
- package/build/es/{table-reservations-v1-experience-experiences.universal-ZFrZgvqh.d.mts → table-reservations-v1-experience-experiences.universal-CHddGarE.d.mts} +119 -61
- package/build/internal/cjs/index.d.ts +39 -27
- package/build/internal/cjs/index.js +3043 -32
- package/build/internal/cjs/index.js.map +1 -1
- package/build/internal/cjs/index.typings.d.ts +2 -3
- package/build/internal/cjs/index.typings.js +3009 -10
- package/build/internal/cjs/index.typings.js.map +1 -1
- package/build/internal/cjs/meta.d.ts +106 -10
- package/build/internal/cjs/meta.js +54 -0
- package/build/internal/cjs/meta.js.map +1 -1
- package/build/internal/cjs/schemas.d.ts +3 -3
- package/build/internal/cjs/schemas.js +2 -2
- package/build/internal/cjs/schemas.js.map +1 -1
- package/build/internal/cjs/{table-reservations-v1-experience-experiences.universal-ZFrZgvqh.d.ts → table-reservations-v1-experience-experiences.universal-CHddGarE.d.ts} +119 -61
- package/build/internal/es/index.d.mts +39 -27
- package/build/internal/es/index.mjs +3031 -32
- package/build/internal/es/index.mjs.map +1 -1
- package/build/internal/es/index.typings.d.mts +2 -3
- package/build/internal/es/index.typings.mjs +2997 -10
- package/build/internal/es/index.typings.mjs.map +1 -1
- package/build/internal/es/meta.d.mts +106 -10
- package/build/internal/es/meta.mjs +52 -0
- package/build/internal/es/meta.mjs.map +1 -1
- package/build/internal/es/schemas.d.mts +3 -3
- package/build/internal/es/schemas.mjs +2 -2
- package/build/internal/es/schemas.mjs.map +1 -1
- package/build/internal/es/{table-reservations-v1-experience-experiences.universal-ZFrZgvqh.d.mts → table-reservations-v1-experience-experiences.universal-CHddGarE.d.mts} +119 -61
- package/package.json +4 -4
|
@@ -244,6 +244,9 @@ function createExperience(payload) {
|
|
|
244
244
|
},
|
|
245
245
|
{
|
|
246
246
|
path: "experience.configuration.displayInfo.richContent.nodes.tocData.itemSpacing"
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
path: "experience.configuration.displayInfo.richContent.nodes.smartBlockCellData.shape.duration"
|
|
247
250
|
}
|
|
248
251
|
]
|
|
249
252
|
}
|
|
@@ -386,6 +389,9 @@ function createExperience(payload) {
|
|
|
386
389
|
},
|
|
387
390
|
{
|
|
388
391
|
path: "experience.configuration.displayInfo.richContent.nodes.tocData.itemSpacing"
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
path: "experience.configuration.displayInfo.richContent.nodes.smartBlockCellData.shape.duration"
|
|
389
395
|
}
|
|
390
396
|
]
|
|
391
397
|
}
|
|
@@ -535,6 +541,9 @@ function getExperience(payload) {
|
|
|
535
541
|
},
|
|
536
542
|
{
|
|
537
543
|
path: "experience.configuration.displayInfo.richContent.nodes.tocData.itemSpacing"
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
path: "experience.configuration.displayInfo.richContent.nodes.smartBlockCellData.shape.duration"
|
|
538
547
|
}
|
|
539
548
|
]
|
|
540
549
|
}
|
|
@@ -684,6 +693,9 @@ function getExperienceBySlug(payload) {
|
|
|
684
693
|
},
|
|
685
694
|
{
|
|
686
695
|
path: "experience.configuration.displayInfo.richContent.nodes.tocData.itemSpacing"
|
|
696
|
+
},
|
|
697
|
+
{
|
|
698
|
+
path: "experience.configuration.displayInfo.richContent.nodes.smartBlockCellData.shape.duration"
|
|
687
699
|
}
|
|
688
700
|
]
|
|
689
701
|
}
|
|
@@ -823,6 +835,9 @@ function updateExperience(payload) {
|
|
|
823
835
|
},
|
|
824
836
|
{
|
|
825
837
|
path: "experience.configuration.displayInfo.richContent.nodes.tocData.itemSpacing"
|
|
838
|
+
},
|
|
839
|
+
{
|
|
840
|
+
path: "experience.configuration.displayInfo.richContent.nodes.smartBlockCellData.shape.duration"
|
|
826
841
|
}
|
|
827
842
|
]
|
|
828
843
|
}
|
|
@@ -965,6 +980,9 @@ function updateExperience(payload) {
|
|
|
965
980
|
},
|
|
966
981
|
{
|
|
967
982
|
path: "experience.configuration.displayInfo.richContent.nodes.tocData.itemSpacing"
|
|
983
|
+
},
|
|
984
|
+
{
|
|
985
|
+
path: "experience.configuration.displayInfo.richContent.nodes.smartBlockCellData.shape.duration"
|
|
968
986
|
}
|
|
969
987
|
]
|
|
970
988
|
}
|
|
@@ -1114,6 +1132,9 @@ function queryExperiences(payload) {
|
|
|
1114
1132
|
},
|
|
1115
1133
|
{
|
|
1116
1134
|
path: "experiences.configuration.displayInfo.richContent.nodes.tocData.itemSpacing"
|
|
1135
|
+
},
|
|
1136
|
+
{
|
|
1137
|
+
path: "experiences.configuration.displayInfo.richContent.nodes.smartBlockCellData.shape.duration"
|
|
1117
1138
|
}
|
|
1118
1139
|
]
|
|
1119
1140
|
}
|
|
@@ -1290,6 +1311,9 @@ function searchExperiences(payload) {
|
|
|
1290
1311
|
{
|
|
1291
1312
|
path: "experiences.configuration.displayInfo.richContent.nodes.tocData.itemSpacing"
|
|
1292
1313
|
},
|
|
1314
|
+
{
|
|
1315
|
+
path: "experiences.configuration.displayInfo.richContent.nodes.smartBlockCellData.shape.duration"
|
|
1316
|
+
},
|
|
1293
1317
|
{ path: "aggregationData.results.ranges.results.from" },
|
|
1294
1318
|
{ path: "aggregationData.results.ranges.results.to" },
|
|
1295
1319
|
{
|
|
@@ -1421,6 +1445,2911 @@ import { transformRESTImageToSDKImage } from "@wix/sdk-runtime/transformations/i
|
|
|
1421
1445
|
import { transformSDKPageURLV2ToRESTPageURLV2 } from "@wix/sdk-runtime/transformations/page-url-v2";
|
|
1422
1446
|
import { transformRESTPageURLV2ToSDKPageURLV2 } from "@wix/sdk-runtime/transformations/page-url-v2";
|
|
1423
1447
|
import { transformPaths as transformPaths2 } from "@wix/sdk-runtime/transformations/transform-paths";
|
|
1448
|
+
|
|
1449
|
+
// src/table-reservations-v1-experience-experiences.schemas.ts
|
|
1450
|
+
import * as z from "zod";
|
|
1451
|
+
var CreateExperienceRequest = z.object({
|
|
1452
|
+
experience: z.object({
|
|
1453
|
+
_id: z.string().describe("Experience ID.").regex(
|
|
1454
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
1455
|
+
"Must be a valid GUID"
|
|
1456
|
+
).optional().nullable(),
|
|
1457
|
+
reservationLocationId: z.string().describe(
|
|
1458
|
+
"ID of the reservation location this experience is assigned to."
|
|
1459
|
+
).regex(
|
|
1460
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
1461
|
+
"Must be a valid GUID"
|
|
1462
|
+
),
|
|
1463
|
+
revision: z.string().regex(/^-?\d+$/, "Must be a valid Int64 string").describe(
|
|
1464
|
+
"Revision number, which increments by 1 each time the experience is updated.\nTo prevent conflicting changes, the current revision must be passed when updating the experience.\n\nIgnored when creating an experience."
|
|
1465
|
+
).optional().nullable(),
|
|
1466
|
+
_createdDate: z.date().describe("Date and time the experience was created.").optional().nullable(),
|
|
1467
|
+
_updatedDate: z.date().describe("Date and time the experience was last updated.").optional().nullable(),
|
|
1468
|
+
configuration: z.object({
|
|
1469
|
+
displayInfo: z.object({
|
|
1470
|
+
name: z.string().describe("Experience name.").min(1).max(120),
|
|
1471
|
+
shortDescription: z.string().describe("Brief description of the experience.").max(300).optional().nullable(),
|
|
1472
|
+
coverImage: z.string().describe("Cover image for the experience.").optional(),
|
|
1473
|
+
richContent: z.any().describe(
|
|
1474
|
+
"Detailed description of the experience using rich content formatting."
|
|
1475
|
+
).optional()
|
|
1476
|
+
}).describe("Display information for the experience."),
|
|
1477
|
+
paymentPolicy: z.intersection(
|
|
1478
|
+
z.object({ paymentPolicyType: z.enum(["PER_GUEST", "FREE"]) }),
|
|
1479
|
+
z.xor([
|
|
1480
|
+
z.object({ perGuestOptions: z.never().optional() }),
|
|
1481
|
+
z.object({
|
|
1482
|
+
perGuestOptions: z.object({
|
|
1483
|
+
price: z.string().describe(
|
|
1484
|
+
'Monetary amount to charge. Decimal string with a period as a decimal separator. For example, `"3.99"`.'
|
|
1485
|
+
).optional().nullable()
|
|
1486
|
+
}).describe("Per-guest pricing settings.")
|
|
1487
|
+
})
|
|
1488
|
+
])
|
|
1489
|
+
).describe(
|
|
1490
|
+
"Payment policy for the experience. This policy determines how the restaurant charges for reservations."
|
|
1491
|
+
),
|
|
1492
|
+
onlineReservations: z.object({
|
|
1493
|
+
partySize: z.object({
|
|
1494
|
+
min: z.number().int().describe(
|
|
1495
|
+
"Minimum number of guests allowed for a reservation."
|
|
1496
|
+
).min(1).max(1e4),
|
|
1497
|
+
max: z.number().int().describe(
|
|
1498
|
+
"Maximum number of guests allowed for a reservation."
|
|
1499
|
+
).min(1).max(1e4)
|
|
1500
|
+
}).describe("Party size."),
|
|
1501
|
+
minimumReservationNotice: z.object({
|
|
1502
|
+
number: z.number().int().describe(
|
|
1503
|
+
"Number of time units for the notice period. For example, `2` for 2 hours or `30` for 30 days."
|
|
1504
|
+
).min(1).max(1e3),
|
|
1505
|
+
unit: z.enum(["MINUTES", "HOURS", "DAYS"])
|
|
1506
|
+
}).describe("Minimum reservation notice.").optional(),
|
|
1507
|
+
maximumReservationNotice: z.object({
|
|
1508
|
+
number: z.number().int().describe(
|
|
1509
|
+
"Number of time units for the notice period. For example, `2` for 2 hours or `30` for 30 days."
|
|
1510
|
+
).min(1).max(1e3),
|
|
1511
|
+
unit: z.enum(["MINUTES", "HOURS", "DAYS"])
|
|
1512
|
+
}).describe("Maximum reservation notice.").optional(),
|
|
1513
|
+
approval: z.object({ mode: z.enum(["AUTOMATIC", "MANUAL"]) }).describe("Approval."),
|
|
1514
|
+
maxGuests: z.object({
|
|
1515
|
+
number: z.number().int().describe(
|
|
1516
|
+
"Maximum total number of guests that can have active reservations for this experience at the same time."
|
|
1517
|
+
).min(0).max(1e4)
|
|
1518
|
+
}).describe("Maximum number of guests.").optional(),
|
|
1519
|
+
businessSchedule: z.object({
|
|
1520
|
+
durationInMinutes: z.number().int().describe("Duration of the experience in minutes.").min(1).max(1440).optional().nullable(),
|
|
1521
|
+
entries: z.array(
|
|
1522
|
+
z.intersection(
|
|
1523
|
+
z.object({
|
|
1524
|
+
recurrence: z.enum(["WEEKLY", "ONE_TIME"]).optional()
|
|
1525
|
+
}),
|
|
1526
|
+
z.xor([
|
|
1527
|
+
z.object({
|
|
1528
|
+
weeklyOptions: z.never().optional(),
|
|
1529
|
+
oneTimeOptions: z.never().optional()
|
|
1530
|
+
}),
|
|
1531
|
+
z.object({
|
|
1532
|
+
oneTimeOptions: z.never().optional(),
|
|
1533
|
+
weeklyOptions: z.object({
|
|
1534
|
+
startDate: z.string().describe("Start date.").optional().nullable(),
|
|
1535
|
+
endDate: z.string().describe("End date.").optional().nullable(),
|
|
1536
|
+
startDaysAndTimes: z.array(
|
|
1537
|
+
z.object({
|
|
1538
|
+
day: z.enum([
|
|
1539
|
+
"MONDAY",
|
|
1540
|
+
"TUESDAY",
|
|
1541
|
+
"WEDNESDAY",
|
|
1542
|
+
"THURSDAY",
|
|
1543
|
+
"FRIDAY",
|
|
1544
|
+
"SATURDAY",
|
|
1545
|
+
"SUNDAY"
|
|
1546
|
+
]).optional(),
|
|
1547
|
+
time: z.string().describe(
|
|
1548
|
+
'Start time. ISO-8601 extended local time format (hh:mm). For example, `"11:00"`, or `"23:30"`.'
|
|
1549
|
+
).max(5).min(5).optional().nullable()
|
|
1550
|
+
})
|
|
1551
|
+
).max(100).optional()
|
|
1552
|
+
}).describe("Weekly recurrence settings.")
|
|
1553
|
+
}),
|
|
1554
|
+
z.object({
|
|
1555
|
+
weeklyOptions: z.never().optional(),
|
|
1556
|
+
oneTimeOptions: z.object({
|
|
1557
|
+
startDate: z.string().describe("Start date.").optional().nullable(),
|
|
1558
|
+
startTime: z.string().describe(
|
|
1559
|
+
'Start time. ISO-8601 extended local time format (hh:mm). For example, `"11:00"`, or `"23:30"`.'
|
|
1560
|
+
).max(5).min(5).optional().nullable()
|
|
1561
|
+
}).describe("1-time event settings.")
|
|
1562
|
+
})
|
|
1563
|
+
])
|
|
1564
|
+
)
|
|
1565
|
+
).max(10).optional()
|
|
1566
|
+
}).describe("Business schedule.").optional()
|
|
1567
|
+
}).describe(
|
|
1568
|
+
"Settings for this experience that are used to determine restaurant availability for reservations made online."
|
|
1569
|
+
),
|
|
1570
|
+
reservationForm: z.object({
|
|
1571
|
+
submitMessage: z.string().describe(
|
|
1572
|
+
"Message displayed to customers when they submit the reservation form."
|
|
1573
|
+
).max(1e6).optional().nullable(),
|
|
1574
|
+
policiesEnabled: z.boolean().describe(
|
|
1575
|
+
"Whether to display privacy policy and terms and conditions to customers."
|
|
1576
|
+
).optional().nullable(),
|
|
1577
|
+
privacyPolicy: z.intersection(
|
|
1578
|
+
z.object({
|
|
1579
|
+
enabled: z.boolean().describe(
|
|
1580
|
+
"Whether the privacy policy is displayed to customers.\n\nDefault: `false`"
|
|
1581
|
+
).optional().nullable()
|
|
1582
|
+
}),
|
|
1583
|
+
z.xor([
|
|
1584
|
+
z.object({
|
|
1585
|
+
url: z.never().optional(),
|
|
1586
|
+
text: z.never().optional()
|
|
1587
|
+
}),
|
|
1588
|
+
z.object({
|
|
1589
|
+
text: z.never().optional(),
|
|
1590
|
+
url: z.string().describe("Privacy policy URL.")
|
|
1591
|
+
}),
|
|
1592
|
+
z.object({
|
|
1593
|
+
url: z.never().optional(),
|
|
1594
|
+
text: z.string().describe("Privacy policy text.").max(1e6)
|
|
1595
|
+
})
|
|
1596
|
+
])
|
|
1597
|
+
).describe("Privacy policy display settings.").optional(),
|
|
1598
|
+
termsAndConditions: z.intersection(
|
|
1599
|
+
z.object({
|
|
1600
|
+
enabled: z.boolean().describe(
|
|
1601
|
+
"Whether the terms and conditions are displayed to customers.\n\nDefault: `false`"
|
|
1602
|
+
).optional().nullable()
|
|
1603
|
+
}),
|
|
1604
|
+
z.xor([
|
|
1605
|
+
z.object({
|
|
1606
|
+
url: z.never().optional(),
|
|
1607
|
+
text: z.never().optional()
|
|
1608
|
+
}),
|
|
1609
|
+
z.object({
|
|
1610
|
+
text: z.never().optional(),
|
|
1611
|
+
url: z.string().describe("Terms and conditions URL.")
|
|
1612
|
+
}),
|
|
1613
|
+
z.object({
|
|
1614
|
+
url: z.never().optional(),
|
|
1615
|
+
text: z.string().describe("Terms and conditions text.").max(1e6)
|
|
1616
|
+
})
|
|
1617
|
+
])
|
|
1618
|
+
).describe("Terms and conditions display settings.").optional(),
|
|
1619
|
+
customFieldDefinitions: z.array(
|
|
1620
|
+
z.object({
|
|
1621
|
+
_id: z.string().describe("Custom field ID.").regex(
|
|
1622
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
1623
|
+
"Must be a valid GUID"
|
|
1624
|
+
).optional().nullable(),
|
|
1625
|
+
name: z.string().describe("Custom field name.").min(1).max(1e3).optional().nullable(),
|
|
1626
|
+
required: z.boolean().describe(
|
|
1627
|
+
"Whether the custom field is required.\n\nDefault: `false`"
|
|
1628
|
+
).optional().nullable()
|
|
1629
|
+
})
|
|
1630
|
+
).max(1e3).optional(),
|
|
1631
|
+
lastNameRequired: z.boolean().describe(
|
|
1632
|
+
"Whether a last name is required in the reservation form.\n\nDefault: `false`"
|
|
1633
|
+
).optional().nullable(),
|
|
1634
|
+
emailRequired: z.boolean().describe(
|
|
1635
|
+
"Whether an email is required in the reservation form.\n\nDefault: `false`"
|
|
1636
|
+
).optional().nullable(),
|
|
1637
|
+
emailMarketingCheckbox: z.object({
|
|
1638
|
+
enabled: z.boolean().describe(
|
|
1639
|
+
"Whether the email marketing checkbox is displayed to customers.\n\nDefault: `false`"
|
|
1640
|
+
).optional().nullable(),
|
|
1641
|
+
checkedByDefault: z.boolean().describe(
|
|
1642
|
+
"Whether the email marketing checkbox is checked by default.\n\nDefault: `false`"
|
|
1643
|
+
).optional().nullable()
|
|
1644
|
+
}).describe("Email marketing checkbox settings.").optional()
|
|
1645
|
+
}).describe(
|
|
1646
|
+
"Custom form fields and settings for the reservation booking form."
|
|
1647
|
+
).optional(),
|
|
1648
|
+
visible: z.boolean().describe("Whether the experience is visible on the live site.").optional().nullable()
|
|
1649
|
+
}).describe("Experience configuration."),
|
|
1650
|
+
currency: z.string().describe(
|
|
1651
|
+
"3-letter currency code in ISO-4217 alphabetic format. For exampled, `USD`."
|
|
1652
|
+
).optional().nullable(),
|
|
1653
|
+
extendedFields: z.object({
|
|
1654
|
+
namespaces: z.record(z.string(), z.record(z.string(), z.any())).describe(
|
|
1655
|
+
"Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\nThe value of each key is structured according to the schema defined when the extended fields were configured.\n\nYou can only access fields for which you have the appropriate permissions.\n\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields)."
|
|
1656
|
+
).optional()
|
|
1657
|
+
}).describe("Extended fields.").optional(),
|
|
1658
|
+
tags: z.object({
|
|
1659
|
+
privateTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
1660
|
+
"Tags that require an additional permission in order to access them, normally not given to site members or visitors."
|
|
1661
|
+
).optional(),
|
|
1662
|
+
publicTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
1663
|
+
"Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors."
|
|
1664
|
+
).optional()
|
|
1665
|
+
}).describe(
|
|
1666
|
+
"Tags assigned to the experience. Tags must be created using the [Tags API](https://dev.wix.com/docs/api-reference/business-management/tags/introduction) before they can be assigned."
|
|
1667
|
+
).optional(),
|
|
1668
|
+
slug: z.string().describe(
|
|
1669
|
+
'URL-friendly identifier for the experience page, derived from the experience display name in kebab-case format (e.g., "wine-tasting-event"). Used to create readable URLs for the experience page.'
|
|
1670
|
+
).max(300).optional().nullable(),
|
|
1671
|
+
seoSettings: z.object({
|
|
1672
|
+
seoSchema: z.object({
|
|
1673
|
+
tags: z.array(
|
|
1674
|
+
z.object({
|
|
1675
|
+
type: z.string().describe(
|
|
1676
|
+
"SEO tag type.\n\n\nSupported values: `title`, `meta`, `script`, `link`."
|
|
1677
|
+
).optional(),
|
|
1678
|
+
props: z.record(z.string(), z.any()).describe(
|
|
1679
|
+
'A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.\nFor example: `{"name": "description", "content": "the description itself"}`.'
|
|
1680
|
+
).optional().nullable(),
|
|
1681
|
+
meta: z.record(z.string(), z.any()).describe(
|
|
1682
|
+
'SEO tag metadata. For example, `{"height": 300, "width": 240}`.'
|
|
1683
|
+
).optional().nullable(),
|
|
1684
|
+
children: z.string().describe(
|
|
1685
|
+
"SEO tag inner content. For example, `<title> inner content </title>`."
|
|
1686
|
+
).optional(),
|
|
1687
|
+
custom: z.boolean().describe(
|
|
1688
|
+
"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages)."
|
|
1689
|
+
).optional(),
|
|
1690
|
+
disabled: z.boolean().describe(
|
|
1691
|
+
"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines."
|
|
1692
|
+
).optional()
|
|
1693
|
+
})
|
|
1694
|
+
).optional(),
|
|
1695
|
+
settings: z.object({
|
|
1696
|
+
preventAutoRedirect: z.boolean().describe(
|
|
1697
|
+
"Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\n\n\nDefault: `false` (automatical redirect is enabled)."
|
|
1698
|
+
).optional(),
|
|
1699
|
+
keywords: z.array(
|
|
1700
|
+
z.object({
|
|
1701
|
+
term: z.string().describe("Keyword value.").optional(),
|
|
1702
|
+
isMain: z.boolean().describe(
|
|
1703
|
+
"Whether the keyword is the main focus keyword."
|
|
1704
|
+
).optional(),
|
|
1705
|
+
origin: z.string().describe(
|
|
1706
|
+
"The source that added the keyword terms to the SEO settings."
|
|
1707
|
+
).max(1e3).optional().nullable()
|
|
1708
|
+
})
|
|
1709
|
+
).max(5).optional()
|
|
1710
|
+
}).describe("SEO general settings.").optional()
|
|
1711
|
+
}).describe(
|
|
1712
|
+
"SEO schema data for customizing meta tags and search engine settings."
|
|
1713
|
+
).optional()
|
|
1714
|
+
}).describe("SEO settings for the experience page.").optional()
|
|
1715
|
+
}).describe("Experience to create.")
|
|
1716
|
+
});
|
|
1717
|
+
var CreateExperienceResponse = z.object({
|
|
1718
|
+
_id: z.string().describe("Experience ID.").regex(
|
|
1719
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
1720
|
+
"Must be a valid GUID"
|
|
1721
|
+
).optional().nullable(),
|
|
1722
|
+
reservationLocationId: z.string().describe("ID of the reservation location this experience is assigned to.").regex(
|
|
1723
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
1724
|
+
"Must be a valid GUID"
|
|
1725
|
+
).optional().nullable(),
|
|
1726
|
+
revision: z.string().regex(/^-?\d+$/, "Must be a valid Int64 string").describe(
|
|
1727
|
+
"Revision number, which increments by 1 each time the experience is updated.\nTo prevent conflicting changes, the current revision must be passed when updating the experience.\n\nIgnored when creating an experience."
|
|
1728
|
+
).optional().nullable(),
|
|
1729
|
+
_createdDate: z.date().describe("Date and time the experience was created.").optional().nullable(),
|
|
1730
|
+
_updatedDate: z.date().describe("Date and time the experience was last updated.").optional().nullable(),
|
|
1731
|
+
configuration: z.object({
|
|
1732
|
+
displayInfo: z.object({
|
|
1733
|
+
name: z.string().describe("Experience name.").min(1).max(120).optional().nullable(),
|
|
1734
|
+
shortDescription: z.string().describe("Brief description of the experience.").max(300).optional().nullable(),
|
|
1735
|
+
coverImage: z.string().describe("Cover image for the experience.").optional(),
|
|
1736
|
+
richContent: z.any().describe(
|
|
1737
|
+
"Detailed description of the experience using rich content formatting."
|
|
1738
|
+
).optional()
|
|
1739
|
+
}).describe("Display information for the experience.").optional(),
|
|
1740
|
+
paymentPolicy: z.intersection(
|
|
1741
|
+
z.object({
|
|
1742
|
+
paymentPolicyType: z.enum(["PER_GUEST", "FREE"]).describe("Payment policy type for the experience.").optional()
|
|
1743
|
+
}),
|
|
1744
|
+
z.xor([
|
|
1745
|
+
z.object({ perGuestOptions: z.never().optional() }),
|
|
1746
|
+
z.object({
|
|
1747
|
+
perGuestOptions: z.object({
|
|
1748
|
+
price: z.string().describe(
|
|
1749
|
+
'Monetary amount to charge. Decimal string with a period as a decimal separator. For example, `"3.99"`.'
|
|
1750
|
+
).optional().nullable()
|
|
1751
|
+
}).describe("Per-guest pricing settings.")
|
|
1752
|
+
})
|
|
1753
|
+
])
|
|
1754
|
+
).describe(
|
|
1755
|
+
"Payment policy for the experience. This policy determines how the restaurant charges for reservations."
|
|
1756
|
+
).optional(),
|
|
1757
|
+
onlineReservations: z.object({
|
|
1758
|
+
partySize: z.object({
|
|
1759
|
+
min: z.number().int().describe("Minimum number of guests allowed for a reservation.").min(1).max(1e4).optional().nullable(),
|
|
1760
|
+
max: z.number().int().describe("Maximum number of guests allowed for a reservation.").min(1).max(1e4).optional().nullable()
|
|
1761
|
+
}).describe("Party size.").optional(),
|
|
1762
|
+
minimumReservationNotice: z.object({
|
|
1763
|
+
number: z.number().int().describe(
|
|
1764
|
+
"Number of time units for the notice period. For example, `2` for 2 hours or `30` for 30 days."
|
|
1765
|
+
).min(1).max(1e3).optional().nullable(),
|
|
1766
|
+
unit: z.enum(["MINUTES", "HOURS", "DAYS"]).describe("Time unit for the notice period.").optional()
|
|
1767
|
+
}).describe("Minimum reservation notice.").optional(),
|
|
1768
|
+
maximumReservationNotice: z.object({
|
|
1769
|
+
number: z.number().int().describe(
|
|
1770
|
+
"Number of time units for the notice period. For example, `2` for 2 hours or `30` for 30 days."
|
|
1771
|
+
).min(1).max(1e3).optional().nullable(),
|
|
1772
|
+
unit: z.enum(["MINUTES", "HOURS", "DAYS"]).describe("Time unit for the notice period.").optional()
|
|
1773
|
+
}).describe("Maximum reservation notice.").optional(),
|
|
1774
|
+
approval: z.object({
|
|
1775
|
+
mode: z.enum(["AUTOMATIC", "MANUAL"]).describe("Approval mode.").optional()
|
|
1776
|
+
}).describe("Approval.").optional(),
|
|
1777
|
+
maxGuests: z.object({
|
|
1778
|
+
number: z.number().int().describe(
|
|
1779
|
+
"Maximum total number of guests that can have active reservations for this experience at the same time."
|
|
1780
|
+
).min(0).max(1e4).optional().nullable()
|
|
1781
|
+
}).describe("Maximum number of guests.").optional(),
|
|
1782
|
+
businessSchedule: z.object({
|
|
1783
|
+
durationInMinutes: z.number().int().describe("Duration of the experience in minutes.").min(1).max(1440).optional().nullable(),
|
|
1784
|
+
entries: z.array(
|
|
1785
|
+
z.intersection(
|
|
1786
|
+
z.object({
|
|
1787
|
+
recurrence: z.enum(["WEEKLY", "ONE_TIME"]).describe("Recurrence settings for this entry.").optional()
|
|
1788
|
+
}),
|
|
1789
|
+
z.xor([
|
|
1790
|
+
z.object({
|
|
1791
|
+
weeklyOptions: z.never().optional(),
|
|
1792
|
+
oneTimeOptions: z.never().optional()
|
|
1793
|
+
}),
|
|
1794
|
+
z.object({
|
|
1795
|
+
oneTimeOptions: z.never().optional(),
|
|
1796
|
+
weeklyOptions: z.object({
|
|
1797
|
+
startDate: z.string().describe("Start date.").optional().nullable(),
|
|
1798
|
+
endDate: z.string().describe("End date.").optional().nullable(),
|
|
1799
|
+
startDaysAndTimes: z.array(
|
|
1800
|
+
z.object({
|
|
1801
|
+
day: z.enum([
|
|
1802
|
+
"MONDAY",
|
|
1803
|
+
"TUESDAY",
|
|
1804
|
+
"WEDNESDAY",
|
|
1805
|
+
"THURSDAY",
|
|
1806
|
+
"FRIDAY",
|
|
1807
|
+
"SATURDAY",
|
|
1808
|
+
"SUNDAY"
|
|
1809
|
+
]).describe("Day of week.").optional(),
|
|
1810
|
+
time: z.string().describe(
|
|
1811
|
+
'Start time. ISO-8601 extended local time format (hh:mm). For example, `"11:00"`, or `"23:30"`.'
|
|
1812
|
+
).max(5).min(5).optional().nullable()
|
|
1813
|
+
})
|
|
1814
|
+
).max(100).optional()
|
|
1815
|
+
}).describe("Weekly recurrence settings.")
|
|
1816
|
+
}),
|
|
1817
|
+
z.object({
|
|
1818
|
+
weeklyOptions: z.never().optional(),
|
|
1819
|
+
oneTimeOptions: z.object({
|
|
1820
|
+
startDate: z.string().describe("Start date.").optional().nullable(),
|
|
1821
|
+
startTime: z.string().describe(
|
|
1822
|
+
'Start time. ISO-8601 extended local time format (hh:mm). For example, `"11:00"`, or `"23:30"`.'
|
|
1823
|
+
).max(5).min(5).optional().nullable()
|
|
1824
|
+
}).describe("1-time event settings.")
|
|
1825
|
+
})
|
|
1826
|
+
])
|
|
1827
|
+
)
|
|
1828
|
+
).max(10).optional()
|
|
1829
|
+
}).describe("Business schedule.").optional()
|
|
1830
|
+
}).describe(
|
|
1831
|
+
"Settings for this experience that are used to determine restaurant availability for reservations made online."
|
|
1832
|
+
).optional(),
|
|
1833
|
+
reservationForm: z.object({
|
|
1834
|
+
submitMessage: z.string().describe(
|
|
1835
|
+
"Message displayed to customers when they submit the reservation form."
|
|
1836
|
+
).max(1e6).optional().nullable(),
|
|
1837
|
+
policiesEnabled: z.boolean().describe(
|
|
1838
|
+
"Whether to display privacy policy and terms and conditions to customers."
|
|
1839
|
+
).optional().nullable(),
|
|
1840
|
+
privacyPolicy: z.intersection(
|
|
1841
|
+
z.object({
|
|
1842
|
+
enabled: z.boolean().describe(
|
|
1843
|
+
"Whether the privacy policy is displayed to customers.\n\nDefault: `false`"
|
|
1844
|
+
).optional().nullable()
|
|
1845
|
+
}),
|
|
1846
|
+
z.xor([
|
|
1847
|
+
z.object({
|
|
1848
|
+
url: z.never().optional(),
|
|
1849
|
+
text: z.never().optional()
|
|
1850
|
+
}),
|
|
1851
|
+
z.object({
|
|
1852
|
+
text: z.never().optional(),
|
|
1853
|
+
url: z.string().describe("Privacy policy URL.")
|
|
1854
|
+
}),
|
|
1855
|
+
z.object({
|
|
1856
|
+
url: z.never().optional(),
|
|
1857
|
+
text: z.string().describe("Privacy policy text.").max(1e6)
|
|
1858
|
+
})
|
|
1859
|
+
])
|
|
1860
|
+
).describe("Privacy policy display settings.").optional(),
|
|
1861
|
+
termsAndConditions: z.intersection(
|
|
1862
|
+
z.object({
|
|
1863
|
+
enabled: z.boolean().describe(
|
|
1864
|
+
"Whether the terms and conditions are displayed to customers.\n\nDefault: `false`"
|
|
1865
|
+
).optional().nullable()
|
|
1866
|
+
}),
|
|
1867
|
+
z.xor([
|
|
1868
|
+
z.object({
|
|
1869
|
+
url: z.never().optional(),
|
|
1870
|
+
text: z.never().optional()
|
|
1871
|
+
}),
|
|
1872
|
+
z.object({
|
|
1873
|
+
text: z.never().optional(),
|
|
1874
|
+
url: z.string().describe("Terms and conditions URL.")
|
|
1875
|
+
}),
|
|
1876
|
+
z.object({
|
|
1877
|
+
url: z.never().optional(),
|
|
1878
|
+
text: z.string().describe("Terms and conditions text.").max(1e6)
|
|
1879
|
+
})
|
|
1880
|
+
])
|
|
1881
|
+
).describe("Terms and conditions display settings.").optional(),
|
|
1882
|
+
customFieldDefinitions: z.array(
|
|
1883
|
+
z.object({
|
|
1884
|
+
_id: z.string().describe("Custom field ID.").regex(
|
|
1885
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
1886
|
+
"Must be a valid GUID"
|
|
1887
|
+
).optional().nullable(),
|
|
1888
|
+
name: z.string().describe("Custom field name.").min(1).max(1e3).optional().nullable(),
|
|
1889
|
+
required: z.boolean().describe(
|
|
1890
|
+
"Whether the custom field is required.\n\nDefault: `false`"
|
|
1891
|
+
).optional().nullable()
|
|
1892
|
+
})
|
|
1893
|
+
).max(1e3).optional(),
|
|
1894
|
+
lastNameRequired: z.boolean().describe(
|
|
1895
|
+
"Whether a last name is required in the reservation form.\n\nDefault: `false`"
|
|
1896
|
+
).optional().nullable(),
|
|
1897
|
+
emailRequired: z.boolean().describe(
|
|
1898
|
+
"Whether an email is required in the reservation form.\n\nDefault: `false`"
|
|
1899
|
+
).optional().nullable(),
|
|
1900
|
+
emailMarketingCheckbox: z.object({
|
|
1901
|
+
enabled: z.boolean().describe(
|
|
1902
|
+
"Whether the email marketing checkbox is displayed to customers.\n\nDefault: `false`"
|
|
1903
|
+
).optional().nullable(),
|
|
1904
|
+
checkedByDefault: z.boolean().describe(
|
|
1905
|
+
"Whether the email marketing checkbox is checked by default.\n\nDefault: `false`"
|
|
1906
|
+
).optional().nullable()
|
|
1907
|
+
}).describe("Email marketing checkbox settings.").optional()
|
|
1908
|
+
}).describe(
|
|
1909
|
+
"Custom form fields and settings for the reservation booking form."
|
|
1910
|
+
).optional(),
|
|
1911
|
+
visible: z.boolean().describe("Whether the experience is visible on the live site.").optional().nullable()
|
|
1912
|
+
}).describe("Experience configuration.").optional(),
|
|
1913
|
+
currency: z.string().describe(
|
|
1914
|
+
"3-letter currency code in ISO-4217 alphabetic format. For exampled, `USD`."
|
|
1915
|
+
).optional().nullable(),
|
|
1916
|
+
extendedFields: z.object({
|
|
1917
|
+
namespaces: z.record(z.string(), z.record(z.string(), z.any())).describe(
|
|
1918
|
+
"Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\nThe value of each key is structured according to the schema defined when the extended fields were configured.\n\nYou can only access fields for which you have the appropriate permissions.\n\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields)."
|
|
1919
|
+
).optional()
|
|
1920
|
+
}).describe("Extended fields.").optional(),
|
|
1921
|
+
tags: z.object({
|
|
1922
|
+
privateTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
1923
|
+
"Tags that require an additional permission in order to access them, normally not given to site members or visitors."
|
|
1924
|
+
).optional(),
|
|
1925
|
+
publicTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
1926
|
+
"Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors."
|
|
1927
|
+
).optional()
|
|
1928
|
+
}).describe(
|
|
1929
|
+
"Tags assigned to the experience. Tags must be created using the [Tags API](https://dev.wix.com/docs/api-reference/business-management/tags/introduction) before they can be assigned."
|
|
1930
|
+
).optional(),
|
|
1931
|
+
slug: z.string().describe(
|
|
1932
|
+
'URL-friendly identifier for the experience page, derived from the experience display name in kebab-case format (e.g., "wine-tasting-event"). Used to create readable URLs for the experience page.'
|
|
1933
|
+
).max(300).optional().nullable(),
|
|
1934
|
+
seoSettings: z.object({
|
|
1935
|
+
seoSchema: z.object({
|
|
1936
|
+
tags: z.array(
|
|
1937
|
+
z.object({
|
|
1938
|
+
type: z.string().describe(
|
|
1939
|
+
"SEO tag type.\n\n\nSupported values: `title`, `meta`, `script`, `link`."
|
|
1940
|
+
).optional(),
|
|
1941
|
+
props: z.record(z.string(), z.any()).describe(
|
|
1942
|
+
'A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.\nFor example: `{"name": "description", "content": "the description itself"}`.'
|
|
1943
|
+
).optional().nullable(),
|
|
1944
|
+
meta: z.record(z.string(), z.any()).describe(
|
|
1945
|
+
'SEO tag metadata. For example, `{"height": 300, "width": 240}`.'
|
|
1946
|
+
).optional().nullable(),
|
|
1947
|
+
children: z.string().describe(
|
|
1948
|
+
"SEO tag inner content. For example, `<title> inner content </title>`."
|
|
1949
|
+
).optional(),
|
|
1950
|
+
custom: z.boolean().describe(
|
|
1951
|
+
"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages)."
|
|
1952
|
+
).optional(),
|
|
1953
|
+
disabled: z.boolean().describe(
|
|
1954
|
+
"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines."
|
|
1955
|
+
).optional()
|
|
1956
|
+
})
|
|
1957
|
+
).optional(),
|
|
1958
|
+
settings: z.object({
|
|
1959
|
+
preventAutoRedirect: z.boolean().describe(
|
|
1960
|
+
"Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\n\n\nDefault: `false` (automatical redirect is enabled)."
|
|
1961
|
+
).optional(),
|
|
1962
|
+
keywords: z.array(
|
|
1963
|
+
z.object({
|
|
1964
|
+
term: z.string().describe("Keyword value.").optional(),
|
|
1965
|
+
isMain: z.boolean().describe(
|
|
1966
|
+
"Whether the keyword is the main focus keyword."
|
|
1967
|
+
).optional(),
|
|
1968
|
+
origin: z.string().describe(
|
|
1969
|
+
"The source that added the keyword terms to the SEO settings."
|
|
1970
|
+
).max(1e3).optional().nullable()
|
|
1971
|
+
})
|
|
1972
|
+
).max(5).optional()
|
|
1973
|
+
}).describe("SEO general settings.").optional()
|
|
1974
|
+
}).describe(
|
|
1975
|
+
"SEO schema data for customizing meta tags and search engine settings."
|
|
1976
|
+
).optional()
|
|
1977
|
+
}).describe("SEO settings for the experience page.").optional()
|
|
1978
|
+
});
|
|
1979
|
+
var GetExperienceRequest = z.object({
|
|
1980
|
+
experienceId: z.string().describe("ID of the experience to retrieve.").regex(
|
|
1981
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
1982
|
+
"Must be a valid GUID"
|
|
1983
|
+
)
|
|
1984
|
+
});
|
|
1985
|
+
var GetExperienceResponse = z.object({
|
|
1986
|
+
_id: z.string().describe("Experience ID.").regex(
|
|
1987
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
1988
|
+
"Must be a valid GUID"
|
|
1989
|
+
).optional().nullable(),
|
|
1990
|
+
reservationLocationId: z.string().describe("ID of the reservation location this experience is assigned to.").regex(
|
|
1991
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
1992
|
+
"Must be a valid GUID"
|
|
1993
|
+
).optional().nullable(),
|
|
1994
|
+
revision: z.string().regex(/^-?\d+$/, "Must be a valid Int64 string").describe(
|
|
1995
|
+
"Revision number, which increments by 1 each time the experience is updated.\nTo prevent conflicting changes, the current revision must be passed when updating the experience.\n\nIgnored when creating an experience."
|
|
1996
|
+
).optional().nullable(),
|
|
1997
|
+
_createdDate: z.date().describe("Date and time the experience was created.").optional().nullable(),
|
|
1998
|
+
_updatedDate: z.date().describe("Date and time the experience was last updated.").optional().nullable(),
|
|
1999
|
+
configuration: z.object({
|
|
2000
|
+
displayInfo: z.object({
|
|
2001
|
+
name: z.string().describe("Experience name.").min(1).max(120).optional().nullable(),
|
|
2002
|
+
shortDescription: z.string().describe("Brief description of the experience.").max(300).optional().nullable(),
|
|
2003
|
+
coverImage: z.string().describe("Cover image for the experience.").optional(),
|
|
2004
|
+
richContent: z.any().describe(
|
|
2005
|
+
"Detailed description of the experience using rich content formatting."
|
|
2006
|
+
).optional()
|
|
2007
|
+
}).describe("Display information for the experience.").optional(),
|
|
2008
|
+
paymentPolicy: z.intersection(
|
|
2009
|
+
z.object({
|
|
2010
|
+
paymentPolicyType: z.enum(["PER_GUEST", "FREE"]).describe("Payment policy type for the experience.").optional()
|
|
2011
|
+
}),
|
|
2012
|
+
z.xor([
|
|
2013
|
+
z.object({ perGuestOptions: z.never().optional() }),
|
|
2014
|
+
z.object({
|
|
2015
|
+
perGuestOptions: z.object({
|
|
2016
|
+
price: z.string().describe(
|
|
2017
|
+
'Monetary amount to charge. Decimal string with a period as a decimal separator. For example, `"3.99"`.'
|
|
2018
|
+
).optional().nullable()
|
|
2019
|
+
}).describe("Per-guest pricing settings.")
|
|
2020
|
+
})
|
|
2021
|
+
])
|
|
2022
|
+
).describe(
|
|
2023
|
+
"Payment policy for the experience. This policy determines how the restaurant charges for reservations."
|
|
2024
|
+
).optional(),
|
|
2025
|
+
onlineReservations: z.object({
|
|
2026
|
+
partySize: z.object({
|
|
2027
|
+
min: z.number().int().describe("Minimum number of guests allowed for a reservation.").min(1).max(1e4).optional().nullable(),
|
|
2028
|
+
max: z.number().int().describe("Maximum number of guests allowed for a reservation.").min(1).max(1e4).optional().nullable()
|
|
2029
|
+
}).describe("Party size.").optional(),
|
|
2030
|
+
minimumReservationNotice: z.object({
|
|
2031
|
+
number: z.number().int().describe(
|
|
2032
|
+
"Number of time units for the notice period. For example, `2` for 2 hours or `30` for 30 days."
|
|
2033
|
+
).min(1).max(1e3).optional().nullable(),
|
|
2034
|
+
unit: z.enum(["MINUTES", "HOURS", "DAYS"]).describe("Time unit for the notice period.").optional()
|
|
2035
|
+
}).describe("Minimum reservation notice.").optional(),
|
|
2036
|
+
maximumReservationNotice: z.object({
|
|
2037
|
+
number: z.number().int().describe(
|
|
2038
|
+
"Number of time units for the notice period. For example, `2` for 2 hours or `30` for 30 days."
|
|
2039
|
+
).min(1).max(1e3).optional().nullable(),
|
|
2040
|
+
unit: z.enum(["MINUTES", "HOURS", "DAYS"]).describe("Time unit for the notice period.").optional()
|
|
2041
|
+
}).describe("Maximum reservation notice.").optional(),
|
|
2042
|
+
approval: z.object({
|
|
2043
|
+
mode: z.enum(["AUTOMATIC", "MANUAL"]).describe("Approval mode.").optional()
|
|
2044
|
+
}).describe("Approval.").optional(),
|
|
2045
|
+
maxGuests: z.object({
|
|
2046
|
+
number: z.number().int().describe(
|
|
2047
|
+
"Maximum total number of guests that can have active reservations for this experience at the same time."
|
|
2048
|
+
).min(0).max(1e4).optional().nullable()
|
|
2049
|
+
}).describe("Maximum number of guests.").optional(),
|
|
2050
|
+
businessSchedule: z.object({
|
|
2051
|
+
durationInMinutes: z.number().int().describe("Duration of the experience in minutes.").min(1).max(1440).optional().nullable(),
|
|
2052
|
+
entries: z.array(
|
|
2053
|
+
z.intersection(
|
|
2054
|
+
z.object({
|
|
2055
|
+
recurrence: z.enum(["WEEKLY", "ONE_TIME"]).describe("Recurrence settings for this entry.").optional()
|
|
2056
|
+
}),
|
|
2057
|
+
z.xor([
|
|
2058
|
+
z.object({
|
|
2059
|
+
weeklyOptions: z.never().optional(),
|
|
2060
|
+
oneTimeOptions: z.never().optional()
|
|
2061
|
+
}),
|
|
2062
|
+
z.object({
|
|
2063
|
+
oneTimeOptions: z.never().optional(),
|
|
2064
|
+
weeklyOptions: z.object({
|
|
2065
|
+
startDate: z.string().describe("Start date.").optional().nullable(),
|
|
2066
|
+
endDate: z.string().describe("End date.").optional().nullable(),
|
|
2067
|
+
startDaysAndTimes: z.array(
|
|
2068
|
+
z.object({
|
|
2069
|
+
day: z.enum([
|
|
2070
|
+
"MONDAY",
|
|
2071
|
+
"TUESDAY",
|
|
2072
|
+
"WEDNESDAY",
|
|
2073
|
+
"THURSDAY",
|
|
2074
|
+
"FRIDAY",
|
|
2075
|
+
"SATURDAY",
|
|
2076
|
+
"SUNDAY"
|
|
2077
|
+
]).describe("Day of week.").optional(),
|
|
2078
|
+
time: z.string().describe(
|
|
2079
|
+
'Start time. ISO-8601 extended local time format (hh:mm). For example, `"11:00"`, or `"23:30"`.'
|
|
2080
|
+
).max(5).min(5).optional().nullable()
|
|
2081
|
+
})
|
|
2082
|
+
).max(100).optional()
|
|
2083
|
+
}).describe("Weekly recurrence settings.")
|
|
2084
|
+
}),
|
|
2085
|
+
z.object({
|
|
2086
|
+
weeklyOptions: z.never().optional(),
|
|
2087
|
+
oneTimeOptions: z.object({
|
|
2088
|
+
startDate: z.string().describe("Start date.").optional().nullable(),
|
|
2089
|
+
startTime: z.string().describe(
|
|
2090
|
+
'Start time. ISO-8601 extended local time format (hh:mm). For example, `"11:00"`, or `"23:30"`.'
|
|
2091
|
+
).max(5).min(5).optional().nullable()
|
|
2092
|
+
}).describe("1-time event settings.")
|
|
2093
|
+
})
|
|
2094
|
+
])
|
|
2095
|
+
)
|
|
2096
|
+
).max(10).optional()
|
|
2097
|
+
}).describe("Business schedule.").optional()
|
|
2098
|
+
}).describe(
|
|
2099
|
+
"Settings for this experience that are used to determine restaurant availability for reservations made online."
|
|
2100
|
+
).optional(),
|
|
2101
|
+
reservationForm: z.object({
|
|
2102
|
+
submitMessage: z.string().describe(
|
|
2103
|
+
"Message displayed to customers when they submit the reservation form."
|
|
2104
|
+
).max(1e6).optional().nullable(),
|
|
2105
|
+
policiesEnabled: z.boolean().describe(
|
|
2106
|
+
"Whether to display privacy policy and terms and conditions to customers."
|
|
2107
|
+
).optional().nullable(),
|
|
2108
|
+
privacyPolicy: z.intersection(
|
|
2109
|
+
z.object({
|
|
2110
|
+
enabled: z.boolean().describe(
|
|
2111
|
+
"Whether the privacy policy is displayed to customers.\n\nDefault: `false`"
|
|
2112
|
+
).optional().nullable()
|
|
2113
|
+
}),
|
|
2114
|
+
z.xor([
|
|
2115
|
+
z.object({
|
|
2116
|
+
url: z.never().optional(),
|
|
2117
|
+
text: z.never().optional()
|
|
2118
|
+
}),
|
|
2119
|
+
z.object({
|
|
2120
|
+
text: z.never().optional(),
|
|
2121
|
+
url: z.string().describe("Privacy policy URL.")
|
|
2122
|
+
}),
|
|
2123
|
+
z.object({
|
|
2124
|
+
url: z.never().optional(),
|
|
2125
|
+
text: z.string().describe("Privacy policy text.").max(1e6)
|
|
2126
|
+
})
|
|
2127
|
+
])
|
|
2128
|
+
).describe("Privacy policy display settings.").optional(),
|
|
2129
|
+
termsAndConditions: z.intersection(
|
|
2130
|
+
z.object({
|
|
2131
|
+
enabled: z.boolean().describe(
|
|
2132
|
+
"Whether the terms and conditions are displayed to customers.\n\nDefault: `false`"
|
|
2133
|
+
).optional().nullable()
|
|
2134
|
+
}),
|
|
2135
|
+
z.xor([
|
|
2136
|
+
z.object({
|
|
2137
|
+
url: z.never().optional(),
|
|
2138
|
+
text: z.never().optional()
|
|
2139
|
+
}),
|
|
2140
|
+
z.object({
|
|
2141
|
+
text: z.never().optional(),
|
|
2142
|
+
url: z.string().describe("Terms and conditions URL.")
|
|
2143
|
+
}),
|
|
2144
|
+
z.object({
|
|
2145
|
+
url: z.never().optional(),
|
|
2146
|
+
text: z.string().describe("Terms and conditions text.").max(1e6)
|
|
2147
|
+
})
|
|
2148
|
+
])
|
|
2149
|
+
).describe("Terms and conditions display settings.").optional(),
|
|
2150
|
+
customFieldDefinitions: z.array(
|
|
2151
|
+
z.object({
|
|
2152
|
+
_id: z.string().describe("Custom field ID.").regex(
|
|
2153
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
2154
|
+
"Must be a valid GUID"
|
|
2155
|
+
).optional().nullable(),
|
|
2156
|
+
name: z.string().describe("Custom field name.").min(1).max(1e3).optional().nullable(),
|
|
2157
|
+
required: z.boolean().describe(
|
|
2158
|
+
"Whether the custom field is required.\n\nDefault: `false`"
|
|
2159
|
+
).optional().nullable()
|
|
2160
|
+
})
|
|
2161
|
+
).max(1e3).optional(),
|
|
2162
|
+
lastNameRequired: z.boolean().describe(
|
|
2163
|
+
"Whether a last name is required in the reservation form.\n\nDefault: `false`"
|
|
2164
|
+
).optional().nullable(),
|
|
2165
|
+
emailRequired: z.boolean().describe(
|
|
2166
|
+
"Whether an email is required in the reservation form.\n\nDefault: `false`"
|
|
2167
|
+
).optional().nullable(),
|
|
2168
|
+
emailMarketingCheckbox: z.object({
|
|
2169
|
+
enabled: z.boolean().describe(
|
|
2170
|
+
"Whether the email marketing checkbox is displayed to customers.\n\nDefault: `false`"
|
|
2171
|
+
).optional().nullable(),
|
|
2172
|
+
checkedByDefault: z.boolean().describe(
|
|
2173
|
+
"Whether the email marketing checkbox is checked by default.\n\nDefault: `false`"
|
|
2174
|
+
).optional().nullable()
|
|
2175
|
+
}).describe("Email marketing checkbox settings.").optional()
|
|
2176
|
+
}).describe(
|
|
2177
|
+
"Custom form fields and settings for the reservation booking form."
|
|
2178
|
+
).optional(),
|
|
2179
|
+
visible: z.boolean().describe("Whether the experience is visible on the live site.").optional().nullable()
|
|
2180
|
+
}).describe("Experience configuration.").optional(),
|
|
2181
|
+
currency: z.string().describe(
|
|
2182
|
+
"3-letter currency code in ISO-4217 alphabetic format. For exampled, `USD`."
|
|
2183
|
+
).optional().nullable(),
|
|
2184
|
+
extendedFields: z.object({
|
|
2185
|
+
namespaces: z.record(z.string(), z.record(z.string(), z.any())).describe(
|
|
2186
|
+
"Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\nThe value of each key is structured according to the schema defined when the extended fields were configured.\n\nYou can only access fields for which you have the appropriate permissions.\n\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields)."
|
|
2187
|
+
).optional()
|
|
2188
|
+
}).describe("Extended fields.").optional(),
|
|
2189
|
+
tags: z.object({
|
|
2190
|
+
privateTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
2191
|
+
"Tags that require an additional permission in order to access them, normally not given to site members or visitors."
|
|
2192
|
+
).optional(),
|
|
2193
|
+
publicTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
2194
|
+
"Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors."
|
|
2195
|
+
).optional()
|
|
2196
|
+
}).describe(
|
|
2197
|
+
"Tags assigned to the experience. Tags must be created using the [Tags API](https://dev.wix.com/docs/api-reference/business-management/tags/introduction) before they can be assigned."
|
|
2198
|
+
).optional(),
|
|
2199
|
+
slug: z.string().describe(
|
|
2200
|
+
'URL-friendly identifier for the experience page, derived from the experience display name in kebab-case format (e.g., "wine-tasting-event"). Used to create readable URLs for the experience page.'
|
|
2201
|
+
).max(300).optional().nullable(),
|
|
2202
|
+
seoSettings: z.object({
|
|
2203
|
+
seoSchema: z.object({
|
|
2204
|
+
tags: z.array(
|
|
2205
|
+
z.object({
|
|
2206
|
+
type: z.string().describe(
|
|
2207
|
+
"SEO tag type.\n\n\nSupported values: `title`, `meta`, `script`, `link`."
|
|
2208
|
+
).optional(),
|
|
2209
|
+
props: z.record(z.string(), z.any()).describe(
|
|
2210
|
+
'A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.\nFor example: `{"name": "description", "content": "the description itself"}`.'
|
|
2211
|
+
).optional().nullable(),
|
|
2212
|
+
meta: z.record(z.string(), z.any()).describe(
|
|
2213
|
+
'SEO tag metadata. For example, `{"height": 300, "width": 240}`.'
|
|
2214
|
+
).optional().nullable(),
|
|
2215
|
+
children: z.string().describe(
|
|
2216
|
+
"SEO tag inner content. For example, `<title> inner content </title>`."
|
|
2217
|
+
).optional(),
|
|
2218
|
+
custom: z.boolean().describe(
|
|
2219
|
+
"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages)."
|
|
2220
|
+
).optional(),
|
|
2221
|
+
disabled: z.boolean().describe(
|
|
2222
|
+
"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines."
|
|
2223
|
+
).optional()
|
|
2224
|
+
})
|
|
2225
|
+
).optional(),
|
|
2226
|
+
settings: z.object({
|
|
2227
|
+
preventAutoRedirect: z.boolean().describe(
|
|
2228
|
+
"Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\n\n\nDefault: `false` (automatical redirect is enabled)."
|
|
2229
|
+
).optional(),
|
|
2230
|
+
keywords: z.array(
|
|
2231
|
+
z.object({
|
|
2232
|
+
term: z.string().describe("Keyword value.").optional(),
|
|
2233
|
+
isMain: z.boolean().describe(
|
|
2234
|
+
"Whether the keyword is the main focus keyword."
|
|
2235
|
+
).optional(),
|
|
2236
|
+
origin: z.string().describe(
|
|
2237
|
+
"The source that added the keyword terms to the SEO settings."
|
|
2238
|
+
).max(1e3).optional().nullable()
|
|
2239
|
+
})
|
|
2240
|
+
).max(5).optional()
|
|
2241
|
+
}).describe("SEO general settings.").optional()
|
|
2242
|
+
}).describe(
|
|
2243
|
+
"SEO schema data for customizing meta tags and search engine settings."
|
|
2244
|
+
).optional()
|
|
2245
|
+
}).describe("SEO settings for the experience page.").optional()
|
|
2246
|
+
});
|
|
2247
|
+
var GetExperienceBySlugRequest = z.object({
|
|
2248
|
+
slug: z.string().describe("Slug of the experience to retrieve.").max(200)
|
|
2249
|
+
});
|
|
2250
|
+
var GetExperienceBySlugResponse = z.object({
|
|
2251
|
+
experience: z.object({
|
|
2252
|
+
_id: z.string().describe("Experience ID.").regex(
|
|
2253
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
2254
|
+
"Must be a valid GUID"
|
|
2255
|
+
).optional().nullable(),
|
|
2256
|
+
reservationLocationId: z.string().describe(
|
|
2257
|
+
"ID of the reservation location this experience is assigned to."
|
|
2258
|
+
).regex(
|
|
2259
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
2260
|
+
"Must be a valid GUID"
|
|
2261
|
+
).optional().nullable(),
|
|
2262
|
+
revision: z.string().regex(/^-?\d+$/, "Must be a valid Int64 string").describe(
|
|
2263
|
+
"Revision number, which increments by 1 each time the experience is updated.\nTo prevent conflicting changes, the current revision must be passed when updating the experience.\n\nIgnored when creating an experience."
|
|
2264
|
+
).optional().nullable(),
|
|
2265
|
+
_createdDate: z.date().describe("Date and time the experience was created.").optional().nullable(),
|
|
2266
|
+
_updatedDate: z.date().describe("Date and time the experience was last updated.").optional().nullable(),
|
|
2267
|
+
configuration: z.object({
|
|
2268
|
+
displayInfo: z.object({
|
|
2269
|
+
name: z.string().describe("Experience name.").min(1).max(120).optional().nullable(),
|
|
2270
|
+
shortDescription: z.string().describe("Brief description of the experience.").max(300).optional().nullable(),
|
|
2271
|
+
coverImage: z.string().describe("Cover image for the experience.").optional(),
|
|
2272
|
+
richContent: z.any().describe(
|
|
2273
|
+
"Detailed description of the experience using rich content formatting."
|
|
2274
|
+
).optional()
|
|
2275
|
+
}).describe("Display information for the experience.").optional(),
|
|
2276
|
+
paymentPolicy: z.intersection(
|
|
2277
|
+
z.object({
|
|
2278
|
+
paymentPolicyType: z.enum(["PER_GUEST", "FREE"]).describe("Payment policy type for the experience.").optional()
|
|
2279
|
+
}),
|
|
2280
|
+
z.xor([
|
|
2281
|
+
z.object({ perGuestOptions: z.never().optional() }),
|
|
2282
|
+
z.object({
|
|
2283
|
+
perGuestOptions: z.object({
|
|
2284
|
+
price: z.string().describe(
|
|
2285
|
+
'Monetary amount to charge. Decimal string with a period as a decimal separator. For example, `"3.99"`.'
|
|
2286
|
+
).optional().nullable()
|
|
2287
|
+
}).describe("Per-guest pricing settings.")
|
|
2288
|
+
})
|
|
2289
|
+
])
|
|
2290
|
+
).describe(
|
|
2291
|
+
"Payment policy for the experience. This policy determines how the restaurant charges for reservations."
|
|
2292
|
+
).optional(),
|
|
2293
|
+
onlineReservations: z.object({
|
|
2294
|
+
partySize: z.object({
|
|
2295
|
+
min: z.number().int().describe(
|
|
2296
|
+
"Minimum number of guests allowed for a reservation."
|
|
2297
|
+
).min(1).max(1e4).optional().nullable(),
|
|
2298
|
+
max: z.number().int().describe(
|
|
2299
|
+
"Maximum number of guests allowed for a reservation."
|
|
2300
|
+
).min(1).max(1e4).optional().nullable()
|
|
2301
|
+
}).describe("Party size.").optional(),
|
|
2302
|
+
minimumReservationNotice: z.object({
|
|
2303
|
+
number: z.number().int().describe(
|
|
2304
|
+
"Number of time units for the notice period. For example, `2` for 2 hours or `30` for 30 days."
|
|
2305
|
+
).min(1).max(1e3).optional().nullable(),
|
|
2306
|
+
unit: z.enum(["MINUTES", "HOURS", "DAYS"]).describe("Time unit for the notice period.").optional()
|
|
2307
|
+
}).describe("Minimum reservation notice.").optional(),
|
|
2308
|
+
maximumReservationNotice: z.object({
|
|
2309
|
+
number: z.number().int().describe(
|
|
2310
|
+
"Number of time units for the notice period. For example, `2` for 2 hours or `30` for 30 days."
|
|
2311
|
+
).min(1).max(1e3).optional().nullable(),
|
|
2312
|
+
unit: z.enum(["MINUTES", "HOURS", "DAYS"]).describe("Time unit for the notice period.").optional()
|
|
2313
|
+
}).describe("Maximum reservation notice.").optional(),
|
|
2314
|
+
approval: z.object({
|
|
2315
|
+
mode: z.enum(["AUTOMATIC", "MANUAL"]).describe("Approval mode.").optional()
|
|
2316
|
+
}).describe("Approval.").optional(),
|
|
2317
|
+
maxGuests: z.object({
|
|
2318
|
+
number: z.number().int().describe(
|
|
2319
|
+
"Maximum total number of guests that can have active reservations for this experience at the same time."
|
|
2320
|
+
).min(0).max(1e4).optional().nullable()
|
|
2321
|
+
}).describe("Maximum number of guests.").optional(),
|
|
2322
|
+
businessSchedule: z.object({
|
|
2323
|
+
durationInMinutes: z.number().int().describe("Duration of the experience in minutes.").min(1).max(1440).optional().nullable(),
|
|
2324
|
+
entries: z.array(
|
|
2325
|
+
z.intersection(
|
|
2326
|
+
z.object({
|
|
2327
|
+
recurrence: z.enum(["WEEKLY", "ONE_TIME"]).describe("Recurrence settings for this entry.").optional()
|
|
2328
|
+
}),
|
|
2329
|
+
z.xor([
|
|
2330
|
+
z.object({
|
|
2331
|
+
weeklyOptions: z.never().optional(),
|
|
2332
|
+
oneTimeOptions: z.never().optional()
|
|
2333
|
+
}),
|
|
2334
|
+
z.object({
|
|
2335
|
+
oneTimeOptions: z.never().optional(),
|
|
2336
|
+
weeklyOptions: z.object({
|
|
2337
|
+
startDate: z.string().describe("Start date.").optional().nullable(),
|
|
2338
|
+
endDate: z.string().describe("End date.").optional().nullable(),
|
|
2339
|
+
startDaysAndTimes: z.array(
|
|
2340
|
+
z.object({
|
|
2341
|
+
day: z.enum([
|
|
2342
|
+
"MONDAY",
|
|
2343
|
+
"TUESDAY",
|
|
2344
|
+
"WEDNESDAY",
|
|
2345
|
+
"THURSDAY",
|
|
2346
|
+
"FRIDAY",
|
|
2347
|
+
"SATURDAY",
|
|
2348
|
+
"SUNDAY"
|
|
2349
|
+
]).describe("Day of week.").optional(),
|
|
2350
|
+
time: z.string().describe(
|
|
2351
|
+
'Start time. ISO-8601 extended local time format (hh:mm). For example, `"11:00"`, or `"23:30"`.'
|
|
2352
|
+
).max(5).min(5).optional().nullable()
|
|
2353
|
+
})
|
|
2354
|
+
).max(100).optional()
|
|
2355
|
+
}).describe("Weekly recurrence settings.")
|
|
2356
|
+
}),
|
|
2357
|
+
z.object({
|
|
2358
|
+
weeklyOptions: z.never().optional(),
|
|
2359
|
+
oneTimeOptions: z.object({
|
|
2360
|
+
startDate: z.string().describe("Start date.").optional().nullable(),
|
|
2361
|
+
startTime: z.string().describe(
|
|
2362
|
+
'Start time. ISO-8601 extended local time format (hh:mm). For example, `"11:00"`, or `"23:30"`.'
|
|
2363
|
+
).max(5).min(5).optional().nullable()
|
|
2364
|
+
}).describe("1-time event settings.")
|
|
2365
|
+
})
|
|
2366
|
+
])
|
|
2367
|
+
)
|
|
2368
|
+
).max(10).optional()
|
|
2369
|
+
}).describe("Business schedule.").optional()
|
|
2370
|
+
}).describe(
|
|
2371
|
+
"Settings for this experience that are used to determine restaurant availability for reservations made online."
|
|
2372
|
+
).optional(),
|
|
2373
|
+
reservationForm: z.object({
|
|
2374
|
+
submitMessage: z.string().describe(
|
|
2375
|
+
"Message displayed to customers when they submit the reservation form."
|
|
2376
|
+
).max(1e6).optional().nullable(),
|
|
2377
|
+
policiesEnabled: z.boolean().describe(
|
|
2378
|
+
"Whether to display privacy policy and terms and conditions to customers."
|
|
2379
|
+
).optional().nullable(),
|
|
2380
|
+
privacyPolicy: z.intersection(
|
|
2381
|
+
z.object({
|
|
2382
|
+
enabled: z.boolean().describe(
|
|
2383
|
+
"Whether the privacy policy is displayed to customers.\n\nDefault: `false`"
|
|
2384
|
+
).optional().nullable()
|
|
2385
|
+
}),
|
|
2386
|
+
z.xor([
|
|
2387
|
+
z.object({
|
|
2388
|
+
url: z.never().optional(),
|
|
2389
|
+
text: z.never().optional()
|
|
2390
|
+
}),
|
|
2391
|
+
z.object({
|
|
2392
|
+
text: z.never().optional(),
|
|
2393
|
+
url: z.string().describe("Privacy policy URL.")
|
|
2394
|
+
}),
|
|
2395
|
+
z.object({
|
|
2396
|
+
url: z.never().optional(),
|
|
2397
|
+
text: z.string().describe("Privacy policy text.").max(1e6)
|
|
2398
|
+
})
|
|
2399
|
+
])
|
|
2400
|
+
).describe("Privacy policy display settings.").optional(),
|
|
2401
|
+
termsAndConditions: z.intersection(
|
|
2402
|
+
z.object({
|
|
2403
|
+
enabled: z.boolean().describe(
|
|
2404
|
+
"Whether the terms and conditions are displayed to customers.\n\nDefault: `false`"
|
|
2405
|
+
).optional().nullable()
|
|
2406
|
+
}),
|
|
2407
|
+
z.xor([
|
|
2408
|
+
z.object({
|
|
2409
|
+
url: z.never().optional(),
|
|
2410
|
+
text: z.never().optional()
|
|
2411
|
+
}),
|
|
2412
|
+
z.object({
|
|
2413
|
+
text: z.never().optional(),
|
|
2414
|
+
url: z.string().describe("Terms and conditions URL.")
|
|
2415
|
+
}),
|
|
2416
|
+
z.object({
|
|
2417
|
+
url: z.never().optional(),
|
|
2418
|
+
text: z.string().describe("Terms and conditions text.").max(1e6)
|
|
2419
|
+
})
|
|
2420
|
+
])
|
|
2421
|
+
).describe("Terms and conditions display settings.").optional(),
|
|
2422
|
+
customFieldDefinitions: z.array(
|
|
2423
|
+
z.object({
|
|
2424
|
+
_id: z.string().describe("Custom field ID.").regex(
|
|
2425
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
2426
|
+
"Must be a valid GUID"
|
|
2427
|
+
).optional().nullable(),
|
|
2428
|
+
name: z.string().describe("Custom field name.").min(1).max(1e3).optional().nullable(),
|
|
2429
|
+
required: z.boolean().describe(
|
|
2430
|
+
"Whether the custom field is required.\n\nDefault: `false`"
|
|
2431
|
+
).optional().nullable()
|
|
2432
|
+
})
|
|
2433
|
+
).max(1e3).optional(),
|
|
2434
|
+
lastNameRequired: z.boolean().describe(
|
|
2435
|
+
"Whether a last name is required in the reservation form.\n\nDefault: `false`"
|
|
2436
|
+
).optional().nullable(),
|
|
2437
|
+
emailRequired: z.boolean().describe(
|
|
2438
|
+
"Whether an email is required in the reservation form.\n\nDefault: `false`"
|
|
2439
|
+
).optional().nullable(),
|
|
2440
|
+
emailMarketingCheckbox: z.object({
|
|
2441
|
+
enabled: z.boolean().describe(
|
|
2442
|
+
"Whether the email marketing checkbox is displayed to customers.\n\nDefault: `false`"
|
|
2443
|
+
).optional().nullable(),
|
|
2444
|
+
checkedByDefault: z.boolean().describe(
|
|
2445
|
+
"Whether the email marketing checkbox is checked by default.\n\nDefault: `false`"
|
|
2446
|
+
).optional().nullable()
|
|
2447
|
+
}).describe("Email marketing checkbox settings.").optional()
|
|
2448
|
+
}).describe(
|
|
2449
|
+
"Custom form fields and settings for the reservation booking form."
|
|
2450
|
+
).optional(),
|
|
2451
|
+
visible: z.boolean().describe("Whether the experience is visible on the live site.").optional().nullable()
|
|
2452
|
+
}).describe("Experience configuration.").optional(),
|
|
2453
|
+
currency: z.string().describe(
|
|
2454
|
+
"3-letter currency code in ISO-4217 alphabetic format. For exampled, `USD`."
|
|
2455
|
+
).optional().nullable(),
|
|
2456
|
+
extendedFields: z.object({
|
|
2457
|
+
namespaces: z.record(z.string(), z.record(z.string(), z.any())).describe(
|
|
2458
|
+
"Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\nThe value of each key is structured according to the schema defined when the extended fields were configured.\n\nYou can only access fields for which you have the appropriate permissions.\n\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields)."
|
|
2459
|
+
).optional()
|
|
2460
|
+
}).describe("Extended fields.").optional(),
|
|
2461
|
+
tags: z.object({
|
|
2462
|
+
privateTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
2463
|
+
"Tags that require an additional permission in order to access them, normally not given to site members or visitors."
|
|
2464
|
+
).optional(),
|
|
2465
|
+
publicTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
2466
|
+
"Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors."
|
|
2467
|
+
).optional()
|
|
2468
|
+
}).describe(
|
|
2469
|
+
"Tags assigned to the experience. Tags must be created using the [Tags API](https://dev.wix.com/docs/api-reference/business-management/tags/introduction) before they can be assigned."
|
|
2470
|
+
).optional(),
|
|
2471
|
+
slug: z.string().describe(
|
|
2472
|
+
'URL-friendly identifier for the experience page, derived from the experience display name in kebab-case format (e.g., "wine-tasting-event"). Used to create readable URLs for the experience page.'
|
|
2473
|
+
).max(300).optional().nullable(),
|
|
2474
|
+
seoSettings: z.object({
|
|
2475
|
+
seoSchema: z.object({
|
|
2476
|
+
tags: z.array(
|
|
2477
|
+
z.object({
|
|
2478
|
+
type: z.string().describe(
|
|
2479
|
+
"SEO tag type.\n\n\nSupported values: `title`, `meta`, `script`, `link`."
|
|
2480
|
+
).optional(),
|
|
2481
|
+
props: z.record(z.string(), z.any()).describe(
|
|
2482
|
+
'A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.\nFor example: `{"name": "description", "content": "the description itself"}`.'
|
|
2483
|
+
).optional().nullable(),
|
|
2484
|
+
meta: z.record(z.string(), z.any()).describe(
|
|
2485
|
+
'SEO tag metadata. For example, `{"height": 300, "width": 240}`.'
|
|
2486
|
+
).optional().nullable(),
|
|
2487
|
+
children: z.string().describe(
|
|
2488
|
+
"SEO tag inner content. For example, `<title> inner content </title>`."
|
|
2489
|
+
).optional(),
|
|
2490
|
+
custom: z.boolean().describe(
|
|
2491
|
+
"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages)."
|
|
2492
|
+
).optional(),
|
|
2493
|
+
disabled: z.boolean().describe(
|
|
2494
|
+
"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines."
|
|
2495
|
+
).optional()
|
|
2496
|
+
})
|
|
2497
|
+
).optional(),
|
|
2498
|
+
settings: z.object({
|
|
2499
|
+
preventAutoRedirect: z.boolean().describe(
|
|
2500
|
+
"Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\n\n\nDefault: `false` (automatical redirect is enabled)."
|
|
2501
|
+
).optional(),
|
|
2502
|
+
keywords: z.array(
|
|
2503
|
+
z.object({
|
|
2504
|
+
term: z.string().describe("Keyword value.").optional(),
|
|
2505
|
+
isMain: z.boolean().describe(
|
|
2506
|
+
"Whether the keyword is the main focus keyword."
|
|
2507
|
+
).optional(),
|
|
2508
|
+
origin: z.string().describe(
|
|
2509
|
+
"The source that added the keyword terms to the SEO settings."
|
|
2510
|
+
).max(1e3).optional().nullable()
|
|
2511
|
+
})
|
|
2512
|
+
).max(5).optional()
|
|
2513
|
+
}).describe("SEO general settings.").optional()
|
|
2514
|
+
}).describe(
|
|
2515
|
+
"SEO schema data for customizing meta tags and search engine settings."
|
|
2516
|
+
).optional()
|
|
2517
|
+
}).describe("SEO settings for the experience page.").optional()
|
|
2518
|
+
}).describe("Retrieved experience.").optional()
|
|
2519
|
+
});
|
|
2520
|
+
var UpdateExperienceRequest = z.object({
|
|
2521
|
+
_id: z.string().describe("Experience ID.").regex(
|
|
2522
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
2523
|
+
"Must be a valid GUID"
|
|
2524
|
+
),
|
|
2525
|
+
experience: z.object({
|
|
2526
|
+
_id: z.string().describe("Experience ID.").regex(
|
|
2527
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
2528
|
+
"Must be a valid GUID"
|
|
2529
|
+
).optional().nullable(),
|
|
2530
|
+
reservationLocationId: z.string().describe(
|
|
2531
|
+
"ID of the reservation location this experience is assigned to."
|
|
2532
|
+
).regex(
|
|
2533
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
2534
|
+
"Must be a valid GUID"
|
|
2535
|
+
).optional().nullable(),
|
|
2536
|
+
revision: z.string().regex(/^-?\d+$/, "Must be a valid Int64 string").describe(
|
|
2537
|
+
"Revision number, which increments by 1 each time the experience is updated.\nTo prevent conflicting changes, the current revision must be passed when updating the experience.\n\nIgnored when creating an experience."
|
|
2538
|
+
),
|
|
2539
|
+
_createdDate: z.date().describe("Date and time the experience was created.").optional().nullable(),
|
|
2540
|
+
_updatedDate: z.date().describe("Date and time the experience was last updated.").optional().nullable(),
|
|
2541
|
+
configuration: z.object({
|
|
2542
|
+
displayInfo: z.object({
|
|
2543
|
+
name: z.string().describe("Experience name.").min(1).max(120).optional().nullable(),
|
|
2544
|
+
shortDescription: z.string().describe("Brief description of the experience.").max(300).optional().nullable(),
|
|
2545
|
+
coverImage: z.string().describe("Cover image for the experience.").optional(),
|
|
2546
|
+
richContent: z.any().describe(
|
|
2547
|
+
"Detailed description of the experience using rich content formatting."
|
|
2548
|
+
).optional()
|
|
2549
|
+
}).describe("Display information for the experience.").optional(),
|
|
2550
|
+
paymentPolicy: z.intersection(
|
|
2551
|
+
z.object({
|
|
2552
|
+
paymentPolicyType: z.enum(["PER_GUEST", "FREE"]).optional()
|
|
2553
|
+
}),
|
|
2554
|
+
z.xor([
|
|
2555
|
+
z.object({ perGuestOptions: z.never().optional() }),
|
|
2556
|
+
z.object({
|
|
2557
|
+
perGuestOptions: z.object({
|
|
2558
|
+
price: z.string().describe(
|
|
2559
|
+
'Monetary amount to charge. Decimal string with a period as a decimal separator. For example, `"3.99"`.'
|
|
2560
|
+
).optional().nullable()
|
|
2561
|
+
}).describe("Per-guest pricing settings.")
|
|
2562
|
+
})
|
|
2563
|
+
])
|
|
2564
|
+
).describe(
|
|
2565
|
+
"Payment policy for the experience. This policy determines how the restaurant charges for reservations."
|
|
2566
|
+
).optional(),
|
|
2567
|
+
onlineReservations: z.object({
|
|
2568
|
+
partySize: z.object({
|
|
2569
|
+
min: z.number().int().describe(
|
|
2570
|
+
"Minimum number of guests allowed for a reservation."
|
|
2571
|
+
).min(1).max(1e4).optional().nullable(),
|
|
2572
|
+
max: z.number().int().describe(
|
|
2573
|
+
"Maximum number of guests allowed for a reservation."
|
|
2574
|
+
).min(1).max(1e4).optional().nullable()
|
|
2575
|
+
}).describe("Party size.").optional(),
|
|
2576
|
+
minimumReservationNotice: z.object({
|
|
2577
|
+
number: z.number().int().describe(
|
|
2578
|
+
"Number of time units for the notice period. For example, `2` for 2 hours or `30` for 30 days."
|
|
2579
|
+
).min(1).max(1e3).optional().nullable(),
|
|
2580
|
+
unit: z.enum(["MINUTES", "HOURS", "DAYS"]).optional()
|
|
2581
|
+
}).describe("Minimum reservation notice.").optional(),
|
|
2582
|
+
maximumReservationNotice: z.object({
|
|
2583
|
+
number: z.number().int().describe(
|
|
2584
|
+
"Number of time units for the notice period. For example, `2` for 2 hours or `30` for 30 days."
|
|
2585
|
+
).min(1).max(1e3).optional().nullable(),
|
|
2586
|
+
unit: z.enum(["MINUTES", "HOURS", "DAYS"]).optional()
|
|
2587
|
+
}).describe("Maximum reservation notice.").optional(),
|
|
2588
|
+
approval: z.object({ mode: z.enum(["AUTOMATIC", "MANUAL"]).optional() }).describe("Approval.").optional(),
|
|
2589
|
+
maxGuests: z.object({
|
|
2590
|
+
number: z.number().int().describe(
|
|
2591
|
+
"Maximum total number of guests that can have active reservations for this experience at the same time."
|
|
2592
|
+
).min(0).max(1e4).optional().nullable()
|
|
2593
|
+
}).describe("Maximum number of guests.").optional(),
|
|
2594
|
+
businessSchedule: z.object({
|
|
2595
|
+
durationInMinutes: z.number().int().describe("Duration of the experience in minutes.").min(1).max(1440).optional().nullable(),
|
|
2596
|
+
entries: z.array(
|
|
2597
|
+
z.intersection(
|
|
2598
|
+
z.object({
|
|
2599
|
+
recurrence: z.enum(["WEEKLY", "ONE_TIME"]).optional()
|
|
2600
|
+
}),
|
|
2601
|
+
z.xor([
|
|
2602
|
+
z.object({
|
|
2603
|
+
weeklyOptions: z.never().optional(),
|
|
2604
|
+
oneTimeOptions: z.never().optional()
|
|
2605
|
+
}),
|
|
2606
|
+
z.object({
|
|
2607
|
+
oneTimeOptions: z.never().optional(),
|
|
2608
|
+
weeklyOptions: z.object({
|
|
2609
|
+
startDate: z.string().describe("Start date.").optional().nullable(),
|
|
2610
|
+
endDate: z.string().describe("End date.").optional().nullable(),
|
|
2611
|
+
startDaysAndTimes: z.array(
|
|
2612
|
+
z.object({
|
|
2613
|
+
day: z.enum([
|
|
2614
|
+
"MONDAY",
|
|
2615
|
+
"TUESDAY",
|
|
2616
|
+
"WEDNESDAY",
|
|
2617
|
+
"THURSDAY",
|
|
2618
|
+
"FRIDAY",
|
|
2619
|
+
"SATURDAY",
|
|
2620
|
+
"SUNDAY"
|
|
2621
|
+
]).optional(),
|
|
2622
|
+
time: z.string().describe(
|
|
2623
|
+
'Start time. ISO-8601 extended local time format (hh:mm). For example, `"11:00"`, or `"23:30"`.'
|
|
2624
|
+
).max(5).min(5).optional().nullable()
|
|
2625
|
+
})
|
|
2626
|
+
).max(100).optional()
|
|
2627
|
+
}).describe("Weekly recurrence settings.")
|
|
2628
|
+
}),
|
|
2629
|
+
z.object({
|
|
2630
|
+
weeklyOptions: z.never().optional(),
|
|
2631
|
+
oneTimeOptions: z.object({
|
|
2632
|
+
startDate: z.string().describe("Start date.").optional().nullable(),
|
|
2633
|
+
startTime: z.string().describe(
|
|
2634
|
+
'Start time. ISO-8601 extended local time format (hh:mm). For example, `"11:00"`, or `"23:30"`.'
|
|
2635
|
+
).max(5).min(5).optional().nullable()
|
|
2636
|
+
}).describe("1-time event settings.")
|
|
2637
|
+
})
|
|
2638
|
+
])
|
|
2639
|
+
)
|
|
2640
|
+
).max(10).optional()
|
|
2641
|
+
}).describe("Business schedule.").optional()
|
|
2642
|
+
}).describe(
|
|
2643
|
+
"Settings for this experience that are used to determine restaurant availability for reservations made online."
|
|
2644
|
+
).optional(),
|
|
2645
|
+
reservationForm: z.object({
|
|
2646
|
+
submitMessage: z.string().describe(
|
|
2647
|
+
"Message displayed to customers when they submit the reservation form."
|
|
2648
|
+
).max(1e6).optional().nullable(),
|
|
2649
|
+
policiesEnabled: z.boolean().describe(
|
|
2650
|
+
"Whether to display privacy policy and terms and conditions to customers."
|
|
2651
|
+
).optional().nullable(),
|
|
2652
|
+
privacyPolicy: z.intersection(
|
|
2653
|
+
z.object({
|
|
2654
|
+
enabled: z.boolean().describe(
|
|
2655
|
+
"Whether the privacy policy is displayed to customers.\n\nDefault: `false`"
|
|
2656
|
+
).optional().nullable()
|
|
2657
|
+
}),
|
|
2658
|
+
z.xor([
|
|
2659
|
+
z.object({
|
|
2660
|
+
url: z.never().optional(),
|
|
2661
|
+
text: z.never().optional()
|
|
2662
|
+
}),
|
|
2663
|
+
z.object({
|
|
2664
|
+
text: z.never().optional(),
|
|
2665
|
+
url: z.string().describe("Privacy policy URL.")
|
|
2666
|
+
}),
|
|
2667
|
+
z.object({
|
|
2668
|
+
url: z.never().optional(),
|
|
2669
|
+
text: z.string().describe("Privacy policy text.").max(1e6)
|
|
2670
|
+
})
|
|
2671
|
+
])
|
|
2672
|
+
).describe("Privacy policy display settings.").optional(),
|
|
2673
|
+
termsAndConditions: z.intersection(
|
|
2674
|
+
z.object({
|
|
2675
|
+
enabled: z.boolean().describe(
|
|
2676
|
+
"Whether the terms and conditions are displayed to customers.\n\nDefault: `false`"
|
|
2677
|
+
).optional().nullable()
|
|
2678
|
+
}),
|
|
2679
|
+
z.xor([
|
|
2680
|
+
z.object({
|
|
2681
|
+
url: z.never().optional(),
|
|
2682
|
+
text: z.never().optional()
|
|
2683
|
+
}),
|
|
2684
|
+
z.object({
|
|
2685
|
+
text: z.never().optional(),
|
|
2686
|
+
url: z.string().describe("Terms and conditions URL.")
|
|
2687
|
+
}),
|
|
2688
|
+
z.object({
|
|
2689
|
+
url: z.never().optional(),
|
|
2690
|
+
text: z.string().describe("Terms and conditions text.").max(1e6)
|
|
2691
|
+
})
|
|
2692
|
+
])
|
|
2693
|
+
).describe("Terms and conditions display settings.").optional(),
|
|
2694
|
+
customFieldDefinitions: z.array(
|
|
2695
|
+
z.object({
|
|
2696
|
+
_id: z.string().describe("Custom field ID.").regex(
|
|
2697
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
2698
|
+
"Must be a valid GUID"
|
|
2699
|
+
).optional().nullable(),
|
|
2700
|
+
name: z.string().describe("Custom field name.").min(1).max(1e3).optional().nullable(),
|
|
2701
|
+
required: z.boolean().describe(
|
|
2702
|
+
"Whether the custom field is required.\n\nDefault: `false`"
|
|
2703
|
+
).optional().nullable()
|
|
2704
|
+
})
|
|
2705
|
+
).max(1e3).optional(),
|
|
2706
|
+
lastNameRequired: z.boolean().describe(
|
|
2707
|
+
"Whether a last name is required in the reservation form.\n\nDefault: `false`"
|
|
2708
|
+
).optional().nullable(),
|
|
2709
|
+
emailRequired: z.boolean().describe(
|
|
2710
|
+
"Whether an email is required in the reservation form.\n\nDefault: `false`"
|
|
2711
|
+
).optional().nullable(),
|
|
2712
|
+
emailMarketingCheckbox: z.object({
|
|
2713
|
+
enabled: z.boolean().describe(
|
|
2714
|
+
"Whether the email marketing checkbox is displayed to customers.\n\nDefault: `false`"
|
|
2715
|
+
).optional().nullable(),
|
|
2716
|
+
checkedByDefault: z.boolean().describe(
|
|
2717
|
+
"Whether the email marketing checkbox is checked by default.\n\nDefault: `false`"
|
|
2718
|
+
).optional().nullable()
|
|
2719
|
+
}).describe("Email marketing checkbox settings.").optional()
|
|
2720
|
+
}).describe(
|
|
2721
|
+
"Custom form fields and settings for the reservation booking form."
|
|
2722
|
+
).optional(),
|
|
2723
|
+
visible: z.boolean().describe("Whether the experience is visible on the live site.").optional().nullable()
|
|
2724
|
+
}).describe("Experience configuration.").optional(),
|
|
2725
|
+
currency: z.string().describe(
|
|
2726
|
+
"3-letter currency code in ISO-4217 alphabetic format. For exampled, `USD`."
|
|
2727
|
+
).optional().nullable(),
|
|
2728
|
+
extendedFields: z.object({
|
|
2729
|
+
namespaces: z.record(z.string(), z.record(z.string(), z.any())).describe(
|
|
2730
|
+
"Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\nThe value of each key is structured according to the schema defined when the extended fields were configured.\n\nYou can only access fields for which you have the appropriate permissions.\n\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields)."
|
|
2731
|
+
).optional()
|
|
2732
|
+
}).describe("Extended fields.").optional(),
|
|
2733
|
+
tags: z.object({
|
|
2734
|
+
privateTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
2735
|
+
"Tags that require an additional permission in order to access them, normally not given to site members or visitors."
|
|
2736
|
+
).optional(),
|
|
2737
|
+
publicTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
2738
|
+
"Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors."
|
|
2739
|
+
).optional()
|
|
2740
|
+
}).describe(
|
|
2741
|
+
"Tags assigned to the experience. Tags must be created using the [Tags API](https://dev.wix.com/docs/api-reference/business-management/tags/introduction) before they can be assigned."
|
|
2742
|
+
).optional(),
|
|
2743
|
+
slug: z.string().describe(
|
|
2744
|
+
'URL-friendly identifier for the experience page, derived from the experience display name in kebab-case format (e.g., "wine-tasting-event"). Used to create readable URLs for the experience page.'
|
|
2745
|
+
).max(300).optional().nullable(),
|
|
2746
|
+
seoSettings: z.object({
|
|
2747
|
+
seoSchema: z.object({
|
|
2748
|
+
tags: z.array(
|
|
2749
|
+
z.object({
|
|
2750
|
+
type: z.string().describe(
|
|
2751
|
+
"SEO tag type.\n\n\nSupported values: `title`, `meta`, `script`, `link`."
|
|
2752
|
+
).optional(),
|
|
2753
|
+
props: z.record(z.string(), z.any()).describe(
|
|
2754
|
+
'A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.\nFor example: `{"name": "description", "content": "the description itself"}`.'
|
|
2755
|
+
).optional().nullable(),
|
|
2756
|
+
meta: z.record(z.string(), z.any()).describe(
|
|
2757
|
+
'SEO tag metadata. For example, `{"height": 300, "width": 240}`.'
|
|
2758
|
+
).optional().nullable(),
|
|
2759
|
+
children: z.string().describe(
|
|
2760
|
+
"SEO tag inner content. For example, `<title> inner content </title>`."
|
|
2761
|
+
).optional(),
|
|
2762
|
+
custom: z.boolean().describe(
|
|
2763
|
+
"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages)."
|
|
2764
|
+
).optional(),
|
|
2765
|
+
disabled: z.boolean().describe(
|
|
2766
|
+
"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines."
|
|
2767
|
+
).optional()
|
|
2768
|
+
})
|
|
2769
|
+
).optional(),
|
|
2770
|
+
settings: z.object({
|
|
2771
|
+
preventAutoRedirect: z.boolean().describe(
|
|
2772
|
+
"Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\n\n\nDefault: `false` (automatical redirect is enabled)."
|
|
2773
|
+
).optional(),
|
|
2774
|
+
keywords: z.array(
|
|
2775
|
+
z.object({
|
|
2776
|
+
term: z.string().describe("Keyword value.").optional(),
|
|
2777
|
+
isMain: z.boolean().describe(
|
|
2778
|
+
"Whether the keyword is the main focus keyword."
|
|
2779
|
+
).optional(),
|
|
2780
|
+
origin: z.string().describe(
|
|
2781
|
+
"The source that added the keyword terms to the SEO settings."
|
|
2782
|
+
).max(1e3).optional().nullable()
|
|
2783
|
+
})
|
|
2784
|
+
).max(5).optional()
|
|
2785
|
+
}).describe("SEO general settings.").optional()
|
|
2786
|
+
}).describe(
|
|
2787
|
+
"SEO schema data for customizing meta tags and search engine settings."
|
|
2788
|
+
).optional()
|
|
2789
|
+
}).describe("SEO settings for the experience page.").optional()
|
|
2790
|
+
}).describe("Experience to update. May be partial.")
|
|
2791
|
+
});
|
|
2792
|
+
var UpdateExperienceResponse = z.object({
|
|
2793
|
+
_id: z.string().describe("Experience ID.").regex(
|
|
2794
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
2795
|
+
"Must be a valid GUID"
|
|
2796
|
+
).optional().nullable(),
|
|
2797
|
+
reservationLocationId: z.string().describe("ID of the reservation location this experience is assigned to.").regex(
|
|
2798
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
2799
|
+
"Must be a valid GUID"
|
|
2800
|
+
).optional().nullable(),
|
|
2801
|
+
revision: z.string().regex(/^-?\d+$/, "Must be a valid Int64 string").describe(
|
|
2802
|
+
"Revision number, which increments by 1 each time the experience is updated.\nTo prevent conflicting changes, the current revision must be passed when updating the experience.\n\nIgnored when creating an experience."
|
|
2803
|
+
).optional().nullable(),
|
|
2804
|
+
_createdDate: z.date().describe("Date and time the experience was created.").optional().nullable(),
|
|
2805
|
+
_updatedDate: z.date().describe("Date and time the experience was last updated.").optional().nullable(),
|
|
2806
|
+
configuration: z.object({
|
|
2807
|
+
displayInfo: z.object({
|
|
2808
|
+
name: z.string().describe("Experience name.").min(1).max(120).optional().nullable(),
|
|
2809
|
+
shortDescription: z.string().describe("Brief description of the experience.").max(300).optional().nullable(),
|
|
2810
|
+
coverImage: z.string().describe("Cover image for the experience.").optional(),
|
|
2811
|
+
richContent: z.any().describe(
|
|
2812
|
+
"Detailed description of the experience using rich content formatting."
|
|
2813
|
+
).optional()
|
|
2814
|
+
}).describe("Display information for the experience.").optional(),
|
|
2815
|
+
paymentPolicy: z.intersection(
|
|
2816
|
+
z.object({
|
|
2817
|
+
paymentPolicyType: z.enum(["PER_GUEST", "FREE"]).describe("Payment policy type for the experience.").optional()
|
|
2818
|
+
}),
|
|
2819
|
+
z.xor([
|
|
2820
|
+
z.object({ perGuestOptions: z.never().optional() }),
|
|
2821
|
+
z.object({
|
|
2822
|
+
perGuestOptions: z.object({
|
|
2823
|
+
price: z.string().describe(
|
|
2824
|
+
'Monetary amount to charge. Decimal string with a period as a decimal separator. For example, `"3.99"`.'
|
|
2825
|
+
).optional().nullable()
|
|
2826
|
+
}).describe("Per-guest pricing settings.")
|
|
2827
|
+
})
|
|
2828
|
+
])
|
|
2829
|
+
).describe(
|
|
2830
|
+
"Payment policy for the experience. This policy determines how the restaurant charges for reservations."
|
|
2831
|
+
).optional(),
|
|
2832
|
+
onlineReservations: z.object({
|
|
2833
|
+
partySize: z.object({
|
|
2834
|
+
min: z.number().int().describe("Minimum number of guests allowed for a reservation.").min(1).max(1e4).optional().nullable(),
|
|
2835
|
+
max: z.number().int().describe("Maximum number of guests allowed for a reservation.").min(1).max(1e4).optional().nullable()
|
|
2836
|
+
}).describe("Party size.").optional(),
|
|
2837
|
+
minimumReservationNotice: z.object({
|
|
2838
|
+
number: z.number().int().describe(
|
|
2839
|
+
"Number of time units for the notice period. For example, `2` for 2 hours or `30` for 30 days."
|
|
2840
|
+
).min(1).max(1e3).optional().nullable(),
|
|
2841
|
+
unit: z.enum(["MINUTES", "HOURS", "DAYS"]).describe("Time unit for the notice period.").optional()
|
|
2842
|
+
}).describe("Minimum reservation notice.").optional(),
|
|
2843
|
+
maximumReservationNotice: z.object({
|
|
2844
|
+
number: z.number().int().describe(
|
|
2845
|
+
"Number of time units for the notice period. For example, `2` for 2 hours or `30` for 30 days."
|
|
2846
|
+
).min(1).max(1e3).optional().nullable(),
|
|
2847
|
+
unit: z.enum(["MINUTES", "HOURS", "DAYS"]).describe("Time unit for the notice period.").optional()
|
|
2848
|
+
}).describe("Maximum reservation notice.").optional(),
|
|
2849
|
+
approval: z.object({
|
|
2850
|
+
mode: z.enum(["AUTOMATIC", "MANUAL"]).describe("Approval mode.").optional()
|
|
2851
|
+
}).describe("Approval.").optional(),
|
|
2852
|
+
maxGuests: z.object({
|
|
2853
|
+
number: z.number().int().describe(
|
|
2854
|
+
"Maximum total number of guests that can have active reservations for this experience at the same time."
|
|
2855
|
+
).min(0).max(1e4).optional().nullable()
|
|
2856
|
+
}).describe("Maximum number of guests.").optional(),
|
|
2857
|
+
businessSchedule: z.object({
|
|
2858
|
+
durationInMinutes: z.number().int().describe("Duration of the experience in minutes.").min(1).max(1440).optional().nullable(),
|
|
2859
|
+
entries: z.array(
|
|
2860
|
+
z.intersection(
|
|
2861
|
+
z.object({
|
|
2862
|
+
recurrence: z.enum(["WEEKLY", "ONE_TIME"]).describe("Recurrence settings for this entry.").optional()
|
|
2863
|
+
}),
|
|
2864
|
+
z.xor([
|
|
2865
|
+
z.object({
|
|
2866
|
+
weeklyOptions: z.never().optional(),
|
|
2867
|
+
oneTimeOptions: z.never().optional()
|
|
2868
|
+
}),
|
|
2869
|
+
z.object({
|
|
2870
|
+
oneTimeOptions: z.never().optional(),
|
|
2871
|
+
weeklyOptions: z.object({
|
|
2872
|
+
startDate: z.string().describe("Start date.").optional().nullable(),
|
|
2873
|
+
endDate: z.string().describe("End date.").optional().nullable(),
|
|
2874
|
+
startDaysAndTimes: z.array(
|
|
2875
|
+
z.object({
|
|
2876
|
+
day: z.enum([
|
|
2877
|
+
"MONDAY",
|
|
2878
|
+
"TUESDAY",
|
|
2879
|
+
"WEDNESDAY",
|
|
2880
|
+
"THURSDAY",
|
|
2881
|
+
"FRIDAY",
|
|
2882
|
+
"SATURDAY",
|
|
2883
|
+
"SUNDAY"
|
|
2884
|
+
]).describe("Day of week.").optional(),
|
|
2885
|
+
time: z.string().describe(
|
|
2886
|
+
'Start time. ISO-8601 extended local time format (hh:mm). For example, `"11:00"`, or `"23:30"`.'
|
|
2887
|
+
).max(5).min(5).optional().nullable()
|
|
2888
|
+
})
|
|
2889
|
+
).max(100).optional()
|
|
2890
|
+
}).describe("Weekly recurrence settings.")
|
|
2891
|
+
}),
|
|
2892
|
+
z.object({
|
|
2893
|
+
weeklyOptions: z.never().optional(),
|
|
2894
|
+
oneTimeOptions: z.object({
|
|
2895
|
+
startDate: z.string().describe("Start date.").optional().nullable(),
|
|
2896
|
+
startTime: z.string().describe(
|
|
2897
|
+
'Start time. ISO-8601 extended local time format (hh:mm). For example, `"11:00"`, or `"23:30"`.'
|
|
2898
|
+
).max(5).min(5).optional().nullable()
|
|
2899
|
+
}).describe("1-time event settings.")
|
|
2900
|
+
})
|
|
2901
|
+
])
|
|
2902
|
+
)
|
|
2903
|
+
).max(10).optional()
|
|
2904
|
+
}).describe("Business schedule.").optional()
|
|
2905
|
+
}).describe(
|
|
2906
|
+
"Settings for this experience that are used to determine restaurant availability for reservations made online."
|
|
2907
|
+
).optional(),
|
|
2908
|
+
reservationForm: z.object({
|
|
2909
|
+
submitMessage: z.string().describe(
|
|
2910
|
+
"Message displayed to customers when they submit the reservation form."
|
|
2911
|
+
).max(1e6).optional().nullable(),
|
|
2912
|
+
policiesEnabled: z.boolean().describe(
|
|
2913
|
+
"Whether to display privacy policy and terms and conditions to customers."
|
|
2914
|
+
).optional().nullable(),
|
|
2915
|
+
privacyPolicy: z.intersection(
|
|
2916
|
+
z.object({
|
|
2917
|
+
enabled: z.boolean().describe(
|
|
2918
|
+
"Whether the privacy policy is displayed to customers.\n\nDefault: `false`"
|
|
2919
|
+
).optional().nullable()
|
|
2920
|
+
}),
|
|
2921
|
+
z.xor([
|
|
2922
|
+
z.object({
|
|
2923
|
+
url: z.never().optional(),
|
|
2924
|
+
text: z.never().optional()
|
|
2925
|
+
}),
|
|
2926
|
+
z.object({
|
|
2927
|
+
text: z.never().optional(),
|
|
2928
|
+
url: z.string().describe("Privacy policy URL.")
|
|
2929
|
+
}),
|
|
2930
|
+
z.object({
|
|
2931
|
+
url: z.never().optional(),
|
|
2932
|
+
text: z.string().describe("Privacy policy text.").max(1e6)
|
|
2933
|
+
})
|
|
2934
|
+
])
|
|
2935
|
+
).describe("Privacy policy display settings.").optional(),
|
|
2936
|
+
termsAndConditions: z.intersection(
|
|
2937
|
+
z.object({
|
|
2938
|
+
enabled: z.boolean().describe(
|
|
2939
|
+
"Whether the terms and conditions are displayed to customers.\n\nDefault: `false`"
|
|
2940
|
+
).optional().nullable()
|
|
2941
|
+
}),
|
|
2942
|
+
z.xor([
|
|
2943
|
+
z.object({
|
|
2944
|
+
url: z.never().optional(),
|
|
2945
|
+
text: z.never().optional()
|
|
2946
|
+
}),
|
|
2947
|
+
z.object({
|
|
2948
|
+
text: z.never().optional(),
|
|
2949
|
+
url: z.string().describe("Terms and conditions URL.")
|
|
2950
|
+
}),
|
|
2951
|
+
z.object({
|
|
2952
|
+
url: z.never().optional(),
|
|
2953
|
+
text: z.string().describe("Terms and conditions text.").max(1e6)
|
|
2954
|
+
})
|
|
2955
|
+
])
|
|
2956
|
+
).describe("Terms and conditions display settings.").optional(),
|
|
2957
|
+
customFieldDefinitions: z.array(
|
|
2958
|
+
z.object({
|
|
2959
|
+
_id: z.string().describe("Custom field ID.").regex(
|
|
2960
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
2961
|
+
"Must be a valid GUID"
|
|
2962
|
+
).optional().nullable(),
|
|
2963
|
+
name: z.string().describe("Custom field name.").min(1).max(1e3).optional().nullable(),
|
|
2964
|
+
required: z.boolean().describe(
|
|
2965
|
+
"Whether the custom field is required.\n\nDefault: `false`"
|
|
2966
|
+
).optional().nullable()
|
|
2967
|
+
})
|
|
2968
|
+
).max(1e3).optional(),
|
|
2969
|
+
lastNameRequired: z.boolean().describe(
|
|
2970
|
+
"Whether a last name is required in the reservation form.\n\nDefault: `false`"
|
|
2971
|
+
).optional().nullable(),
|
|
2972
|
+
emailRequired: z.boolean().describe(
|
|
2973
|
+
"Whether an email is required in the reservation form.\n\nDefault: `false`"
|
|
2974
|
+
).optional().nullable(),
|
|
2975
|
+
emailMarketingCheckbox: z.object({
|
|
2976
|
+
enabled: z.boolean().describe(
|
|
2977
|
+
"Whether the email marketing checkbox is displayed to customers.\n\nDefault: `false`"
|
|
2978
|
+
).optional().nullable(),
|
|
2979
|
+
checkedByDefault: z.boolean().describe(
|
|
2980
|
+
"Whether the email marketing checkbox is checked by default.\n\nDefault: `false`"
|
|
2981
|
+
).optional().nullable()
|
|
2982
|
+
}).describe("Email marketing checkbox settings.").optional()
|
|
2983
|
+
}).describe(
|
|
2984
|
+
"Custom form fields and settings for the reservation booking form."
|
|
2985
|
+
).optional(),
|
|
2986
|
+
visible: z.boolean().describe("Whether the experience is visible on the live site.").optional().nullable()
|
|
2987
|
+
}).describe("Experience configuration.").optional(),
|
|
2988
|
+
currency: z.string().describe(
|
|
2989
|
+
"3-letter currency code in ISO-4217 alphabetic format. For exampled, `USD`."
|
|
2990
|
+
).optional().nullable(),
|
|
2991
|
+
extendedFields: z.object({
|
|
2992
|
+
namespaces: z.record(z.string(), z.record(z.string(), z.any())).describe(
|
|
2993
|
+
"Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\nThe value of each key is structured according to the schema defined when the extended fields were configured.\n\nYou can only access fields for which you have the appropriate permissions.\n\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields)."
|
|
2994
|
+
).optional()
|
|
2995
|
+
}).describe("Extended fields.").optional(),
|
|
2996
|
+
tags: z.object({
|
|
2997
|
+
privateTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
2998
|
+
"Tags that require an additional permission in order to access them, normally not given to site members or visitors."
|
|
2999
|
+
).optional(),
|
|
3000
|
+
publicTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
3001
|
+
"Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors."
|
|
3002
|
+
).optional()
|
|
3003
|
+
}).describe(
|
|
3004
|
+
"Tags assigned to the experience. Tags must be created using the [Tags API](https://dev.wix.com/docs/api-reference/business-management/tags/introduction) before they can be assigned."
|
|
3005
|
+
).optional(),
|
|
3006
|
+
slug: z.string().describe(
|
|
3007
|
+
'URL-friendly identifier for the experience page, derived from the experience display name in kebab-case format (e.g., "wine-tasting-event"). Used to create readable URLs for the experience page.'
|
|
3008
|
+
).max(300).optional().nullable(),
|
|
3009
|
+
seoSettings: z.object({
|
|
3010
|
+
seoSchema: z.object({
|
|
3011
|
+
tags: z.array(
|
|
3012
|
+
z.object({
|
|
3013
|
+
type: z.string().describe(
|
|
3014
|
+
"SEO tag type.\n\n\nSupported values: `title`, `meta`, `script`, `link`."
|
|
3015
|
+
).optional(),
|
|
3016
|
+
props: z.record(z.string(), z.any()).describe(
|
|
3017
|
+
'A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.\nFor example: `{"name": "description", "content": "the description itself"}`.'
|
|
3018
|
+
).optional().nullable(),
|
|
3019
|
+
meta: z.record(z.string(), z.any()).describe(
|
|
3020
|
+
'SEO tag metadata. For example, `{"height": 300, "width": 240}`.'
|
|
3021
|
+
).optional().nullable(),
|
|
3022
|
+
children: z.string().describe(
|
|
3023
|
+
"SEO tag inner content. For example, `<title> inner content </title>`."
|
|
3024
|
+
).optional(),
|
|
3025
|
+
custom: z.boolean().describe(
|
|
3026
|
+
"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages)."
|
|
3027
|
+
).optional(),
|
|
3028
|
+
disabled: z.boolean().describe(
|
|
3029
|
+
"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines."
|
|
3030
|
+
).optional()
|
|
3031
|
+
})
|
|
3032
|
+
).optional(),
|
|
3033
|
+
settings: z.object({
|
|
3034
|
+
preventAutoRedirect: z.boolean().describe(
|
|
3035
|
+
"Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\n\n\nDefault: `false` (automatical redirect is enabled)."
|
|
3036
|
+
).optional(),
|
|
3037
|
+
keywords: z.array(
|
|
3038
|
+
z.object({
|
|
3039
|
+
term: z.string().describe("Keyword value.").optional(),
|
|
3040
|
+
isMain: z.boolean().describe(
|
|
3041
|
+
"Whether the keyword is the main focus keyword."
|
|
3042
|
+
).optional(),
|
|
3043
|
+
origin: z.string().describe(
|
|
3044
|
+
"The source that added the keyword terms to the SEO settings."
|
|
3045
|
+
).max(1e3).optional().nullable()
|
|
3046
|
+
})
|
|
3047
|
+
).max(5).optional()
|
|
3048
|
+
}).describe("SEO general settings.").optional()
|
|
3049
|
+
}).describe(
|
|
3050
|
+
"SEO schema data for customizing meta tags and search engine settings."
|
|
3051
|
+
).optional()
|
|
3052
|
+
}).describe("SEO settings for the experience page.").optional()
|
|
3053
|
+
});
|
|
3054
|
+
var QueryExperiencesRequest = z.object({
|
|
3055
|
+
query: z.intersection(
|
|
3056
|
+
z.object({
|
|
3057
|
+
filter: z.record(z.string(), z.any()).describe(
|
|
3058
|
+
"Filter object.\n\nLearn more about the [filter section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-filter-section)."
|
|
3059
|
+
).optional().nullable(),
|
|
3060
|
+
sort: z.array(
|
|
3061
|
+
z.object({
|
|
3062
|
+
fieldName: z.string().describe("Name of the field to sort by.").max(512).optional(),
|
|
3063
|
+
order: z.enum(["ASC", "DESC"]).optional()
|
|
3064
|
+
})
|
|
3065
|
+
).max(5).optional()
|
|
3066
|
+
}),
|
|
3067
|
+
z.xor([
|
|
3068
|
+
z.object({ cursorPaging: z.never().optional() }),
|
|
3069
|
+
z.object({
|
|
3070
|
+
cursorPaging: z.object({
|
|
3071
|
+
limit: z.number().int().describe("Maximum number of items to return in the results.").min(0).max(100).optional().nullable(),
|
|
3072
|
+
cursor: z.string().describe(
|
|
3073
|
+
"Pointer to the next or previous page in the list of results.\n\nPass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\nNot relevant for the first request."
|
|
3074
|
+
).max(16e3).optional().nullable()
|
|
3075
|
+
}).describe(
|
|
3076
|
+
"Cursor paging options.\n\nLearn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging)."
|
|
3077
|
+
)
|
|
3078
|
+
})
|
|
3079
|
+
])
|
|
3080
|
+
).describe("Query criteria for filtering and sorting experiences.")
|
|
3081
|
+
});
|
|
3082
|
+
var QueryExperiencesResponse = z.object({
|
|
3083
|
+
experiences: z.array(
|
|
3084
|
+
z.object({
|
|
3085
|
+
_id: z.string().describe("Experience ID.").regex(
|
|
3086
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
3087
|
+
"Must be a valid GUID"
|
|
3088
|
+
).optional().nullable(),
|
|
3089
|
+
reservationLocationId: z.string().describe(
|
|
3090
|
+
"ID of the reservation location this experience is assigned to."
|
|
3091
|
+
).regex(
|
|
3092
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
3093
|
+
"Must be a valid GUID"
|
|
3094
|
+
).optional().nullable(),
|
|
3095
|
+
revision: z.string().regex(/^-?\d+$/, "Must be a valid Int64 string").describe(
|
|
3096
|
+
"Revision number, which increments by 1 each time the experience is updated.\nTo prevent conflicting changes, the current revision must be passed when updating the experience.\n\nIgnored when creating an experience."
|
|
3097
|
+
).optional().nullable(),
|
|
3098
|
+
_createdDate: z.date().describe("Date and time the experience was created.").optional().nullable(),
|
|
3099
|
+
_updatedDate: z.date().describe("Date and time the experience was last updated.").optional().nullable(),
|
|
3100
|
+
configuration: z.object({
|
|
3101
|
+
displayInfo: z.object({
|
|
3102
|
+
name: z.string().describe("Experience name.").min(1).max(120).optional().nullable(),
|
|
3103
|
+
shortDescription: z.string().describe("Brief description of the experience.").max(300).optional().nullable(),
|
|
3104
|
+
coverImage: z.string().describe("Cover image for the experience.").optional(),
|
|
3105
|
+
richContent: z.any().describe(
|
|
3106
|
+
"Detailed description of the experience using rich content formatting."
|
|
3107
|
+
).optional()
|
|
3108
|
+
}).describe("Display information for the experience.").optional(),
|
|
3109
|
+
paymentPolicy: z.intersection(
|
|
3110
|
+
z.object({
|
|
3111
|
+
paymentPolicyType: z.enum(["PER_GUEST", "FREE"]).describe("Payment policy type for the experience.").optional()
|
|
3112
|
+
}),
|
|
3113
|
+
z.xor([
|
|
3114
|
+
z.object({ perGuestOptions: z.never().optional() }),
|
|
3115
|
+
z.object({
|
|
3116
|
+
perGuestOptions: z.object({
|
|
3117
|
+
price: z.string().describe(
|
|
3118
|
+
'Monetary amount to charge. Decimal string with a period as a decimal separator. For example, `"3.99"`.'
|
|
3119
|
+
).optional().nullable()
|
|
3120
|
+
}).describe("Per-guest pricing settings.")
|
|
3121
|
+
})
|
|
3122
|
+
])
|
|
3123
|
+
).describe(
|
|
3124
|
+
"Payment policy for the experience. This policy determines how the restaurant charges for reservations."
|
|
3125
|
+
).optional(),
|
|
3126
|
+
onlineReservations: z.object({
|
|
3127
|
+
partySize: z.object({
|
|
3128
|
+
min: z.number().int().describe(
|
|
3129
|
+
"Minimum number of guests allowed for a reservation."
|
|
3130
|
+
).min(1).max(1e4).optional().nullable(),
|
|
3131
|
+
max: z.number().int().describe(
|
|
3132
|
+
"Maximum number of guests allowed for a reservation."
|
|
3133
|
+
).min(1).max(1e4).optional().nullable()
|
|
3134
|
+
}).describe("Party size.").optional(),
|
|
3135
|
+
minimumReservationNotice: z.object({
|
|
3136
|
+
number: z.number().int().describe(
|
|
3137
|
+
"Number of time units for the notice period. For example, `2` for 2 hours or `30` for 30 days."
|
|
3138
|
+
).min(1).max(1e3).optional().nullable(),
|
|
3139
|
+
unit: z.enum(["MINUTES", "HOURS", "DAYS"]).describe("Time unit for the notice period.").optional()
|
|
3140
|
+
}).describe("Minimum reservation notice.").optional(),
|
|
3141
|
+
maximumReservationNotice: z.object({
|
|
3142
|
+
number: z.number().int().describe(
|
|
3143
|
+
"Number of time units for the notice period. For example, `2` for 2 hours or `30` for 30 days."
|
|
3144
|
+
).min(1).max(1e3).optional().nullable(),
|
|
3145
|
+
unit: z.enum(["MINUTES", "HOURS", "DAYS"]).describe("Time unit for the notice period.").optional()
|
|
3146
|
+
}).describe("Maximum reservation notice.").optional(),
|
|
3147
|
+
approval: z.object({
|
|
3148
|
+
mode: z.enum(["AUTOMATIC", "MANUAL"]).describe("Approval mode.").optional()
|
|
3149
|
+
}).describe("Approval.").optional(),
|
|
3150
|
+
maxGuests: z.object({
|
|
3151
|
+
number: z.number().int().describe(
|
|
3152
|
+
"Maximum total number of guests that can have active reservations for this experience at the same time."
|
|
3153
|
+
).min(0).max(1e4).optional().nullable()
|
|
3154
|
+
}).describe("Maximum number of guests.").optional(),
|
|
3155
|
+
businessSchedule: z.object({
|
|
3156
|
+
durationInMinutes: z.number().int().describe("Duration of the experience in minutes.").min(1).max(1440).optional().nullable(),
|
|
3157
|
+
entries: z.array(
|
|
3158
|
+
z.intersection(
|
|
3159
|
+
z.object({
|
|
3160
|
+
recurrence: z.enum(["WEEKLY", "ONE_TIME"]).describe("Recurrence settings for this entry.").optional()
|
|
3161
|
+
}),
|
|
3162
|
+
z.xor([
|
|
3163
|
+
z.object({
|
|
3164
|
+
weeklyOptions: z.never().optional(),
|
|
3165
|
+
oneTimeOptions: z.never().optional()
|
|
3166
|
+
}),
|
|
3167
|
+
z.object({
|
|
3168
|
+
oneTimeOptions: z.never().optional(),
|
|
3169
|
+
weeklyOptions: z.object({
|
|
3170
|
+
startDate: z.string().describe("Start date.").optional().nullable(),
|
|
3171
|
+
endDate: z.string().describe("End date.").optional().nullable(),
|
|
3172
|
+
startDaysAndTimes: z.array(
|
|
3173
|
+
z.object({
|
|
3174
|
+
day: z.enum([
|
|
3175
|
+
"MONDAY",
|
|
3176
|
+
"TUESDAY",
|
|
3177
|
+
"WEDNESDAY",
|
|
3178
|
+
"THURSDAY",
|
|
3179
|
+
"FRIDAY",
|
|
3180
|
+
"SATURDAY",
|
|
3181
|
+
"SUNDAY"
|
|
3182
|
+
]).describe("Day of week.").optional(),
|
|
3183
|
+
time: z.string().describe(
|
|
3184
|
+
'Start time. ISO-8601 extended local time format (hh:mm). For example, `"11:00"`, or `"23:30"`.'
|
|
3185
|
+
).max(5).min(5).optional().nullable()
|
|
3186
|
+
})
|
|
3187
|
+
).max(100).optional()
|
|
3188
|
+
}).describe("Weekly recurrence settings.")
|
|
3189
|
+
}),
|
|
3190
|
+
z.object({
|
|
3191
|
+
weeklyOptions: z.never().optional(),
|
|
3192
|
+
oneTimeOptions: z.object({
|
|
3193
|
+
startDate: z.string().describe("Start date.").optional().nullable(),
|
|
3194
|
+
startTime: z.string().describe(
|
|
3195
|
+
'Start time. ISO-8601 extended local time format (hh:mm). For example, `"11:00"`, or `"23:30"`.'
|
|
3196
|
+
).max(5).min(5).optional().nullable()
|
|
3197
|
+
}).describe("1-time event settings.")
|
|
3198
|
+
})
|
|
3199
|
+
])
|
|
3200
|
+
)
|
|
3201
|
+
).max(10).optional()
|
|
3202
|
+
}).describe("Business schedule.").optional()
|
|
3203
|
+
}).describe(
|
|
3204
|
+
"Settings for this experience that are used to determine restaurant availability for reservations made online."
|
|
3205
|
+
).optional(),
|
|
3206
|
+
reservationForm: z.object({
|
|
3207
|
+
submitMessage: z.string().describe(
|
|
3208
|
+
"Message displayed to customers when they submit the reservation form."
|
|
3209
|
+
).max(1e6).optional().nullable(),
|
|
3210
|
+
policiesEnabled: z.boolean().describe(
|
|
3211
|
+
"Whether to display privacy policy and terms and conditions to customers."
|
|
3212
|
+
).optional().nullable(),
|
|
3213
|
+
privacyPolicy: z.intersection(
|
|
3214
|
+
z.object({
|
|
3215
|
+
enabled: z.boolean().describe(
|
|
3216
|
+
"Whether the privacy policy is displayed to customers.\n\nDefault: `false`"
|
|
3217
|
+
).optional().nullable()
|
|
3218
|
+
}),
|
|
3219
|
+
z.xor([
|
|
3220
|
+
z.object({
|
|
3221
|
+
url: z.never().optional(),
|
|
3222
|
+
text: z.never().optional()
|
|
3223
|
+
}),
|
|
3224
|
+
z.object({
|
|
3225
|
+
text: z.never().optional(),
|
|
3226
|
+
url: z.string().describe("Privacy policy URL.")
|
|
3227
|
+
}),
|
|
3228
|
+
z.object({
|
|
3229
|
+
url: z.never().optional(),
|
|
3230
|
+
text: z.string().describe("Privacy policy text.").max(1e6)
|
|
3231
|
+
})
|
|
3232
|
+
])
|
|
3233
|
+
).describe("Privacy policy display settings.").optional(),
|
|
3234
|
+
termsAndConditions: z.intersection(
|
|
3235
|
+
z.object({
|
|
3236
|
+
enabled: z.boolean().describe(
|
|
3237
|
+
"Whether the terms and conditions are displayed to customers.\n\nDefault: `false`"
|
|
3238
|
+
).optional().nullable()
|
|
3239
|
+
}),
|
|
3240
|
+
z.xor([
|
|
3241
|
+
z.object({
|
|
3242
|
+
url: z.never().optional(),
|
|
3243
|
+
text: z.never().optional()
|
|
3244
|
+
}),
|
|
3245
|
+
z.object({
|
|
3246
|
+
text: z.never().optional(),
|
|
3247
|
+
url: z.string().describe("Terms and conditions URL.")
|
|
3248
|
+
}),
|
|
3249
|
+
z.object({
|
|
3250
|
+
url: z.never().optional(),
|
|
3251
|
+
text: z.string().describe("Terms and conditions text.").max(1e6)
|
|
3252
|
+
})
|
|
3253
|
+
])
|
|
3254
|
+
).describe("Terms and conditions display settings.").optional(),
|
|
3255
|
+
customFieldDefinitions: z.array(
|
|
3256
|
+
z.object({
|
|
3257
|
+
_id: z.string().describe("Custom field ID.").regex(
|
|
3258
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
3259
|
+
"Must be a valid GUID"
|
|
3260
|
+
).optional().nullable(),
|
|
3261
|
+
name: z.string().describe("Custom field name.").min(1).max(1e3).optional().nullable(),
|
|
3262
|
+
required: z.boolean().describe(
|
|
3263
|
+
"Whether the custom field is required.\n\nDefault: `false`"
|
|
3264
|
+
).optional().nullable()
|
|
3265
|
+
})
|
|
3266
|
+
).max(1e3).optional(),
|
|
3267
|
+
lastNameRequired: z.boolean().describe(
|
|
3268
|
+
"Whether a last name is required in the reservation form.\n\nDefault: `false`"
|
|
3269
|
+
).optional().nullable(),
|
|
3270
|
+
emailRequired: z.boolean().describe(
|
|
3271
|
+
"Whether an email is required in the reservation form.\n\nDefault: `false`"
|
|
3272
|
+
).optional().nullable(),
|
|
3273
|
+
emailMarketingCheckbox: z.object({
|
|
3274
|
+
enabled: z.boolean().describe(
|
|
3275
|
+
"Whether the email marketing checkbox is displayed to customers.\n\nDefault: `false`"
|
|
3276
|
+
).optional().nullable(),
|
|
3277
|
+
checkedByDefault: z.boolean().describe(
|
|
3278
|
+
"Whether the email marketing checkbox is checked by default.\n\nDefault: `false`"
|
|
3279
|
+
).optional().nullable()
|
|
3280
|
+
}).describe("Email marketing checkbox settings.").optional()
|
|
3281
|
+
}).describe(
|
|
3282
|
+
"Custom form fields and settings for the reservation booking form."
|
|
3283
|
+
).optional(),
|
|
3284
|
+
visible: z.boolean().describe("Whether the experience is visible on the live site.").optional().nullable()
|
|
3285
|
+
}).describe("Experience configuration.").optional(),
|
|
3286
|
+
currency: z.string().describe(
|
|
3287
|
+
"3-letter currency code in ISO-4217 alphabetic format. For exampled, `USD`."
|
|
3288
|
+
).optional().nullable(),
|
|
3289
|
+
extendedFields: z.object({
|
|
3290
|
+
namespaces: z.record(z.string(), z.record(z.string(), z.any())).describe(
|
|
3291
|
+
"Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\nThe value of each key is structured according to the schema defined when the extended fields were configured.\n\nYou can only access fields for which you have the appropriate permissions.\n\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields)."
|
|
3292
|
+
).optional()
|
|
3293
|
+
}).describe("Extended fields.").optional(),
|
|
3294
|
+
tags: z.object({
|
|
3295
|
+
privateTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
3296
|
+
"Tags that require an additional permission in order to access them, normally not given to site members or visitors."
|
|
3297
|
+
).optional(),
|
|
3298
|
+
publicTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
3299
|
+
"Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors."
|
|
3300
|
+
).optional()
|
|
3301
|
+
}).describe(
|
|
3302
|
+
"Tags assigned to the experience. Tags must be created using the [Tags API](https://dev.wix.com/docs/api-reference/business-management/tags/introduction) before they can be assigned."
|
|
3303
|
+
).optional(),
|
|
3304
|
+
slug: z.string().describe(
|
|
3305
|
+
'URL-friendly identifier for the experience page, derived from the experience display name in kebab-case format (e.g., "wine-tasting-event"). Used to create readable URLs for the experience page.'
|
|
3306
|
+
).max(300).optional().nullable(),
|
|
3307
|
+
seoSettings: z.object({
|
|
3308
|
+
seoSchema: z.object({
|
|
3309
|
+
tags: z.array(
|
|
3310
|
+
z.object({
|
|
3311
|
+
type: z.string().describe(
|
|
3312
|
+
"SEO tag type.\n\n\nSupported values: `title`, `meta`, `script`, `link`."
|
|
3313
|
+
).optional(),
|
|
3314
|
+
props: z.record(z.string(), z.any()).describe(
|
|
3315
|
+
'A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.\nFor example: `{"name": "description", "content": "the description itself"}`.'
|
|
3316
|
+
).optional().nullable(),
|
|
3317
|
+
meta: z.record(z.string(), z.any()).describe(
|
|
3318
|
+
'SEO tag metadata. For example, `{"height": 300, "width": 240}`.'
|
|
3319
|
+
).optional().nullable(),
|
|
3320
|
+
children: z.string().describe(
|
|
3321
|
+
"SEO tag inner content. For example, `<title> inner content </title>`."
|
|
3322
|
+
).optional(),
|
|
3323
|
+
custom: z.boolean().describe(
|
|
3324
|
+
"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages)."
|
|
3325
|
+
).optional(),
|
|
3326
|
+
disabled: z.boolean().describe(
|
|
3327
|
+
"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines."
|
|
3328
|
+
).optional()
|
|
3329
|
+
})
|
|
3330
|
+
).optional(),
|
|
3331
|
+
settings: z.object({
|
|
3332
|
+
preventAutoRedirect: z.boolean().describe(
|
|
3333
|
+
"Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\n\n\nDefault: `false` (automatical redirect is enabled)."
|
|
3334
|
+
).optional(),
|
|
3335
|
+
keywords: z.array(
|
|
3336
|
+
z.object({
|
|
3337
|
+
term: z.string().describe("Keyword value.").optional(),
|
|
3338
|
+
isMain: z.boolean().describe(
|
|
3339
|
+
"Whether the keyword is the main focus keyword."
|
|
3340
|
+
).optional(),
|
|
3341
|
+
origin: z.string().describe(
|
|
3342
|
+
"The source that added the keyword terms to the SEO settings."
|
|
3343
|
+
).max(1e3).optional().nullable()
|
|
3344
|
+
})
|
|
3345
|
+
).max(5).optional()
|
|
3346
|
+
}).describe("SEO general settings.").optional()
|
|
3347
|
+
}).describe(
|
|
3348
|
+
"SEO schema data for customizing meta tags and search engine settings."
|
|
3349
|
+
).optional()
|
|
3350
|
+
}).describe("SEO settings for the experience page.").optional()
|
|
3351
|
+
})
|
|
3352
|
+
).optional(),
|
|
3353
|
+
pagingMetadata: z.object({
|
|
3354
|
+
count: z.number().int().describe("Number of items returned in current page.").optional().nullable(),
|
|
3355
|
+
cursors: z.object({
|
|
3356
|
+
next: z.string().describe(
|
|
3357
|
+
"Cursor string pointing to the next page in the list of results."
|
|
3358
|
+
).max(16e3).optional().nullable(),
|
|
3359
|
+
prev: z.string().describe(
|
|
3360
|
+
"Cursor pointing to the previous page in the list of results."
|
|
3361
|
+
).max(16e3).optional().nullable()
|
|
3362
|
+
}).describe(
|
|
3363
|
+
"Cursor strings that point to the next page, previous page, or both."
|
|
3364
|
+
).optional(),
|
|
3365
|
+
hasNext: z.boolean().describe(
|
|
3366
|
+
"Whether there are more pages to retrieve following the current page.\n\n+ `true`: Another page of results can be retrieved.\n+ `false`: This is the last page."
|
|
3367
|
+
).optional().nullable()
|
|
3368
|
+
}).describe("Pagination information for the query results.").optional()
|
|
3369
|
+
});
|
|
3370
|
+
var SearchExperiencesRequest = z.object({
|
|
3371
|
+
search: z.intersection(
|
|
3372
|
+
z.object({
|
|
3373
|
+
filter: z.record(z.string(), z.any()).describe(
|
|
3374
|
+
"Filter object.\n\nLearn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters)."
|
|
3375
|
+
).optional().nullable(),
|
|
3376
|
+
sort: z.array(
|
|
3377
|
+
z.object({
|
|
3378
|
+
fieldName: z.string().describe("Name of the field to sort by.").max(512).optional(),
|
|
3379
|
+
order: z.enum(["ASC", "DESC"]).optional()
|
|
3380
|
+
})
|
|
3381
|
+
).max(100).optional(),
|
|
3382
|
+
aggregations: z.array(
|
|
3383
|
+
z.intersection(
|
|
3384
|
+
z.object({
|
|
3385
|
+
name: z.string().max(1e3).optional().nullable(),
|
|
3386
|
+
type: z.enum([
|
|
3387
|
+
"UNKNOWN_AGGREGATION_TYPE",
|
|
3388
|
+
"VALUE",
|
|
3389
|
+
"RANGE",
|
|
3390
|
+
"SCALAR",
|
|
3391
|
+
"DATE_HISTOGRAM",
|
|
3392
|
+
"NESTED"
|
|
3393
|
+
]).optional(),
|
|
3394
|
+
fieldPath: z.string().max(1e3).optional()
|
|
3395
|
+
}),
|
|
3396
|
+
z.xor([
|
|
3397
|
+
z.object({
|
|
3398
|
+
value: z.never().optional(),
|
|
3399
|
+
range: z.never().optional(),
|
|
3400
|
+
scalar: z.never().optional(),
|
|
3401
|
+
dateHistogram: z.never().optional(),
|
|
3402
|
+
nested: z.never().optional()
|
|
3403
|
+
}),
|
|
3404
|
+
z.object({
|
|
3405
|
+
range: z.never().optional(),
|
|
3406
|
+
scalar: z.never().optional(),
|
|
3407
|
+
dateHistogram: z.never().optional(),
|
|
3408
|
+
nested: z.never().optional(),
|
|
3409
|
+
value: z.intersection(
|
|
3410
|
+
z.object({
|
|
3411
|
+
sortType: z.enum(["COUNT", "VALUE"]).describe(
|
|
3412
|
+
"Whether to sort by the number of matches or the value of the field."
|
|
3413
|
+
).optional(),
|
|
3414
|
+
sortDirection: z.enum(["DESC", "ASC"]).describe(
|
|
3415
|
+
"Whether to sort in ascending or descending order."
|
|
3416
|
+
).optional(),
|
|
3417
|
+
limit: z.number().int().describe(
|
|
3418
|
+
"Number of aggregation results to return.\nMin: `1`\nMax: `250`\nDefault: `10`"
|
|
3419
|
+
).optional().nullable(),
|
|
3420
|
+
missingValues: z.enum(["EXCLUDE", "INCLUDE"]).describe(
|
|
3421
|
+
"Whether missing values should be included or excluded from the aggregation results.\nDefault: `EXCLUDE`."
|
|
3422
|
+
).optional()
|
|
3423
|
+
}),
|
|
3424
|
+
z.xor([
|
|
3425
|
+
z.object({ includeOptions: z.never().optional() }),
|
|
3426
|
+
z.object({
|
|
3427
|
+
includeOptions: z.object({
|
|
3428
|
+
addToBucket: z.string().describe(
|
|
3429
|
+
'Specify a custom name for the bucket containing the missing values. Defaults are "N/A" for strings, "0" for integers, and "false" for booleans.'
|
|
3430
|
+
).max(1e3).optional()
|
|
3431
|
+
}).describe(
|
|
3432
|
+
"Options for including missing values in results."
|
|
3433
|
+
)
|
|
3434
|
+
})
|
|
3435
|
+
])
|
|
3436
|
+
).describe(
|
|
3437
|
+
'A value aggregation calculates metrics such as "count" for specific fields within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number of reservations (count) of each status that have been made on the site.'
|
|
3438
|
+
)
|
|
3439
|
+
}),
|
|
3440
|
+
z.object({
|
|
3441
|
+
value: z.never().optional(),
|
|
3442
|
+
scalar: z.never().optional(),
|
|
3443
|
+
dateHistogram: z.never().optional(),
|
|
3444
|
+
nested: z.never().optional(),
|
|
3445
|
+
range: z.object({
|
|
3446
|
+
buckets: z.array(
|
|
3447
|
+
z.object({
|
|
3448
|
+
from: z.number().describe(
|
|
3449
|
+
"Inclusive lower bound of the range. Required if `to` is not provided."
|
|
3450
|
+
).optional().nullable(),
|
|
3451
|
+
to: z.number().describe(
|
|
3452
|
+
"Exclusive upper bound of the range. Required if `from` is not provided."
|
|
3453
|
+
).optional().nullable()
|
|
3454
|
+
})
|
|
3455
|
+
).max(1e3).optional()
|
|
3456
|
+
}).describe(
|
|
3457
|
+
"A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more."
|
|
3458
|
+
)
|
|
3459
|
+
}),
|
|
3460
|
+
z.object({
|
|
3461
|
+
value: z.never().optional(),
|
|
3462
|
+
range: z.never().optional(),
|
|
3463
|
+
dateHistogram: z.never().optional(),
|
|
3464
|
+
nested: z.never().optional(),
|
|
3465
|
+
scalar: z.object({
|
|
3466
|
+
type: z.enum([
|
|
3467
|
+
"UNKNOWN_SCALAR_TYPE",
|
|
3468
|
+
"COUNT_DISTINCT",
|
|
3469
|
+
"MIN",
|
|
3470
|
+
"MAX"
|
|
3471
|
+
]).describe("Operation type for the scalar aggregation.").optional()
|
|
3472
|
+
}).describe(
|
|
3473
|
+
"A scalar aggregation calculates a single numerical value from a dataset, such as the total sum, average, min, or max, summarizing the dataset into one key metric. For example, use a scalar aggregation to get the average part size of reservations made on a site."
|
|
3474
|
+
)
|
|
3475
|
+
}),
|
|
3476
|
+
z.object({
|
|
3477
|
+
value: z.never().optional(),
|
|
3478
|
+
range: z.never().optional(),
|
|
3479
|
+
scalar: z.never().optional(),
|
|
3480
|
+
nested: z.never().optional(),
|
|
3481
|
+
dateHistogram: z.object({
|
|
3482
|
+
interval: z.enum([
|
|
3483
|
+
"YEAR",
|
|
3484
|
+
"MONTH",
|
|
3485
|
+
"WEEK",
|
|
3486
|
+
"DAY",
|
|
3487
|
+
"HOUR",
|
|
3488
|
+
"MINUTE",
|
|
3489
|
+
"SECOND"
|
|
3490
|
+
]).describe("Interval for date histogram aggregation.").optional()
|
|
3491
|
+
}).describe(
|
|
3492
|
+
"A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.) For example, use a date histogram to find how many reservations have been made at a restaurant each week."
|
|
3493
|
+
)
|
|
3494
|
+
}),
|
|
3495
|
+
z.object({
|
|
3496
|
+
value: z.never().optional(),
|
|
3497
|
+
range: z.never().optional(),
|
|
3498
|
+
scalar: z.never().optional(),
|
|
3499
|
+
dateHistogram: z.never().optional(),
|
|
3500
|
+
nested: z.object({
|
|
3501
|
+
nestedAggregations: z.array(
|
|
3502
|
+
z.intersection(
|
|
3503
|
+
z.object({
|
|
3504
|
+
name: z.string().describe(
|
|
3505
|
+
"Aggregation name displayed in the return."
|
|
3506
|
+
).max(1e3).optional().nullable(),
|
|
3507
|
+
type: z.enum([
|
|
3508
|
+
"UNKNOWN_AGGREGATION_TYPE",
|
|
3509
|
+
"VALUE",
|
|
3510
|
+
"RANGE",
|
|
3511
|
+
"SCALAR",
|
|
3512
|
+
"DATE_HISTOGRAM"
|
|
3513
|
+
]).optional(),
|
|
3514
|
+
fieldPath: z.string().describe("Field to aggregate by.").max(1e3).optional()
|
|
3515
|
+
}),
|
|
3516
|
+
z.xor([
|
|
3517
|
+
z.object({
|
|
3518
|
+
value: z.never().optional(),
|
|
3519
|
+
range: z.never().optional(),
|
|
3520
|
+
scalar: z.never().optional(),
|
|
3521
|
+
dateHistogram: z.never().optional()
|
|
3522
|
+
}),
|
|
3523
|
+
z.object({
|
|
3524
|
+
range: z.never().optional(),
|
|
3525
|
+
scalar: z.never().optional(),
|
|
3526
|
+
dateHistogram: z.never().optional(),
|
|
3527
|
+
value: z.intersection(
|
|
3528
|
+
z.object({
|
|
3529
|
+
sortType: z.enum(["COUNT", "VALUE"]).describe(
|
|
3530
|
+
"Whether to sort by the number of matches or the value of the field."
|
|
3531
|
+
).optional(),
|
|
3532
|
+
sortDirection: z.enum(["DESC", "ASC"]).describe(
|
|
3533
|
+
"Whether to sort in ascending or descending order."
|
|
3534
|
+
).optional(),
|
|
3535
|
+
limit: z.number().int().describe(
|
|
3536
|
+
"Number of aggregation results to return.\nMin: `1`\nMax: `250`\nDefault: `10`"
|
|
3537
|
+
).optional().nullable(),
|
|
3538
|
+
missingValues: z.enum(["EXCLUDE", "INCLUDE"]).describe(
|
|
3539
|
+
"Whether missing values should be included or excluded from the aggregation results.\nDefault: `EXCLUDE`."
|
|
3540
|
+
).optional()
|
|
3541
|
+
}),
|
|
3542
|
+
z.xor([
|
|
3543
|
+
z.object({
|
|
3544
|
+
includeOptions: z.never().optional()
|
|
3545
|
+
}),
|
|
3546
|
+
z.object({
|
|
3547
|
+
includeOptions: z.object({
|
|
3548
|
+
addToBucket: z.string().describe(
|
|
3549
|
+
'Specify a custom name for the bucket containing the missing values. Defaults are "N/A" for strings, "0" for integers, and "false" for booleans.'
|
|
3550
|
+
).max(1e3).optional()
|
|
3551
|
+
}).describe(
|
|
3552
|
+
"Options for including missing values in results."
|
|
3553
|
+
)
|
|
3554
|
+
})
|
|
3555
|
+
])
|
|
3556
|
+
).describe(
|
|
3557
|
+
'A value aggregation calculates metrics such as "count" for specific fields within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number of reservations (count) of each status that have been made on the site.'
|
|
3558
|
+
)
|
|
3559
|
+
}),
|
|
3560
|
+
z.object({
|
|
3561
|
+
value: z.never().optional(),
|
|
3562
|
+
scalar: z.never().optional(),
|
|
3563
|
+
dateHistogram: z.never().optional(),
|
|
3564
|
+
range: z.object({
|
|
3565
|
+
buckets: z.array(
|
|
3566
|
+
z.object({
|
|
3567
|
+
from: z.number().describe(
|
|
3568
|
+
"Inclusive lower bound of the range. Required if `to` is not provided."
|
|
3569
|
+
).optional().nullable(),
|
|
3570
|
+
to: z.number().describe(
|
|
3571
|
+
"Exclusive upper bound of the range. Required if `from` is not provided."
|
|
3572
|
+
).optional().nullable()
|
|
3573
|
+
})
|
|
3574
|
+
).max(1e3).optional()
|
|
3575
|
+
}).describe(
|
|
3576
|
+
"A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more."
|
|
3577
|
+
)
|
|
3578
|
+
}),
|
|
3579
|
+
z.object({
|
|
3580
|
+
value: z.never().optional(),
|
|
3581
|
+
range: z.never().optional(),
|
|
3582
|
+
dateHistogram: z.never().optional(),
|
|
3583
|
+
scalar: z.object({
|
|
3584
|
+
type: z.enum([
|
|
3585
|
+
"UNKNOWN_SCALAR_TYPE",
|
|
3586
|
+
"COUNT_DISTINCT",
|
|
3587
|
+
"MIN",
|
|
3588
|
+
"MAX"
|
|
3589
|
+
]).describe(
|
|
3590
|
+
"Operation type for the scalar aggregation."
|
|
3591
|
+
).optional()
|
|
3592
|
+
}).describe(
|
|
3593
|
+
"A scalar aggregation calculates a single numerical value from a dataset, such as the total sum, average, min, or max, summarizing the dataset into one key metric. For example, use a scalar aggregation to get the average part size of reservations made on a site."
|
|
3594
|
+
)
|
|
3595
|
+
}),
|
|
3596
|
+
z.object({
|
|
3597
|
+
value: z.never().optional(),
|
|
3598
|
+
range: z.never().optional(),
|
|
3599
|
+
scalar: z.never().optional(),
|
|
3600
|
+
dateHistogram: z.object({
|
|
3601
|
+
interval: z.enum([
|
|
3602
|
+
"YEAR",
|
|
3603
|
+
"MONTH",
|
|
3604
|
+
"WEEK",
|
|
3605
|
+
"DAY",
|
|
3606
|
+
"HOUR",
|
|
3607
|
+
"MINUTE",
|
|
3608
|
+
"SECOND"
|
|
3609
|
+
]).describe(
|
|
3610
|
+
"Interval for date histogram aggregation."
|
|
3611
|
+
).optional()
|
|
3612
|
+
}).describe(
|
|
3613
|
+
"A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.) For example, use a date histogram to find how many reservations have been made at a restaurant each week."
|
|
3614
|
+
)
|
|
3615
|
+
})
|
|
3616
|
+
])
|
|
3617
|
+
)
|
|
3618
|
+
).min(2).max(10).optional()
|
|
3619
|
+
}).describe(
|
|
3620
|
+
"A nested aggregation is applied within the results of another aggregation. Rather than aggregating directly on the primary dataset, first group data using one aggregation and then apply another aggregation within each group. It allows for more complex analyses where you can summarize data at different levels of detail or hierarchy.\nFor example, to get the number of reservations by party size for each week, first perform a date histogram aggregation on `details.startDate` with the interval `WEEK`, and a second value aggregation on `details.partySize`."
|
|
3621
|
+
)
|
|
3622
|
+
})
|
|
3623
|
+
])
|
|
3624
|
+
)
|
|
3625
|
+
).max(100).optional(),
|
|
3626
|
+
search: z.object({
|
|
3627
|
+
mode: z.enum(["OR", "AND"]).optional(),
|
|
3628
|
+
expression: z.string().describe("Search term or expression.").max(100).optional().nullable(),
|
|
3629
|
+
fields: z.array(z.string()).max(100).optional(),
|
|
3630
|
+
fuzzy: z.boolean().describe(
|
|
3631
|
+
"Whether to enable the search function to use an algorithm to automatically find results that are close to the search expression, such as typos and declensions."
|
|
3632
|
+
).optional()
|
|
3633
|
+
}).describe("Free text to match in searchable fields.").optional(),
|
|
3634
|
+
timeZone: z.string().describe(
|
|
3635
|
+
'Time zone to adjust date-time-based filters and aggregations, in ISO 8601 (including offsets) or IANA time zone database (including time zone IDs) format.\nApplies to all relevant filters and aggregations, unless overridden by providing timestamps including time zone. For example, "2023-12-20T10:52:34.795Z".'
|
|
3636
|
+
).max(100).optional().nullable()
|
|
3637
|
+
}),
|
|
3638
|
+
z.xor([
|
|
3639
|
+
z.object({ cursorPaging: z.never().optional() }),
|
|
3640
|
+
z.object({
|
|
3641
|
+
cursorPaging: z.object({
|
|
3642
|
+
limit: z.number().int().describe("Maximum number of items to return in the results.").min(0).max(100).optional().nullable(),
|
|
3643
|
+
cursor: z.string().describe(
|
|
3644
|
+
"Pointer to the next or previous page in the list of results.\n\nPass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\nNot relevant for the first request."
|
|
3645
|
+
).max(16e3).optional().nullable()
|
|
3646
|
+
}).describe(
|
|
3647
|
+
"Cursor paging options.\n\nLearn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging)."
|
|
3648
|
+
)
|
|
3649
|
+
})
|
|
3650
|
+
])
|
|
3651
|
+
).describe("Search query.")
|
|
3652
|
+
});
|
|
3653
|
+
var SearchExperiencesResponse = z.object({
|
|
3654
|
+
experiences: z.array(
|
|
3655
|
+
z.object({
|
|
3656
|
+
_id: z.string().describe("Experience ID.").regex(
|
|
3657
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
3658
|
+
"Must be a valid GUID"
|
|
3659
|
+
).optional().nullable(),
|
|
3660
|
+
reservationLocationId: z.string().describe(
|
|
3661
|
+
"ID of the reservation location this experience is assigned to."
|
|
3662
|
+
).regex(
|
|
3663
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
3664
|
+
"Must be a valid GUID"
|
|
3665
|
+
).optional().nullable(),
|
|
3666
|
+
revision: z.string().regex(/^-?\d+$/, "Must be a valid Int64 string").describe(
|
|
3667
|
+
"Revision number, which increments by 1 each time the experience is updated.\nTo prevent conflicting changes, the current revision must be passed when updating the experience.\n\nIgnored when creating an experience."
|
|
3668
|
+
).optional().nullable(),
|
|
3669
|
+
_createdDate: z.date().describe("Date and time the experience was created.").optional().nullable(),
|
|
3670
|
+
_updatedDate: z.date().describe("Date and time the experience was last updated.").optional().nullable(),
|
|
3671
|
+
configuration: z.object({
|
|
3672
|
+
displayInfo: z.object({
|
|
3673
|
+
name: z.string().describe("Experience name.").min(1).max(120).optional().nullable(),
|
|
3674
|
+
shortDescription: z.string().describe("Brief description of the experience.").max(300).optional().nullable(),
|
|
3675
|
+
coverImage: z.string().describe("Cover image for the experience.").optional(),
|
|
3676
|
+
richContent: z.any().describe(
|
|
3677
|
+
"Detailed description of the experience using rich content formatting."
|
|
3678
|
+
).optional()
|
|
3679
|
+
}).describe("Display information for the experience.").optional(),
|
|
3680
|
+
paymentPolicy: z.intersection(
|
|
3681
|
+
z.object({
|
|
3682
|
+
paymentPolicyType: z.enum(["PER_GUEST", "FREE"]).describe("Payment policy type for the experience.").optional()
|
|
3683
|
+
}),
|
|
3684
|
+
z.xor([
|
|
3685
|
+
z.object({ perGuestOptions: z.never().optional() }),
|
|
3686
|
+
z.object({
|
|
3687
|
+
perGuestOptions: z.object({
|
|
3688
|
+
price: z.string().describe(
|
|
3689
|
+
'Monetary amount to charge. Decimal string with a period as a decimal separator. For example, `"3.99"`.'
|
|
3690
|
+
).optional().nullable()
|
|
3691
|
+
}).describe("Per-guest pricing settings.")
|
|
3692
|
+
})
|
|
3693
|
+
])
|
|
3694
|
+
).describe(
|
|
3695
|
+
"Payment policy for the experience. This policy determines how the restaurant charges for reservations."
|
|
3696
|
+
).optional(),
|
|
3697
|
+
onlineReservations: z.object({
|
|
3698
|
+
partySize: z.object({
|
|
3699
|
+
min: z.number().int().describe(
|
|
3700
|
+
"Minimum number of guests allowed for a reservation."
|
|
3701
|
+
).min(1).max(1e4).optional().nullable(),
|
|
3702
|
+
max: z.number().int().describe(
|
|
3703
|
+
"Maximum number of guests allowed for a reservation."
|
|
3704
|
+
).min(1).max(1e4).optional().nullable()
|
|
3705
|
+
}).describe("Party size.").optional(),
|
|
3706
|
+
minimumReservationNotice: z.object({
|
|
3707
|
+
number: z.number().int().describe(
|
|
3708
|
+
"Number of time units for the notice period. For example, `2` for 2 hours or `30` for 30 days."
|
|
3709
|
+
).min(1).max(1e3).optional().nullable(),
|
|
3710
|
+
unit: z.enum(["MINUTES", "HOURS", "DAYS"]).describe("Time unit for the notice period.").optional()
|
|
3711
|
+
}).describe("Minimum reservation notice.").optional(),
|
|
3712
|
+
maximumReservationNotice: z.object({
|
|
3713
|
+
number: z.number().int().describe(
|
|
3714
|
+
"Number of time units for the notice period. For example, `2` for 2 hours or `30` for 30 days."
|
|
3715
|
+
).min(1).max(1e3).optional().nullable(),
|
|
3716
|
+
unit: z.enum(["MINUTES", "HOURS", "DAYS"]).describe("Time unit for the notice period.").optional()
|
|
3717
|
+
}).describe("Maximum reservation notice.").optional(),
|
|
3718
|
+
approval: z.object({
|
|
3719
|
+
mode: z.enum(["AUTOMATIC", "MANUAL"]).describe("Approval mode.").optional()
|
|
3720
|
+
}).describe("Approval.").optional(),
|
|
3721
|
+
maxGuests: z.object({
|
|
3722
|
+
number: z.number().int().describe(
|
|
3723
|
+
"Maximum total number of guests that can have active reservations for this experience at the same time."
|
|
3724
|
+
).min(0).max(1e4).optional().nullable()
|
|
3725
|
+
}).describe("Maximum number of guests.").optional(),
|
|
3726
|
+
businessSchedule: z.object({
|
|
3727
|
+
durationInMinutes: z.number().int().describe("Duration of the experience in minutes.").min(1).max(1440).optional().nullable(),
|
|
3728
|
+
entries: z.array(
|
|
3729
|
+
z.intersection(
|
|
3730
|
+
z.object({
|
|
3731
|
+
recurrence: z.enum(["WEEKLY", "ONE_TIME"]).describe("Recurrence settings for this entry.").optional()
|
|
3732
|
+
}),
|
|
3733
|
+
z.xor([
|
|
3734
|
+
z.object({
|
|
3735
|
+
weeklyOptions: z.never().optional(),
|
|
3736
|
+
oneTimeOptions: z.never().optional()
|
|
3737
|
+
}),
|
|
3738
|
+
z.object({
|
|
3739
|
+
oneTimeOptions: z.never().optional(),
|
|
3740
|
+
weeklyOptions: z.object({
|
|
3741
|
+
startDate: z.string().describe("Start date.").optional().nullable(),
|
|
3742
|
+
endDate: z.string().describe("End date.").optional().nullable(),
|
|
3743
|
+
startDaysAndTimes: z.array(
|
|
3744
|
+
z.object({
|
|
3745
|
+
day: z.enum([
|
|
3746
|
+
"MONDAY",
|
|
3747
|
+
"TUESDAY",
|
|
3748
|
+
"WEDNESDAY",
|
|
3749
|
+
"THURSDAY",
|
|
3750
|
+
"FRIDAY",
|
|
3751
|
+
"SATURDAY",
|
|
3752
|
+
"SUNDAY"
|
|
3753
|
+
]).describe("Day of week.").optional(),
|
|
3754
|
+
time: z.string().describe(
|
|
3755
|
+
'Start time. ISO-8601 extended local time format (hh:mm). For example, `"11:00"`, or `"23:30"`.'
|
|
3756
|
+
).max(5).min(5).optional().nullable()
|
|
3757
|
+
})
|
|
3758
|
+
).max(100).optional()
|
|
3759
|
+
}).describe("Weekly recurrence settings.")
|
|
3760
|
+
}),
|
|
3761
|
+
z.object({
|
|
3762
|
+
weeklyOptions: z.never().optional(),
|
|
3763
|
+
oneTimeOptions: z.object({
|
|
3764
|
+
startDate: z.string().describe("Start date.").optional().nullable(),
|
|
3765
|
+
startTime: z.string().describe(
|
|
3766
|
+
'Start time. ISO-8601 extended local time format (hh:mm). For example, `"11:00"`, or `"23:30"`.'
|
|
3767
|
+
).max(5).min(5).optional().nullable()
|
|
3768
|
+
}).describe("1-time event settings.")
|
|
3769
|
+
})
|
|
3770
|
+
])
|
|
3771
|
+
)
|
|
3772
|
+
).max(10).optional()
|
|
3773
|
+
}).describe("Business schedule.").optional()
|
|
3774
|
+
}).describe(
|
|
3775
|
+
"Settings for this experience that are used to determine restaurant availability for reservations made online."
|
|
3776
|
+
).optional(),
|
|
3777
|
+
reservationForm: z.object({
|
|
3778
|
+
submitMessage: z.string().describe(
|
|
3779
|
+
"Message displayed to customers when they submit the reservation form."
|
|
3780
|
+
).max(1e6).optional().nullable(),
|
|
3781
|
+
policiesEnabled: z.boolean().describe(
|
|
3782
|
+
"Whether to display privacy policy and terms and conditions to customers."
|
|
3783
|
+
).optional().nullable(),
|
|
3784
|
+
privacyPolicy: z.intersection(
|
|
3785
|
+
z.object({
|
|
3786
|
+
enabled: z.boolean().describe(
|
|
3787
|
+
"Whether the privacy policy is displayed to customers.\n\nDefault: `false`"
|
|
3788
|
+
).optional().nullable()
|
|
3789
|
+
}),
|
|
3790
|
+
z.xor([
|
|
3791
|
+
z.object({
|
|
3792
|
+
url: z.never().optional(),
|
|
3793
|
+
text: z.never().optional()
|
|
3794
|
+
}),
|
|
3795
|
+
z.object({
|
|
3796
|
+
text: z.never().optional(),
|
|
3797
|
+
url: z.string().describe("Privacy policy URL.")
|
|
3798
|
+
}),
|
|
3799
|
+
z.object({
|
|
3800
|
+
url: z.never().optional(),
|
|
3801
|
+
text: z.string().describe("Privacy policy text.").max(1e6)
|
|
3802
|
+
})
|
|
3803
|
+
])
|
|
3804
|
+
).describe("Privacy policy display settings.").optional(),
|
|
3805
|
+
termsAndConditions: z.intersection(
|
|
3806
|
+
z.object({
|
|
3807
|
+
enabled: z.boolean().describe(
|
|
3808
|
+
"Whether the terms and conditions are displayed to customers.\n\nDefault: `false`"
|
|
3809
|
+
).optional().nullable()
|
|
3810
|
+
}),
|
|
3811
|
+
z.xor([
|
|
3812
|
+
z.object({
|
|
3813
|
+
url: z.never().optional(),
|
|
3814
|
+
text: z.never().optional()
|
|
3815
|
+
}),
|
|
3816
|
+
z.object({
|
|
3817
|
+
text: z.never().optional(),
|
|
3818
|
+
url: z.string().describe("Terms and conditions URL.")
|
|
3819
|
+
}),
|
|
3820
|
+
z.object({
|
|
3821
|
+
url: z.never().optional(),
|
|
3822
|
+
text: z.string().describe("Terms and conditions text.").max(1e6)
|
|
3823
|
+
})
|
|
3824
|
+
])
|
|
3825
|
+
).describe("Terms and conditions display settings.").optional(),
|
|
3826
|
+
customFieldDefinitions: z.array(
|
|
3827
|
+
z.object({
|
|
3828
|
+
_id: z.string().describe("Custom field ID.").regex(
|
|
3829
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
3830
|
+
"Must be a valid GUID"
|
|
3831
|
+
).optional().nullable(),
|
|
3832
|
+
name: z.string().describe("Custom field name.").min(1).max(1e3).optional().nullable(),
|
|
3833
|
+
required: z.boolean().describe(
|
|
3834
|
+
"Whether the custom field is required.\n\nDefault: `false`"
|
|
3835
|
+
).optional().nullable()
|
|
3836
|
+
})
|
|
3837
|
+
).max(1e3).optional(),
|
|
3838
|
+
lastNameRequired: z.boolean().describe(
|
|
3839
|
+
"Whether a last name is required in the reservation form.\n\nDefault: `false`"
|
|
3840
|
+
).optional().nullable(),
|
|
3841
|
+
emailRequired: z.boolean().describe(
|
|
3842
|
+
"Whether an email is required in the reservation form.\n\nDefault: `false`"
|
|
3843
|
+
).optional().nullable(),
|
|
3844
|
+
emailMarketingCheckbox: z.object({
|
|
3845
|
+
enabled: z.boolean().describe(
|
|
3846
|
+
"Whether the email marketing checkbox is displayed to customers.\n\nDefault: `false`"
|
|
3847
|
+
).optional().nullable(),
|
|
3848
|
+
checkedByDefault: z.boolean().describe(
|
|
3849
|
+
"Whether the email marketing checkbox is checked by default.\n\nDefault: `false`"
|
|
3850
|
+
).optional().nullable()
|
|
3851
|
+
}).describe("Email marketing checkbox settings.").optional()
|
|
3852
|
+
}).describe(
|
|
3853
|
+
"Custom form fields and settings for the reservation booking form."
|
|
3854
|
+
).optional(),
|
|
3855
|
+
visible: z.boolean().describe("Whether the experience is visible on the live site.").optional().nullable()
|
|
3856
|
+
}).describe("Experience configuration.").optional(),
|
|
3857
|
+
currency: z.string().describe(
|
|
3858
|
+
"3-letter currency code in ISO-4217 alphabetic format. For exampled, `USD`."
|
|
3859
|
+
).optional().nullable(),
|
|
3860
|
+
extendedFields: z.object({
|
|
3861
|
+
namespaces: z.record(z.string(), z.record(z.string(), z.any())).describe(
|
|
3862
|
+
"Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\nThe value of each key is structured according to the schema defined when the extended fields were configured.\n\nYou can only access fields for which you have the appropriate permissions.\n\nLearn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields)."
|
|
3863
|
+
).optional()
|
|
3864
|
+
}).describe("Extended fields.").optional(),
|
|
3865
|
+
tags: z.object({
|
|
3866
|
+
privateTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
3867
|
+
"Tags that require an additional permission in order to access them, normally not given to site members or visitors."
|
|
3868
|
+
).optional(),
|
|
3869
|
+
publicTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
3870
|
+
"Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors."
|
|
3871
|
+
).optional()
|
|
3872
|
+
}).describe(
|
|
3873
|
+
"Tags assigned to the experience. Tags must be created using the [Tags API](https://dev.wix.com/docs/api-reference/business-management/tags/introduction) before they can be assigned."
|
|
3874
|
+
).optional(),
|
|
3875
|
+
slug: z.string().describe(
|
|
3876
|
+
'URL-friendly identifier for the experience page, derived from the experience display name in kebab-case format (e.g., "wine-tasting-event"). Used to create readable URLs for the experience page.'
|
|
3877
|
+
).max(300).optional().nullable(),
|
|
3878
|
+
seoSettings: z.object({
|
|
3879
|
+
seoSchema: z.object({
|
|
3880
|
+
tags: z.array(
|
|
3881
|
+
z.object({
|
|
3882
|
+
type: z.string().describe(
|
|
3883
|
+
"SEO tag type.\n\n\nSupported values: `title`, `meta`, `script`, `link`."
|
|
3884
|
+
).optional(),
|
|
3885
|
+
props: z.record(z.string(), z.any()).describe(
|
|
3886
|
+
'A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.\nFor example: `{"name": "description", "content": "the description itself"}`.'
|
|
3887
|
+
).optional().nullable(),
|
|
3888
|
+
meta: z.record(z.string(), z.any()).describe(
|
|
3889
|
+
'SEO tag metadata. For example, `{"height": 300, "width": 240}`.'
|
|
3890
|
+
).optional().nullable(),
|
|
3891
|
+
children: z.string().describe(
|
|
3892
|
+
"SEO tag inner content. For example, `<title> inner content </title>`."
|
|
3893
|
+
).optional(),
|
|
3894
|
+
custom: z.boolean().describe(
|
|
3895
|
+
"Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages)."
|
|
3896
|
+
).optional(),
|
|
3897
|
+
disabled: z.boolean().describe(
|
|
3898
|
+
"Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines."
|
|
3899
|
+
).optional()
|
|
3900
|
+
})
|
|
3901
|
+
).optional(),
|
|
3902
|
+
settings: z.object({
|
|
3903
|
+
preventAutoRedirect: z.boolean().describe(
|
|
3904
|
+
"Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.\n\n\nDefault: `false` (automatical redirect is enabled)."
|
|
3905
|
+
).optional(),
|
|
3906
|
+
keywords: z.array(
|
|
3907
|
+
z.object({
|
|
3908
|
+
term: z.string().describe("Keyword value.").optional(),
|
|
3909
|
+
isMain: z.boolean().describe(
|
|
3910
|
+
"Whether the keyword is the main focus keyword."
|
|
3911
|
+
).optional(),
|
|
3912
|
+
origin: z.string().describe(
|
|
3913
|
+
"The source that added the keyword terms to the SEO settings."
|
|
3914
|
+
).max(1e3).optional().nullable()
|
|
3915
|
+
})
|
|
3916
|
+
).max(5).optional()
|
|
3917
|
+
}).describe("SEO general settings.").optional()
|
|
3918
|
+
}).describe(
|
|
3919
|
+
"SEO schema data for customizing meta tags and search engine settings."
|
|
3920
|
+
).optional()
|
|
3921
|
+
}).describe("SEO settings for the experience page.").optional()
|
|
3922
|
+
})
|
|
3923
|
+
).optional(),
|
|
3924
|
+
pagingMetadata: z.object({
|
|
3925
|
+
count: z.number().int().describe("Number of items returned in current page.").optional().nullable(),
|
|
3926
|
+
cursors: z.object({
|
|
3927
|
+
next: z.string().describe(
|
|
3928
|
+
"Cursor string pointing to the next page in the list of results."
|
|
3929
|
+
).max(16e3).optional().nullable(),
|
|
3930
|
+
prev: z.string().describe(
|
|
3931
|
+
"Cursor pointing to the previous page in the list of results."
|
|
3932
|
+
).max(16e3).optional().nullable()
|
|
3933
|
+
}).describe(
|
|
3934
|
+
"Cursor strings that point to the next page, previous page, or both."
|
|
3935
|
+
).optional(),
|
|
3936
|
+
hasNext: z.boolean().describe(
|
|
3937
|
+
"Whether there are more pages to retrieve following the current page.\n\n+ `true`: Another page of results can be retrieved.\n+ `false`: This is the last page."
|
|
3938
|
+
).optional().nullable()
|
|
3939
|
+
}).describe("Cursor paging metadata.").optional(),
|
|
3940
|
+
aggregationData: z.object({
|
|
3941
|
+
results: z.array(
|
|
3942
|
+
z.intersection(
|
|
3943
|
+
z.object({
|
|
3944
|
+
name: z.string().describe("Aggregation name defined in the request.").max(1e3).optional(),
|
|
3945
|
+
type: z.enum([
|
|
3946
|
+
"UNKNOWN_AGGREGATION_TYPE",
|
|
3947
|
+
"VALUE",
|
|
3948
|
+
"RANGE",
|
|
3949
|
+
"SCALAR",
|
|
3950
|
+
"DATE_HISTOGRAM",
|
|
3951
|
+
"NESTED"
|
|
3952
|
+
]).describe("Type of aggregation that was performed.").optional(),
|
|
3953
|
+
fieldPath: z.string().describe("Field the data was aggregated by.").max(1e3).optional()
|
|
3954
|
+
}),
|
|
3955
|
+
z.xor([
|
|
3956
|
+
z.object({
|
|
3957
|
+
values: z.never().optional(),
|
|
3958
|
+
ranges: z.never().optional(),
|
|
3959
|
+
scalar: z.never().optional(),
|
|
3960
|
+
groupedByValue: z.never().optional(),
|
|
3961
|
+
dateHistogram: z.never().optional(),
|
|
3962
|
+
nested: z.never().optional()
|
|
3963
|
+
}),
|
|
3964
|
+
z.object({
|
|
3965
|
+
ranges: z.never().optional(),
|
|
3966
|
+
scalar: z.never().optional(),
|
|
3967
|
+
groupedByValue: z.never().optional(),
|
|
3968
|
+
dateHistogram: z.never().optional(),
|
|
3969
|
+
nested: z.never().optional(),
|
|
3970
|
+
values: z.object({
|
|
3971
|
+
results: z.array(
|
|
3972
|
+
z.object({
|
|
3973
|
+
value: z.string().describe("Value of the field").max(1e3).optional(),
|
|
3974
|
+
count: z.number().int().describe("Count of entities with this value").optional()
|
|
3975
|
+
})
|
|
3976
|
+
).max(1e3).optional()
|
|
3977
|
+
}).describe("Value aggregation results.")
|
|
3978
|
+
}),
|
|
3979
|
+
z.object({
|
|
3980
|
+
values: z.never().optional(),
|
|
3981
|
+
scalar: z.never().optional(),
|
|
3982
|
+
groupedByValue: z.never().optional(),
|
|
3983
|
+
dateHistogram: z.never().optional(),
|
|
3984
|
+
nested: z.never().optional(),
|
|
3985
|
+
ranges: z.object({
|
|
3986
|
+
results: z.array(
|
|
3987
|
+
z.object({
|
|
3988
|
+
from: z.number().describe("Inclusive lower bound of the range.").optional().nullable(),
|
|
3989
|
+
to: z.number().describe("Exclusive upper bound of the range.").optional().nullable(),
|
|
3990
|
+
count: z.number().int().describe("Count of entities in the range.").optional()
|
|
3991
|
+
})
|
|
3992
|
+
).max(1e3).optional()
|
|
3993
|
+
}).describe("Range aggregation results.")
|
|
3994
|
+
}),
|
|
3995
|
+
z.object({
|
|
3996
|
+
values: z.never().optional(),
|
|
3997
|
+
ranges: z.never().optional(),
|
|
3998
|
+
groupedByValue: z.never().optional(),
|
|
3999
|
+
dateHistogram: z.never().optional(),
|
|
4000
|
+
nested: z.never().optional(),
|
|
4001
|
+
scalar: z.object({
|
|
4002
|
+
type: z.enum([
|
|
4003
|
+
"UNKNOWN_SCALAR_TYPE",
|
|
4004
|
+
"COUNT_DISTINCT",
|
|
4005
|
+
"MIN",
|
|
4006
|
+
"MAX"
|
|
4007
|
+
]).describe("Type of scalar aggregation.").optional(),
|
|
4008
|
+
value: z.number().describe("Value of the scalar aggregation.").optional()
|
|
4009
|
+
}).describe("Scalar aggregation results.")
|
|
4010
|
+
}),
|
|
4011
|
+
z.object({
|
|
4012
|
+
values: z.never().optional(),
|
|
4013
|
+
ranges: z.never().optional(),
|
|
4014
|
+
scalar: z.never().optional(),
|
|
4015
|
+
dateHistogram: z.never().optional(),
|
|
4016
|
+
nested: z.never().optional(),
|
|
4017
|
+
groupedByValue: z.object({
|
|
4018
|
+
results: z.array(
|
|
4019
|
+
z.object({
|
|
4020
|
+
value: z.string().max(1e3).optional(),
|
|
4021
|
+
nestedResults: z.intersection(
|
|
4022
|
+
z.object({
|
|
4023
|
+
name: z.string().describe(
|
|
4024
|
+
"Aggregation name defined in the request."
|
|
4025
|
+
).max(1e3).optional(),
|
|
4026
|
+
type: z.enum([
|
|
4027
|
+
"UNKNOWN_AGGREGATION_TYPE",
|
|
4028
|
+
"VALUE",
|
|
4029
|
+
"RANGE",
|
|
4030
|
+
"SCALAR",
|
|
4031
|
+
"DATE_HISTOGRAM",
|
|
4032
|
+
"NESTED"
|
|
4033
|
+
]).describe("Type of aggregation performed.").optional(),
|
|
4034
|
+
fieldPath: z.string().describe("Field the data was aggregated by.").max(1e3).optional()
|
|
4035
|
+
}),
|
|
4036
|
+
z.xor([
|
|
4037
|
+
z.object({
|
|
4038
|
+
values: z.never().optional(),
|
|
4039
|
+
ranges: z.never().optional(),
|
|
4040
|
+
scalar: z.never().optional()
|
|
4041
|
+
}),
|
|
4042
|
+
z.object({
|
|
4043
|
+
ranges: z.never().optional(),
|
|
4044
|
+
scalar: z.never().optional(),
|
|
4045
|
+
values: z.object({
|
|
4046
|
+
results: z.array(
|
|
4047
|
+
z.object({
|
|
4048
|
+
value: z.string().describe("Value of the field").max(1e3).optional(),
|
|
4049
|
+
count: z.number().int().describe(
|
|
4050
|
+
"Count of entities with this value"
|
|
4051
|
+
).optional()
|
|
4052
|
+
})
|
|
4053
|
+
).max(1e3).optional()
|
|
4054
|
+
}).describe(
|
|
4055
|
+
"List of the value aggregation results."
|
|
4056
|
+
)
|
|
4057
|
+
}),
|
|
4058
|
+
z.object({
|
|
4059
|
+
values: z.never().optional(),
|
|
4060
|
+
scalar: z.never().optional(),
|
|
4061
|
+
ranges: z.object({
|
|
4062
|
+
results: z.array(
|
|
4063
|
+
z.object({
|
|
4064
|
+
from: z.number().describe(
|
|
4065
|
+
"Inclusive lower bound of the range."
|
|
4066
|
+
).optional().nullable(),
|
|
4067
|
+
to: z.number().describe(
|
|
4068
|
+
"Exclusive upper bound of the range."
|
|
4069
|
+
).optional().nullable(),
|
|
4070
|
+
count: z.number().int().describe(
|
|
4071
|
+
"Count of entities in the range."
|
|
4072
|
+
).optional()
|
|
4073
|
+
})
|
|
4074
|
+
).max(1e3).optional()
|
|
4075
|
+
}).describe(
|
|
4076
|
+
"List of the range aggregation results."
|
|
4077
|
+
)
|
|
4078
|
+
}),
|
|
4079
|
+
z.object({
|
|
4080
|
+
values: z.never().optional(),
|
|
4081
|
+
ranges: z.never().optional(),
|
|
4082
|
+
scalar: z.object({
|
|
4083
|
+
type: z.enum([
|
|
4084
|
+
"UNKNOWN_SCALAR_TYPE",
|
|
4085
|
+
"COUNT_DISTINCT",
|
|
4086
|
+
"MIN",
|
|
4087
|
+
"MAX"
|
|
4088
|
+
]).describe("Type of scalar aggregation.").optional(),
|
|
4089
|
+
value: z.number().describe(
|
|
4090
|
+
"Value of the scalar aggregation."
|
|
4091
|
+
).optional()
|
|
4092
|
+
}).describe(
|
|
4093
|
+
"List of the scalar aggregation results."
|
|
4094
|
+
)
|
|
4095
|
+
})
|
|
4096
|
+
])
|
|
4097
|
+
).optional()
|
|
4098
|
+
})
|
|
4099
|
+
).max(1e3).optional()
|
|
4100
|
+
}).describe("deprecated")
|
|
4101
|
+
}),
|
|
4102
|
+
z.object({
|
|
4103
|
+
values: z.never().optional(),
|
|
4104
|
+
ranges: z.never().optional(),
|
|
4105
|
+
scalar: z.never().optional(),
|
|
4106
|
+
groupedByValue: z.never().optional(),
|
|
4107
|
+
nested: z.never().optional(),
|
|
4108
|
+
dateHistogram: z.object({
|
|
4109
|
+
results: z.array(
|
|
4110
|
+
z.object({
|
|
4111
|
+
value: z.string().describe("Date in ISO 8601 format.").max(100).optional(),
|
|
4112
|
+
count: z.number().int().describe("Count of entities in the interval.").optional()
|
|
4113
|
+
})
|
|
4114
|
+
).max(200).optional()
|
|
4115
|
+
}).describe("Date histogram aggregation results.")
|
|
4116
|
+
}),
|
|
4117
|
+
z.object({
|
|
4118
|
+
values: z.never().optional(),
|
|
4119
|
+
ranges: z.never().optional(),
|
|
4120
|
+
scalar: z.never().optional(),
|
|
4121
|
+
groupedByValue: z.never().optional(),
|
|
4122
|
+
dateHistogram: z.never().optional(),
|
|
4123
|
+
nested: z.object({
|
|
4124
|
+
results: z.array(
|
|
4125
|
+
z.object({
|
|
4126
|
+
results: z.record(
|
|
4127
|
+
z.string(),
|
|
4128
|
+
z.intersection(
|
|
4129
|
+
z.object({}),
|
|
4130
|
+
z.xor([
|
|
4131
|
+
z.object({
|
|
4132
|
+
value: z.never().optional(),
|
|
4133
|
+
range: z.never().optional(),
|
|
4134
|
+
scalar: z.never().optional(),
|
|
4135
|
+
dateHistogram: z.never().optional()
|
|
4136
|
+
}),
|
|
4137
|
+
z.object({
|
|
4138
|
+
range: z.never().optional(),
|
|
4139
|
+
scalar: z.never().optional(),
|
|
4140
|
+
dateHistogram: z.never().optional(),
|
|
4141
|
+
value: z.object({
|
|
4142
|
+
value: z.string().describe("Value of the field.").max(1e3).optional(),
|
|
4143
|
+
count: z.number().int().describe(
|
|
4144
|
+
"Count of entities with this value."
|
|
4145
|
+
).optional().nullable()
|
|
4146
|
+
}).describe("Value aggregation results.")
|
|
4147
|
+
}),
|
|
4148
|
+
z.object({
|
|
4149
|
+
value: z.never().optional(),
|
|
4150
|
+
scalar: z.never().optional(),
|
|
4151
|
+
dateHistogram: z.never().optional(),
|
|
4152
|
+
range: z.object({
|
|
4153
|
+
from: z.number().describe(
|
|
4154
|
+
"Inclusive lower bound of the range."
|
|
4155
|
+
).optional().nullable(),
|
|
4156
|
+
to: z.number().describe(
|
|
4157
|
+
"Exclusive upper bound of the range."
|
|
4158
|
+
).optional().nullable(),
|
|
4159
|
+
count: z.number().int().describe(
|
|
4160
|
+
"Count of entities in the range."
|
|
4161
|
+
).optional().nullable()
|
|
4162
|
+
}).describe("Range aggregation results.")
|
|
4163
|
+
}),
|
|
4164
|
+
z.object({
|
|
4165
|
+
value: z.never().optional(),
|
|
4166
|
+
range: z.never().optional(),
|
|
4167
|
+
dateHistogram: z.never().optional(),
|
|
4168
|
+
scalar: z.object({
|
|
4169
|
+
value: z.number().describe(
|
|
4170
|
+
"Scalar aggregation results."
|
|
4171
|
+
).optional()
|
|
4172
|
+
}).describe("Scalar aggregation results.")
|
|
4173
|
+
}),
|
|
4174
|
+
z.object({
|
|
4175
|
+
value: z.never().optional(),
|
|
4176
|
+
range: z.never().optional(),
|
|
4177
|
+
scalar: z.never().optional(),
|
|
4178
|
+
dateHistogram: z.object({
|
|
4179
|
+
value: z.string().describe("Value of the field.").max(1e3).optional(),
|
|
4180
|
+
count: z.number().int().describe(
|
|
4181
|
+
"Count of entities with this value."
|
|
4182
|
+
).optional().nullable()
|
|
4183
|
+
}).describe(
|
|
4184
|
+
"Date histogram aggregation results."
|
|
4185
|
+
)
|
|
4186
|
+
})
|
|
4187
|
+
])
|
|
4188
|
+
)
|
|
4189
|
+
).describe("List of nested aggregation results.").optional()
|
|
4190
|
+
})
|
|
4191
|
+
).max(1e3).optional()
|
|
4192
|
+
}).describe("Nested aggregation results.")
|
|
4193
|
+
})
|
|
4194
|
+
])
|
|
4195
|
+
)
|
|
4196
|
+
).max(1e3).optional()
|
|
4197
|
+
}).describe("Aggregation data.").optional()
|
|
4198
|
+
});
|
|
4199
|
+
var BulkUpdateExperienceTagsRequest = z.object({
|
|
4200
|
+
experienceIds: z.array(z.string()).min(1).max(100),
|
|
4201
|
+
options: z.object({
|
|
4202
|
+
assignTags: z.object({
|
|
4203
|
+
privateTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
4204
|
+
"Tags that require an additional permission in order to access them, normally not given to site members or visitors."
|
|
4205
|
+
).optional(),
|
|
4206
|
+
publicTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
4207
|
+
"Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors."
|
|
4208
|
+
).optional()
|
|
4209
|
+
}).describe("Tags to assign to the experiences.").optional(),
|
|
4210
|
+
unassignTags: z.object({
|
|
4211
|
+
privateTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
4212
|
+
"Tags that require an additional permission in order to access them, normally not given to site members or visitors."
|
|
4213
|
+
).optional(),
|
|
4214
|
+
publicTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
4215
|
+
"Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors."
|
|
4216
|
+
).optional()
|
|
4217
|
+
}).describe("Tags to unassign from the experiences.").optional()
|
|
4218
|
+
}).optional()
|
|
4219
|
+
});
|
|
4220
|
+
var BulkUpdateExperienceTagsResponse = z.object({
|
|
4221
|
+
results: z.array(
|
|
4222
|
+
z.object({
|
|
4223
|
+
itemMetadata: z.object({
|
|
4224
|
+
_id: z.string().describe(
|
|
4225
|
+
"Item ID. Provided only whenever possible. For example, `itemId` can't be provided when item creation has failed."
|
|
4226
|
+
).regex(
|
|
4227
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
4228
|
+
"Must be a valid GUID"
|
|
4229
|
+
).optional().nullable(),
|
|
4230
|
+
originalIndex: z.number().int().describe(
|
|
4231
|
+
"Index of the item within the request array. Allows for correlation between request and response items."
|
|
4232
|
+
).min(0).optional(),
|
|
4233
|
+
success: z.boolean().describe(
|
|
4234
|
+
"Whether the requested action for this item was successful. When `false`, the `error` field is returned."
|
|
4235
|
+
).optional(),
|
|
4236
|
+
error: z.object({
|
|
4237
|
+
code: z.string().describe("Error code.").optional(),
|
|
4238
|
+
description: z.string().describe("Description of the error.").optional(),
|
|
4239
|
+
data: z.record(z.string(), z.any()).describe("Data related to the error.").optional().nullable()
|
|
4240
|
+
}).describe("Details about the error in case of failure.").optional()
|
|
4241
|
+
}).describe(
|
|
4242
|
+
"Metadata about the individual experience tag update operation."
|
|
4243
|
+
).optional()
|
|
4244
|
+
})
|
|
4245
|
+
).min(1).max(100).optional(),
|
|
4246
|
+
bulkActionMetadata: z.object({
|
|
4247
|
+
totalSuccesses: z.number().int().describe("Number of items that were successfully processed.").min(0).optional(),
|
|
4248
|
+
totalFailures: z.number().int().describe("Number of items that couldn't be processed.").min(0).optional(),
|
|
4249
|
+
undetailedFailures: z.number().int().describe(
|
|
4250
|
+
"Number of failures without details because detailed failure threshold was exceeded."
|
|
4251
|
+
).min(0).optional()
|
|
4252
|
+
}).describe("Metadata about the bulk update operation.").optional()
|
|
4253
|
+
});
|
|
4254
|
+
var BulkUpdateExperienceTagsByFilterRequest = z.object({
|
|
4255
|
+
filter: z.record(z.string(), z.any()).describe("Filter criteria to select experiences for tag updates."),
|
|
4256
|
+
options: z.object({
|
|
4257
|
+
assignTags: z.object({
|
|
4258
|
+
privateTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
4259
|
+
"Tags that require an additional permission in order to access them, normally not given to site members or visitors."
|
|
4260
|
+
).optional(),
|
|
4261
|
+
publicTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
4262
|
+
"Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors."
|
|
4263
|
+
).optional()
|
|
4264
|
+
}).describe("Tags to assign to the filtered experiences.").optional(),
|
|
4265
|
+
unassignTags: z.object({
|
|
4266
|
+
privateTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
4267
|
+
"Tags that require an additional permission in order to access them, normally not given to site members or visitors."
|
|
4268
|
+
).optional(),
|
|
4269
|
+
publicTags: z.object({ tagIds: z.array(z.string()).max(100).optional() }).describe(
|
|
4270
|
+
"Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors."
|
|
4271
|
+
).optional()
|
|
4272
|
+
}).describe("Tags to unassign from the filtered experiences.").optional()
|
|
4273
|
+
}).optional()
|
|
4274
|
+
});
|
|
4275
|
+
var BulkUpdateExperienceTagsByFilterResponse = z.object({
|
|
4276
|
+
jobId: z.string().describe("Job ID for tracking the asynchronous bulk update operation.").regex(
|
|
4277
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
4278
|
+
"Must be a valid GUID"
|
|
4279
|
+
).optional()
|
|
4280
|
+
});
|
|
4281
|
+
var BulkArchiveExperiencesRequest = z.object({
|
|
4282
|
+
experienceIds: z.array(z.string()).min(1).max(100)
|
|
4283
|
+
});
|
|
4284
|
+
var BulkArchiveExperiencesResponse = z.object({
|
|
4285
|
+
results: z.array(
|
|
4286
|
+
z.object({
|
|
4287
|
+
itemMetadata: z.object({
|
|
4288
|
+
_id: z.string().describe(
|
|
4289
|
+
"Item ID. Provided only whenever possible. For example, `itemId` can't be provided when item creation has failed."
|
|
4290
|
+
).regex(
|
|
4291
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
4292
|
+
"Must be a valid GUID"
|
|
4293
|
+
).optional().nullable(),
|
|
4294
|
+
originalIndex: z.number().int().describe(
|
|
4295
|
+
"Index of the item within the request array. Allows for correlation between request and response items."
|
|
4296
|
+
).min(0).optional(),
|
|
4297
|
+
success: z.boolean().describe(
|
|
4298
|
+
"Whether the requested action for this item was successful. When `false`, the `error` field is returned."
|
|
4299
|
+
).optional(),
|
|
4300
|
+
error: z.object({
|
|
4301
|
+
code: z.string().describe("Error code.").optional(),
|
|
4302
|
+
description: z.string().describe("Description of the error.").optional(),
|
|
4303
|
+
data: z.record(z.string(), z.any()).describe("Data related to the error.").optional().nullable()
|
|
4304
|
+
}).describe("Details about the error in case of failure.").optional()
|
|
4305
|
+
}).describe("Metadata about archiving the experience.").optional()
|
|
4306
|
+
})
|
|
4307
|
+
).min(1).max(100).optional(),
|
|
4308
|
+
bulkActionMetadata: z.object({
|
|
4309
|
+
totalSuccesses: z.number().int().describe("Number of items that were successfully processed.").min(0).optional(),
|
|
4310
|
+
totalFailures: z.number().int().describe("Number of items that couldn't be processed.").min(0).optional(),
|
|
4311
|
+
undetailedFailures: z.number().int().describe(
|
|
4312
|
+
"Number of failures without details because detailed failure threshold was exceeded."
|
|
4313
|
+
).min(0).optional()
|
|
4314
|
+
}).describe("Bulk action metadata.").optional()
|
|
4315
|
+
});
|
|
4316
|
+
var BulkUnarchiveExperiencesRequest = z.object({
|
|
4317
|
+
experienceIds: z.array(z.string()).min(1).max(100)
|
|
4318
|
+
});
|
|
4319
|
+
var BulkUnarchiveExperiencesResponse = z.object({
|
|
4320
|
+
results: z.array(
|
|
4321
|
+
z.object({
|
|
4322
|
+
itemMetadata: z.object({
|
|
4323
|
+
_id: z.string().describe(
|
|
4324
|
+
"Item ID. Provided only whenever possible. For example, `itemId` can't be provided when item creation has failed."
|
|
4325
|
+
).regex(
|
|
4326
|
+
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
|
|
4327
|
+
"Must be a valid GUID"
|
|
4328
|
+
).optional().nullable(),
|
|
4329
|
+
originalIndex: z.number().int().describe(
|
|
4330
|
+
"Index of the item within the request array. Allows for correlation between request and response items."
|
|
4331
|
+
).min(0).optional(),
|
|
4332
|
+
success: z.boolean().describe(
|
|
4333
|
+
"Whether the requested action for this item was successful. When `false`, the `error` field is returned."
|
|
4334
|
+
).optional(),
|
|
4335
|
+
error: z.object({
|
|
4336
|
+
code: z.string().describe("Error code.").optional(),
|
|
4337
|
+
description: z.string().describe("Description of the error.").optional(),
|
|
4338
|
+
data: z.record(z.string(), z.any()).describe("Data related to the error.").optional().nullable()
|
|
4339
|
+
}).describe("Details about the error in case of failure.").optional()
|
|
4340
|
+
}).describe("Metadata about unarchiving the experience.").optional()
|
|
4341
|
+
})
|
|
4342
|
+
).min(1).max(100).optional(),
|
|
4343
|
+
bulkActionMetadata: z.object({
|
|
4344
|
+
totalSuccesses: z.number().int().describe("Number of items that were successfully processed.").min(0).optional(),
|
|
4345
|
+
totalFailures: z.number().int().describe("Number of items that couldn't be processed.").min(0).optional(),
|
|
4346
|
+
undetailedFailures: z.number().int().describe(
|
|
4347
|
+
"Number of failures without details because detailed failure threshold was exceeded."
|
|
4348
|
+
).min(0).optional()
|
|
4349
|
+
}).describe("Bulk action metadata.").optional()
|
|
4350
|
+
});
|
|
4351
|
+
|
|
4352
|
+
// src/table-reservations-v1-experience-experiences.universal.ts
|
|
1424
4353
|
import { createQueryUtils } from "@wix/sdk-runtime/query-builder-utils";
|
|
1425
4354
|
import { createSearchUtils } from "@wix/sdk-runtime/search-builder-utils";
|
|
1426
4355
|
var TableAvailabilityType = /* @__PURE__ */ ((TableAvailabilityType2) => {
|
|
@@ -1501,6 +4430,8 @@ var NodeType = /* @__PURE__ */ ((NodeType2) => {
|
|
|
1501
4430
|
NodeType2["SHAPE"] = "SHAPE";
|
|
1502
4431
|
NodeType2["CARD"] = "CARD";
|
|
1503
4432
|
NodeType2["TOC"] = "TOC";
|
|
4433
|
+
NodeType2["SMART_BLOCK"] = "SMART_BLOCK";
|
|
4434
|
+
NodeType2["SMART_BLOCK_CELL"] = "SMART_BLOCK_CELL";
|
|
1504
4435
|
return NodeType2;
|
|
1505
4436
|
})(NodeType || {});
|
|
1506
4437
|
var BackgroundType = /* @__PURE__ */ ((BackgroundType2) => {
|
|
@@ -1828,6 +4759,30 @@ var Indentation = /* @__PURE__ */ ((Indentation2) => {
|
|
|
1828
4759
|
Indentation2["FLAT"] = "FLAT";
|
|
1829
4760
|
return Indentation2;
|
|
1830
4761
|
})(Indentation || {});
|
|
4762
|
+
var SmartBlockDataType = /* @__PURE__ */ ((SmartBlockDataType2) => {
|
|
4763
|
+
SmartBlockDataType2["SOLID_BOXES"] = "SOLID_BOXES";
|
|
4764
|
+
SmartBlockDataType2["NUMBERED_BOXES"] = "NUMBERED_BOXES";
|
|
4765
|
+
SmartBlockDataType2["STATS"] = "STATS";
|
|
4766
|
+
SmartBlockDataType2["CIRCLE_STATS"] = "CIRCLE_STATS";
|
|
4767
|
+
SmartBlockDataType2["SOLID_BOXES_ALTERNATING"] = "SOLID_BOXES_ALTERNATING";
|
|
4768
|
+
SmartBlockDataType2["SOLID_JOINED_BOXES"] = "SOLID_JOINED_BOXES";
|
|
4769
|
+
SmartBlockDataType2["SIDE_LINE_TEXT"] = "SIDE_LINE_TEXT";
|
|
4770
|
+
SmartBlockDataType2["TOP_LINE_TEXT"] = "TOP_LINE_TEXT";
|
|
4771
|
+
SmartBlockDataType2["OUTLINE_BOXES_WITH_TOP_CIRCLE"] = "OUTLINE_BOXES_WITH_TOP_CIRCLE";
|
|
4772
|
+
SmartBlockDataType2["BIG_BULLETS"] = "BIG_BULLETS";
|
|
4773
|
+
SmartBlockDataType2["SMALL_BULLETS"] = "SMALL_BULLETS";
|
|
4774
|
+
SmartBlockDataType2["ARROW_BULLETS"] = "ARROW_BULLETS";
|
|
4775
|
+
SmartBlockDataType2["PROCESS_STEPS"] = "PROCESS_STEPS";
|
|
4776
|
+
SmartBlockDataType2["BAR_STATS"] = "BAR_STATS";
|
|
4777
|
+
return SmartBlockDataType2;
|
|
4778
|
+
})(SmartBlockDataType || {});
|
|
4779
|
+
var ColumnSize = /* @__PURE__ */ ((ColumnSize2) => {
|
|
4780
|
+
ColumnSize2["SMALL"] = "SMALL";
|
|
4781
|
+
ColumnSize2["MEDIUM"] = "MEDIUM";
|
|
4782
|
+
ColumnSize2["LARGE"] = "LARGE";
|
|
4783
|
+
ColumnSize2["EXTRA_LARGE"] = "EXTRA_LARGE";
|
|
4784
|
+
return ColumnSize2;
|
|
4785
|
+
})(ColumnSize || {});
|
|
1831
4786
|
var PaymentPolicyType = /* @__PURE__ */ ((PaymentPolicyType2) => {
|
|
1832
4787
|
PaymentPolicyType2["PER_GUEST"] = "PER_GUEST";
|
|
1833
4788
|
PaymentPolicyType2["FREE"] = "FREE";
|
|
@@ -1923,7 +4878,10 @@ var WebhookIdentityType = /* @__PURE__ */ ((WebhookIdentityType2) => {
|
|
|
1923
4878
|
return WebhookIdentityType2;
|
|
1924
4879
|
})(WebhookIdentityType || {});
|
|
1925
4880
|
async function createExperience2(experience) {
|
|
1926
|
-
const { httpClient, sideEffects } = arguments[1];
|
|
4881
|
+
const { httpClient, sideEffects, validateRequestSchema } = arguments[1];
|
|
4882
|
+
if (validateRequestSchema) {
|
|
4883
|
+
CreateExperienceRequest.parse({ experience });
|
|
4884
|
+
}
|
|
1927
4885
|
const payload = transformPaths2(
|
|
1928
4886
|
renameKeysFromSDKRequestToRESTRequest({ experience }, [
|
|
1929
4887
|
"experience.configuration.displayInfo.richContent"
|
|
@@ -1988,7 +4946,10 @@ async function createExperience2(experience) {
|
|
|
1988
4946
|
}
|
|
1989
4947
|
}
|
|
1990
4948
|
async function getExperience2(experienceId) {
|
|
1991
|
-
const { httpClient, sideEffects } = arguments[1];
|
|
4949
|
+
const { httpClient, sideEffects, validateRequestSchema } = arguments[1];
|
|
4950
|
+
if (validateRequestSchema) {
|
|
4951
|
+
GetExperienceRequest.parse({ experienceId });
|
|
4952
|
+
}
|
|
1992
4953
|
const payload = renameKeysFromSDKRequestToRESTRequest(
|
|
1993
4954
|
{ experienceId },
|
|
1994
4955
|
[]
|
|
@@ -2034,7 +4995,10 @@ async function getExperience2(experienceId) {
|
|
|
2034
4995
|
}
|
|
2035
4996
|
}
|
|
2036
4997
|
async function getExperienceBySlug2(slug) {
|
|
2037
|
-
const { httpClient, sideEffects } = arguments[1];
|
|
4998
|
+
const { httpClient, sideEffects, validateRequestSchema } = arguments[1];
|
|
4999
|
+
if (validateRequestSchema) {
|
|
5000
|
+
GetExperienceBySlugRequest.parse({ slug });
|
|
5001
|
+
}
|
|
2038
5002
|
const payload = renameKeysFromSDKRequestToRESTRequest({ slug }, []);
|
|
2039
5003
|
const reqOpts = getExperienceBySlug(payload);
|
|
2040
5004
|
sideEffects?.onSiteCall?.();
|
|
@@ -2077,7 +5041,10 @@ async function getExperienceBySlug2(slug) {
|
|
|
2077
5041
|
}
|
|
2078
5042
|
}
|
|
2079
5043
|
async function updateExperience2(_id, experience) {
|
|
2080
|
-
const { httpClient, sideEffects } = arguments[2];
|
|
5044
|
+
const { httpClient, sideEffects, validateRequestSchema } = arguments[2];
|
|
5045
|
+
if (validateRequestSchema) {
|
|
5046
|
+
UpdateExperienceRequest.parse({ _id, experience });
|
|
5047
|
+
}
|
|
2081
5048
|
const payload = transformPaths2(
|
|
2082
5049
|
renameKeysFromSDKRequestToRESTRequest(
|
|
2083
5050
|
{ experience: { ...experience, id: _id } },
|
|
@@ -2206,7 +5173,10 @@ function queryExperiences2() {
|
|
|
2206
5173
|
});
|
|
2207
5174
|
}
|
|
2208
5175
|
async function typedQueryExperiences(query) {
|
|
2209
|
-
const { httpClient, sideEffects } = arguments[1];
|
|
5176
|
+
const { httpClient, sideEffects, validateRequestSchema } = arguments[1];
|
|
5177
|
+
if (validateRequestSchema) {
|
|
5178
|
+
QueryExperiencesRequest.parse({ query });
|
|
5179
|
+
}
|
|
2210
5180
|
const payload = renameKeysFromSDKRequestToRESTRequest({ query }, []);
|
|
2211
5181
|
const reqOpts = queryExperiences(payload);
|
|
2212
5182
|
sideEffects?.onSiteCall?.();
|
|
@@ -2257,7 +5227,10 @@ var utils = {
|
|
|
2257
5227
|
}
|
|
2258
5228
|
};
|
|
2259
5229
|
async function searchExperiences2(search) {
|
|
2260
|
-
const { httpClient, sideEffects } = arguments[1];
|
|
5230
|
+
const { httpClient, sideEffects, validateRequestSchema } = arguments[1];
|
|
5231
|
+
if (validateRequestSchema) {
|
|
5232
|
+
SearchExperiencesRequest.parse({ search });
|
|
5233
|
+
}
|
|
2261
5234
|
const payload = renameKeysFromSDKRequestToRESTRequest({ search }, []);
|
|
2262
5235
|
const reqOpts = searchExperiences(payload);
|
|
2263
5236
|
sideEffects?.onSiteCall?.();
|
|
@@ -2300,7 +5273,10 @@ async function searchExperiences2(search) {
|
|
|
2300
5273
|
}
|
|
2301
5274
|
}
|
|
2302
5275
|
async function bulkUpdateExperienceTags2(experienceIds, options) {
|
|
2303
|
-
const { httpClient, sideEffects } = arguments[2];
|
|
5276
|
+
const { httpClient, sideEffects, validateRequestSchema } = arguments[2];
|
|
5277
|
+
if (validateRequestSchema) {
|
|
5278
|
+
BulkUpdateExperienceTagsRequest.parse({ experienceIds, options });
|
|
5279
|
+
}
|
|
2304
5280
|
const payload = renameKeysFromSDKRequestToRESTRequest(
|
|
2305
5281
|
{
|
|
2306
5282
|
experienceIds,
|
|
@@ -2336,7 +5312,10 @@ async function bulkUpdateExperienceTags2(experienceIds, options) {
|
|
|
2336
5312
|
}
|
|
2337
5313
|
}
|
|
2338
5314
|
async function bulkUpdateExperienceTagsByFilter2(filter, options) {
|
|
2339
|
-
const { httpClient, sideEffects } = arguments[2];
|
|
5315
|
+
const { httpClient, sideEffects, validateRequestSchema } = arguments[2];
|
|
5316
|
+
if (validateRequestSchema) {
|
|
5317
|
+
BulkUpdateExperienceTagsByFilterRequest.parse({ filter, options });
|
|
5318
|
+
}
|
|
2340
5319
|
const payload = renameKeysFromSDKRequestToRESTRequest(
|
|
2341
5320
|
{
|
|
2342
5321
|
filter,
|
|
@@ -2372,7 +5351,10 @@ async function bulkUpdateExperienceTagsByFilter2(filter, options) {
|
|
|
2372
5351
|
}
|
|
2373
5352
|
}
|
|
2374
5353
|
async function bulkArchiveExperiences2(experienceIds) {
|
|
2375
|
-
const { httpClient, sideEffects } = arguments[1];
|
|
5354
|
+
const { httpClient, sideEffects, validateRequestSchema } = arguments[1];
|
|
5355
|
+
if (validateRequestSchema) {
|
|
5356
|
+
BulkArchiveExperiencesRequest.parse({ experienceIds });
|
|
5357
|
+
}
|
|
2376
5358
|
const payload = renameKeysFromSDKRequestToRESTRequest(
|
|
2377
5359
|
{ experienceIds },
|
|
2378
5360
|
[]
|
|
@@ -2398,7 +5380,10 @@ async function bulkArchiveExperiences2(experienceIds) {
|
|
|
2398
5380
|
}
|
|
2399
5381
|
}
|
|
2400
5382
|
async function bulkUnarchiveExperiences2(experienceIds) {
|
|
2401
|
-
const { httpClient, sideEffects } = arguments[1];
|
|
5383
|
+
const { httpClient, sideEffects, validateRequestSchema } = arguments[1];
|
|
5384
|
+
if (validateRequestSchema) {
|
|
5385
|
+
BulkUnarchiveExperiencesRequest.parse({ experienceIds });
|
|
5386
|
+
}
|
|
2402
5387
|
const payload = renameKeysFromSDKRequestToRESTRequest(
|
|
2403
5388
|
{ experienceIds },
|
|
2404
5389
|
[]
|
|
@@ -2427,83 +5412,83 @@ async function bulkUnarchiveExperiences2(experienceIds) {
|
|
|
2427
5412
|
}
|
|
2428
5413
|
|
|
2429
5414
|
// src/table-reservations-v1-experience-experiences.public.ts
|
|
2430
|
-
function createExperience3(httpClient) {
|
|
5415
|
+
function createExperience3(httpClient, __options) {
|
|
2431
5416
|
return (experience) => createExperience2(
|
|
2432
5417
|
experience,
|
|
2433
5418
|
// @ts-ignore
|
|
2434
|
-
{ httpClient }
|
|
5419
|
+
{ httpClient, validateRequestSchema: __options?.validateRequestSchema }
|
|
2435
5420
|
);
|
|
2436
5421
|
}
|
|
2437
|
-
function getExperience3(httpClient) {
|
|
5422
|
+
function getExperience3(httpClient, __options) {
|
|
2438
5423
|
return (experienceId) => getExperience2(
|
|
2439
5424
|
experienceId,
|
|
2440
5425
|
// @ts-ignore
|
|
2441
|
-
{ httpClient }
|
|
5426
|
+
{ httpClient, validateRequestSchema: __options?.validateRequestSchema }
|
|
2442
5427
|
);
|
|
2443
5428
|
}
|
|
2444
|
-
function getExperienceBySlug3(httpClient) {
|
|
5429
|
+
function getExperienceBySlug3(httpClient, __options) {
|
|
2445
5430
|
return (slug) => getExperienceBySlug2(
|
|
2446
5431
|
slug,
|
|
2447
5432
|
// @ts-ignore
|
|
2448
|
-
{ httpClient }
|
|
5433
|
+
{ httpClient, validateRequestSchema: __options?.validateRequestSchema }
|
|
2449
5434
|
);
|
|
2450
5435
|
}
|
|
2451
|
-
function updateExperience3(httpClient) {
|
|
5436
|
+
function updateExperience3(httpClient, __options) {
|
|
2452
5437
|
return (_id, experience) => updateExperience2(
|
|
2453
5438
|
_id,
|
|
2454
5439
|
experience,
|
|
2455
5440
|
// @ts-ignore
|
|
2456
|
-
{ httpClient }
|
|
5441
|
+
{ httpClient, validateRequestSchema: __options?.validateRequestSchema }
|
|
2457
5442
|
);
|
|
2458
5443
|
}
|
|
2459
|
-
function queryExperiences3(httpClient) {
|
|
5444
|
+
function queryExperiences3(httpClient, __options) {
|
|
2460
5445
|
return () => queryExperiences2(
|
|
2461
5446
|
// @ts-ignore
|
|
2462
|
-
{ httpClient }
|
|
5447
|
+
{ httpClient, validateRequestSchema: __options?.validateRequestSchema }
|
|
2463
5448
|
);
|
|
2464
5449
|
}
|
|
2465
|
-
function typedQueryExperiences2(httpClient) {
|
|
5450
|
+
function typedQueryExperiences2(httpClient, __options) {
|
|
2466
5451
|
return (query) => typedQueryExperiences(
|
|
2467
5452
|
query,
|
|
2468
5453
|
// @ts-ignore
|
|
2469
|
-
{ httpClient }
|
|
5454
|
+
{ httpClient, validateRequestSchema: __options?.validateRequestSchema }
|
|
2470
5455
|
);
|
|
2471
5456
|
}
|
|
2472
|
-
function searchExperiences3(httpClient) {
|
|
5457
|
+
function searchExperiences3(httpClient, __options) {
|
|
2473
5458
|
return (search) => searchExperiences2(
|
|
2474
5459
|
search,
|
|
2475
5460
|
// @ts-ignore
|
|
2476
|
-
{ httpClient }
|
|
5461
|
+
{ httpClient, validateRequestSchema: __options?.validateRequestSchema }
|
|
2477
5462
|
);
|
|
2478
5463
|
}
|
|
2479
|
-
function bulkUpdateExperienceTags3(httpClient) {
|
|
5464
|
+
function bulkUpdateExperienceTags3(httpClient, __options) {
|
|
2480
5465
|
return (experienceIds, options) => bulkUpdateExperienceTags2(
|
|
2481
5466
|
experienceIds,
|
|
2482
5467
|
options,
|
|
2483
5468
|
// @ts-ignore
|
|
2484
|
-
{ httpClient }
|
|
5469
|
+
{ httpClient, validateRequestSchema: __options?.validateRequestSchema }
|
|
2485
5470
|
);
|
|
2486
5471
|
}
|
|
2487
|
-
function bulkUpdateExperienceTagsByFilter3(httpClient) {
|
|
5472
|
+
function bulkUpdateExperienceTagsByFilter3(httpClient, __options) {
|
|
2488
5473
|
return (filter, options) => bulkUpdateExperienceTagsByFilter2(
|
|
2489
5474
|
filter,
|
|
2490
5475
|
options,
|
|
2491
5476
|
// @ts-ignore
|
|
2492
|
-
{ httpClient }
|
|
5477
|
+
{ httpClient, validateRequestSchema: __options?.validateRequestSchema }
|
|
2493
5478
|
);
|
|
2494
5479
|
}
|
|
2495
|
-
function bulkArchiveExperiences3(httpClient) {
|
|
5480
|
+
function bulkArchiveExperiences3(httpClient, __options) {
|
|
2496
5481
|
return (experienceIds) => bulkArchiveExperiences2(
|
|
2497
5482
|
experienceIds,
|
|
2498
5483
|
// @ts-ignore
|
|
2499
|
-
{ httpClient }
|
|
5484
|
+
{ httpClient, validateRequestSchema: __options?.validateRequestSchema }
|
|
2500
5485
|
);
|
|
2501
5486
|
}
|
|
2502
|
-
function bulkUnarchiveExperiences3(httpClient) {
|
|
5487
|
+
function bulkUnarchiveExperiences3(httpClient, __options) {
|
|
2503
5488
|
return (experienceIds) => bulkUnarchiveExperiences2(
|
|
2504
5489
|
experienceIds,
|
|
2505
5490
|
// @ts-ignore
|
|
2506
|
-
{ httpClient }
|
|
5491
|
+
{ httpClient, validateRequestSchema: __options?.validateRequestSchema }
|
|
2507
5492
|
);
|
|
2508
5493
|
}
|
|
2509
5494
|
var onExperienceCreated = EventDefinition(
|
|
@@ -2649,6 +5634,9 @@ var onExperienceCreated = EventDefinition(
|
|
|
2649
5634
|
},
|
|
2650
5635
|
{
|
|
2651
5636
|
path: "entity.configuration.displayInfo.richContent.nodes.tocData.itemSpacing"
|
|
5637
|
+
},
|
|
5638
|
+
{
|
|
5639
|
+
path: "entity.configuration.displayInfo.richContent.nodes.smartBlockCellData.shape.duration"
|
|
2652
5640
|
}
|
|
2653
5641
|
]
|
|
2654
5642
|
}
|
|
@@ -2802,6 +5790,9 @@ var onExperienceTagsModified = EventDefinition(
|
|
|
2802
5790
|
},
|
|
2803
5791
|
{
|
|
2804
5792
|
path: "data.experience.configuration.displayInfo.richContent.nodes.tocData.itemSpacing"
|
|
5793
|
+
},
|
|
5794
|
+
{
|
|
5795
|
+
path: "data.experience.configuration.displayInfo.richContent.nodes.smartBlockCellData.shape.duration"
|
|
2805
5796
|
}
|
|
2806
5797
|
]
|
|
2807
5798
|
}
|
|
@@ -2970,6 +5961,9 @@ var onExperienceUpdated = EventDefinition(
|
|
|
2970
5961
|
{
|
|
2971
5962
|
path: "entity.configuration.displayInfo.richContent.nodes.tocData.itemSpacing"
|
|
2972
5963
|
},
|
|
5964
|
+
{
|
|
5965
|
+
path: "entity.configuration.displayInfo.richContent.nodes.smartBlockCellData.shape.duration"
|
|
5966
|
+
},
|
|
2973
5967
|
{
|
|
2974
5968
|
path: "modifiedFields.configuration.displayInfo.richContent.nodes.buttonData.styles.background.gradient.centerX"
|
|
2975
5969
|
},
|
|
@@ -3077,6 +6071,9 @@ var onExperienceUpdated = EventDefinition(
|
|
|
3077
6071
|
},
|
|
3078
6072
|
{
|
|
3079
6073
|
path: "modifiedFields.configuration.displayInfo.richContent.nodes.tocData.itemSpacing"
|
|
6074
|
+
},
|
|
6075
|
+
{
|
|
6076
|
+
path: "modifiedFields.configuration.displayInfo.richContent.nodes.smartBlockCellData.shape.duration"
|
|
3080
6077
|
}
|
|
3081
6078
|
]
|
|
3082
6079
|
}
|
|
@@ -3127,6 +6124,7 @@ export {
|
|
|
3127
6124
|
BackgroundType,
|
|
3128
6125
|
ButtonDataType,
|
|
3129
6126
|
CardDataBackgroundType,
|
|
6127
|
+
ColumnSize,
|
|
3130
6128
|
Crop,
|
|
3131
6129
|
DayOfWeek,
|
|
3132
6130
|
DecorationType,
|
|
@@ -3170,6 +6168,7 @@ export {
|
|
|
3170
6168
|
ScalarType,
|
|
3171
6169
|
Scaling,
|
|
3172
6170
|
SearchDetailsMode,
|
|
6171
|
+
SmartBlockDataType,
|
|
3173
6172
|
SortDirection,
|
|
3174
6173
|
SortOrder,
|
|
3175
6174
|
SortType,
|