@voyantjs/bookings 0.6.8 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/index.d.ts +8 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/pii.d.ts +10 -9
- package/dist/pii.d.ts.map +1 -1
- package/dist/pii.js +33 -33
- package/dist/products-ref.d.ts +93 -1
- package/dist/products-ref.d.ts.map +1 -1
- package/dist/products-ref.js +12 -1
- package/dist/routes-groups.d.ts +25 -5
- package/dist/routes-groups.d.ts.map +1 -1
- package/dist/routes-groups.js +3 -3
- package/dist/routes-public.d.ts +19 -21
- package/dist/routes-public.d.ts.map +1 -1
- package/dist/routes-public.js +1 -1
- package/dist/routes-shared.d.ts +3 -2
- package/dist/routes-shared.d.ts.map +1 -1
- package/dist/routes.d.ts +283 -188
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +89 -102
- package/dist/schema/travel-details.d.ts +27 -27
- package/dist/schema/travel-details.d.ts.map +1 -1
- package/dist/schema/travel-details.js +19 -14
- package/dist/schema-core.d.ts +194 -305
- package/dist/schema-core.d.ts.map +1 -1
- package/dist/schema-core.js +19 -10
- package/dist/schema-items.d.ts +15 -15
- package/dist/schema-items.d.ts.map +1 -1
- package/dist/schema-items.js +12 -12
- package/dist/schema-operations.d.ts +1 -1
- package/dist/schema-operations.js +3 -3
- package/dist/schema-relations.d.ts +26 -9
- package/dist/schema-relations.d.ts.map +1 -1
- package/dist/schema-relations.js +36 -21
- package/dist/schema-shared.d.ts +3 -2
- package/dist/schema-shared.d.ts.map +1 -1
- package/dist/schema-shared.js +4 -5
- package/dist/schema-staff.d.ts +267 -0
- package/dist/schema-staff.d.ts.map +1 -0
- package/dist/schema-staff.js +31 -0
- package/dist/schema.d.ts +1 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +1 -0
- package/dist/service-groups.d.ts +3 -7
- package/dist/service-groups.d.ts.map +1 -1
- package/dist/service-groups.js +6 -10
- package/dist/service-public.d.ts +102 -55
- package/dist/service-public.d.ts.map +1 -1
- package/dist/service-public.js +119 -54
- package/dist/service.d.ts +327 -104
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +530 -130
- package/dist/transactions-ref.d.ts +930 -66
- package/dist/transactions-ref.d.ts.map +1 -1
- package/dist/transactions-ref.js +56 -2
- package/dist/validation-public.d.ts +29 -69
- package/dist/validation-public.d.ts.map +1 -1
- package/dist/validation-public.js +21 -20
- package/dist/validation-shared.d.ts +4 -5
- package/dist/validation-shared.d.ts.map +1 -1
- package/dist/validation-shared.js +2 -10
- package/dist/validation.d.ts +248 -44
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +103 -28
- package/package.json +6 -6
package/dist/validation.d.ts
CHANGED
|
@@ -23,6 +23,16 @@ export declare const insertBookingSchema: z.ZodObject<{
|
|
|
23
23
|
}>>;
|
|
24
24
|
externalBookingRef: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
25
25
|
communicationLanguage: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
26
|
+
contactFirstName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
27
|
+
contactLastName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
28
|
+
contactEmail: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
29
|
+
contactPhone: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
30
|
+
contactPreferredLanguage: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
31
|
+
contactCountry: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
32
|
+
contactRegion: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
33
|
+
contactCity: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
34
|
+
contactAddressLine1: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
35
|
+
contactPostalCode: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
26
36
|
sellCurrency: z.ZodString;
|
|
27
37
|
baseCurrency: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
28
38
|
sellAmountCents: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
@@ -65,6 +75,16 @@ export declare const updateBookingSchema: z.ZodObject<{
|
|
|
65
75
|
}>>>;
|
|
66
76
|
externalBookingRef: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
67
77
|
communicationLanguage: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
78
|
+
contactFirstName: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
79
|
+
contactLastName: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
80
|
+
contactEmail: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
81
|
+
contactPhone: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
82
|
+
contactPreferredLanguage: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
83
|
+
contactCountry: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
84
|
+
contactRegion: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
85
|
+
contactCity: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
86
|
+
contactAddressLine1: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
87
|
+
contactPostalCode: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
68
88
|
sellCurrency: z.ZodOptional<z.ZodString>;
|
|
69
89
|
baseCurrency: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
70
90
|
sellAmountCents: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodNumber>>>;
|
|
@@ -98,6 +118,16 @@ export declare const createBookingSchema: z.ZodObject<{
|
|
|
98
118
|
organizationId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
99
119
|
externalBookingRef: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
100
120
|
communicationLanguage: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
121
|
+
contactFirstName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
122
|
+
contactLastName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
123
|
+
contactEmail: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
124
|
+
contactPhone: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
125
|
+
contactPreferredLanguage: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
126
|
+
contactCountry: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
127
|
+
contactRegion: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
128
|
+
contactCity: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
129
|
+
contactAddressLine1: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
130
|
+
contactPostalCode: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
101
131
|
sellCurrency: z.ZodString;
|
|
102
132
|
baseCurrency: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
103
133
|
sellAmountCents: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
@@ -131,17 +161,36 @@ export declare const bookingListQuerySchema: z.ZodObject<{
|
|
|
131
161
|
expired: "expired";
|
|
132
162
|
}>>;
|
|
133
163
|
search: z.ZodOptional<z.ZodString>;
|
|
164
|
+
productId: z.ZodOptional<z.ZodString>;
|
|
165
|
+
optionId: z.ZodOptional<z.ZodString>;
|
|
166
|
+
personId: z.ZodOptional<z.ZodString>;
|
|
167
|
+
organizationId: z.ZodOptional<z.ZodString>;
|
|
134
168
|
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
135
169
|
offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
136
170
|
}, z.core.$strip>;
|
|
171
|
+
export declare const bookingAggregatesQuerySchema: z.ZodObject<{
|
|
172
|
+
from: z.ZodOptional<z.ZodString>;
|
|
173
|
+
to: z.ZodOptional<z.ZodString>;
|
|
174
|
+
}, z.core.$strip>;
|
|
137
175
|
export declare const convertProductSchema: z.ZodObject<{
|
|
138
176
|
productId: z.ZodString;
|
|
139
177
|
optionId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
178
|
+
slotId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
140
179
|
bookingNumber: z.ZodString;
|
|
141
180
|
personId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
142
181
|
organizationId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
143
182
|
internalNotes: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
144
183
|
}, z.core.$strip>;
|
|
184
|
+
/**
|
|
185
|
+
* Admin pricing-preview request. Mirrors the storefront pricing session
|
|
186
|
+
* resolver input so the operator dialog sees the same numbers the customer
|
|
187
|
+
* would see for the same product + option + catalog.
|
|
188
|
+
*/
|
|
189
|
+
export declare const pricingPreviewSchema: z.ZodObject<{
|
|
190
|
+
productId: z.ZodString;
|
|
191
|
+
optionId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
192
|
+
catalogId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
193
|
+
}, z.core.$strip>;
|
|
145
194
|
export declare const updateBookingStatusSchema: z.ZodObject<{
|
|
146
195
|
status: z.ZodEnum<{
|
|
147
196
|
cancelled: "cancelled";
|
|
@@ -208,6 +257,16 @@ export declare const reserveBookingSchema: z.ZodObject<{
|
|
|
208
257
|
}>>;
|
|
209
258
|
externalBookingRef: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
210
259
|
communicationLanguage: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
260
|
+
contactFirstName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
261
|
+
contactLastName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
262
|
+
contactEmail: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
263
|
+
contactPhone: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
264
|
+
contactPreferredLanguage: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
265
|
+
contactCountry: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
266
|
+
contactRegion: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
267
|
+
contactCity: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
268
|
+
contactAddressLine1: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
269
|
+
contactPostalCode: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
211
270
|
sellCurrency: z.ZodString;
|
|
212
271
|
baseCurrency: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
213
272
|
sellAmountCents: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
@@ -276,6 +335,17 @@ export declare const expireStaleBookingsSchema: z.ZodObject<{
|
|
|
276
335
|
}, z.core.$strip>;
|
|
277
336
|
export declare const reserveBookingFromTransactionSchema: z.ZodObject<{
|
|
278
337
|
bookingNumber: z.ZodString;
|
|
338
|
+
contactFirstName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
339
|
+
contactLastName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
340
|
+
contactEmail: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
341
|
+
contactPhone: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
342
|
+
contactPreferredLanguage: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
343
|
+
contactCountry: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
344
|
+
contactRegion: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
345
|
+
contactCity: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
346
|
+
contactAddressLine1: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
347
|
+
contactPostalCode: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
348
|
+
internalNotes: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
279
349
|
sourceType: z.ZodDefault<z.ZodEnum<{
|
|
280
350
|
internal: "internal";
|
|
281
351
|
reseller: "reseller";
|
|
@@ -287,18 +357,50 @@ export declare const reserveBookingFromTransactionSchema: z.ZodObject<{
|
|
|
287
357
|
}>>;
|
|
288
358
|
holdMinutes: z.ZodDefault<z.ZodNumber>;
|
|
289
359
|
holdExpiresAt: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
290
|
-
internalNotes: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
291
360
|
note: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
292
361
|
includeParticipants: z.ZodDefault<z.ZodBoolean>;
|
|
293
362
|
}, z.core.$strip>;
|
|
294
|
-
export declare const
|
|
363
|
+
export declare const insertTravelerSchema: z.ZodObject<{
|
|
364
|
+
firstName: z.ZodString;
|
|
365
|
+
lastName: z.ZodString;
|
|
366
|
+
email: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
367
|
+
phone: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
368
|
+
preferredLanguage: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
369
|
+
accessibilityNeeds: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
370
|
+
specialRequests: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
371
|
+
travelerCategory: z.ZodNullable<z.ZodOptional<z.ZodEnum<{
|
|
372
|
+
other: "other";
|
|
373
|
+
adult: "adult";
|
|
374
|
+
child: "child";
|
|
375
|
+
infant: "infant";
|
|
376
|
+
senior: "senior";
|
|
377
|
+
}>>>;
|
|
378
|
+
isPrimary: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
|
|
379
|
+
notes: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
380
|
+
}, z.core.$strip>;
|
|
381
|
+
export declare const updateTravelerSchema: z.ZodObject<{
|
|
382
|
+
firstName: z.ZodOptional<z.ZodString>;
|
|
383
|
+
lastName: z.ZodOptional<z.ZodString>;
|
|
384
|
+
email: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
385
|
+
phone: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
386
|
+
preferredLanguage: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
387
|
+
accessibilityNeeds: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
388
|
+
specialRequests: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
389
|
+
travelerCategory: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodEnum<{
|
|
390
|
+
other: "other";
|
|
391
|
+
adult: "adult";
|
|
392
|
+
child: "child";
|
|
393
|
+
infant: "infant";
|
|
394
|
+
senior: "senior";
|
|
395
|
+
}>>>>;
|
|
396
|
+
isPrimary: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodBoolean>>>;
|
|
397
|
+
notes: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
398
|
+
}, z.core.$strip>;
|
|
399
|
+
export declare const insertTravelerRecordSchema: z.ZodObject<{
|
|
295
400
|
personId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
296
401
|
participantType: z.ZodDefault<z.ZodEnum<{
|
|
297
|
-
staff: "staff";
|
|
298
402
|
other: "other";
|
|
299
403
|
traveler: "traveler";
|
|
300
|
-
booker: "booker";
|
|
301
|
-
contact: "contact";
|
|
302
404
|
occupant: "occupant";
|
|
303
405
|
}>>;
|
|
304
406
|
travelerCategory: z.ZodNullable<z.ZodOptional<z.ZodEnum<{
|
|
@@ -318,14 +420,11 @@ export declare const insertParticipantSchema: z.ZodObject<{
|
|
|
318
420
|
isPrimary: z.ZodDefault<z.ZodBoolean>;
|
|
319
421
|
notes: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
320
422
|
}, z.core.$strip>;
|
|
321
|
-
export declare const
|
|
423
|
+
export declare const updateTravelerRecordSchema: z.ZodObject<{
|
|
322
424
|
personId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
323
425
|
participantType: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
|
|
324
|
-
staff: "staff";
|
|
325
426
|
other: "other";
|
|
326
427
|
traveler: "traveler";
|
|
327
|
-
booker: "booker";
|
|
328
|
-
contact: "contact";
|
|
329
428
|
occupant: "occupant";
|
|
330
429
|
}>>>;
|
|
331
430
|
travelerCategory: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodEnum<{
|
|
@@ -345,23 +444,7 @@ export declare const updateParticipantSchema: z.ZodObject<{
|
|
|
345
444
|
isPrimary: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
346
445
|
notes: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
347
446
|
}, z.core.$strip>;
|
|
348
|
-
export declare const
|
|
349
|
-
firstName: z.ZodString;
|
|
350
|
-
lastName: z.ZodString;
|
|
351
|
-
email: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
352
|
-
phone: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
353
|
-
specialRequests: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
354
|
-
isLeadPassenger: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
|
|
355
|
-
}, z.core.$strip>;
|
|
356
|
-
export declare const updatePassengerSchema: z.ZodObject<{
|
|
357
|
-
firstName: z.ZodOptional<z.ZodString>;
|
|
358
|
-
lastName: z.ZodOptional<z.ZodString>;
|
|
359
|
-
email: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
360
|
-
phone: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
361
|
-
specialRequests: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
362
|
-
isLeadPassenger: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodBoolean>>>;
|
|
363
|
-
}, z.core.$strip>;
|
|
364
|
-
export declare const upsertParticipantTravelDetailsSchema: z.ZodObject<{
|
|
447
|
+
export declare const upsertTravelerTravelDetailsSchema: z.ZodObject<{
|
|
365
448
|
nationality: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
366
449
|
passportNumber: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
367
450
|
passportExpiry: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
@@ -505,9 +588,9 @@ export declare const updateBookingAllocationSchema: z.ZodObject<{
|
|
|
505
588
|
releasedAt: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
506
589
|
metadata: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
|
|
507
590
|
}, z.core.$strip>;
|
|
508
|
-
export declare const insertBookingFulfillmentSchema: z.ZodObject<{
|
|
591
|
+
export declare const insertBookingFulfillmentSchema: z.ZodPipe<z.ZodObject<{
|
|
509
592
|
bookingItemId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
510
|
-
|
|
593
|
+
travelerId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
511
594
|
fulfillmentType: z.ZodEnum<{
|
|
512
595
|
other: "other";
|
|
513
596
|
voucher: "voucher";
|
|
@@ -535,10 +618,30 @@ export declare const insertBookingFulfillmentSchema: z.ZodObject<{
|
|
|
535
618
|
payload: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
536
619
|
issuedAt: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
537
620
|
revokedAt: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
538
|
-
}, z.core.$strip
|
|
539
|
-
|
|
621
|
+
}, z.core.$strip>, z.ZodTransform<{
|
|
622
|
+
travelerId: string | null;
|
|
623
|
+
fulfillmentType: "other" | "voucher" | "ticket" | "pdf" | "qr_code" | "barcode" | "mobile";
|
|
624
|
+
deliveryChannel: "email" | "other" | "download" | "api" | "wallet";
|
|
625
|
+
status: "pending" | "issued" | "reissued" | "revoked" | "failed";
|
|
626
|
+
bookingItemId?: string | null | undefined;
|
|
627
|
+
artifactUrl?: string | null | undefined;
|
|
628
|
+
payload?: Record<string, unknown> | null | undefined;
|
|
629
|
+
issuedAt?: string | null | undefined;
|
|
630
|
+
revokedAt?: string | null | undefined;
|
|
631
|
+
}, {
|
|
632
|
+
fulfillmentType: "other" | "voucher" | "ticket" | "pdf" | "qr_code" | "barcode" | "mobile";
|
|
633
|
+
deliveryChannel: "email" | "other" | "download" | "api" | "wallet";
|
|
634
|
+
status: "pending" | "issued" | "reissued" | "revoked" | "failed";
|
|
635
|
+
bookingItemId?: string | null | undefined;
|
|
636
|
+
travelerId?: string | null | undefined;
|
|
637
|
+
artifactUrl?: string | null | undefined;
|
|
638
|
+
payload?: Record<string, unknown> | null | undefined;
|
|
639
|
+
issuedAt?: string | null | undefined;
|
|
640
|
+
revokedAt?: string | null | undefined;
|
|
641
|
+
}>>;
|
|
642
|
+
export declare const updateBookingFulfillmentSchema: z.ZodPipe<z.ZodObject<{
|
|
540
643
|
bookingItemId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
541
|
-
|
|
644
|
+
travelerId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
542
645
|
fulfillmentType: z.ZodOptional<z.ZodEnum<{
|
|
543
646
|
other: "other";
|
|
544
647
|
voucher: "voucher";
|
|
@@ -566,10 +669,30 @@ export declare const updateBookingFulfillmentSchema: z.ZodObject<{
|
|
|
566
669
|
payload: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
|
|
567
670
|
issuedAt: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
568
671
|
revokedAt: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
569
|
-
}, z.core.$strip
|
|
570
|
-
|
|
672
|
+
}, z.core.$strip>, z.ZodTransform<{
|
|
673
|
+
travelerId: string | null | undefined;
|
|
674
|
+
bookingItemId?: string | null | undefined;
|
|
675
|
+
fulfillmentType?: "other" | "voucher" | "ticket" | "pdf" | "qr_code" | "barcode" | "mobile" | undefined;
|
|
676
|
+
deliveryChannel?: "email" | "other" | "download" | "api" | "wallet" | undefined;
|
|
677
|
+
status?: "pending" | "issued" | "reissued" | "revoked" | "failed" | undefined;
|
|
678
|
+
artifactUrl?: string | null | undefined;
|
|
679
|
+
payload?: Record<string, unknown> | null | undefined;
|
|
680
|
+
issuedAt?: string | null | undefined;
|
|
681
|
+
revokedAt?: string | null | undefined;
|
|
682
|
+
}, {
|
|
683
|
+
bookingItemId?: string | null | undefined;
|
|
684
|
+
travelerId?: string | null | undefined;
|
|
685
|
+
fulfillmentType?: "other" | "voucher" | "ticket" | "pdf" | "qr_code" | "barcode" | "mobile" | undefined;
|
|
686
|
+
deliveryChannel?: "email" | "other" | "download" | "api" | "wallet" | undefined;
|
|
687
|
+
status?: "pending" | "issued" | "reissued" | "revoked" | "failed" | undefined;
|
|
688
|
+
artifactUrl?: string | null | undefined;
|
|
689
|
+
payload?: Record<string, unknown> | null | undefined;
|
|
690
|
+
issuedAt?: string | null | undefined;
|
|
691
|
+
revokedAt?: string | null | undefined;
|
|
692
|
+
}>>;
|
|
693
|
+
export declare const recordBookingRedemptionSchema: z.ZodPipe<z.ZodObject<{
|
|
571
694
|
bookingItemId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
572
|
-
|
|
695
|
+
travelerId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
573
696
|
redeemedAt: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
574
697
|
redeemedBy: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
575
698
|
location: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
@@ -580,19 +703,59 @@ export declare const recordBookingRedemptionSchema: z.ZodObject<{
|
|
|
580
703
|
scan: "scan";
|
|
581
704
|
}>>;
|
|
582
705
|
metadata: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
583
|
-
}, z.core.$strip
|
|
584
|
-
|
|
585
|
-
|
|
706
|
+
}, z.core.$strip>, z.ZodTransform<{
|
|
707
|
+
travelerId: string | null;
|
|
708
|
+
method: "other" | "manual" | "api" | "scan";
|
|
709
|
+
bookingItemId?: string | null | undefined;
|
|
710
|
+
redeemedAt?: string | null | undefined;
|
|
711
|
+
redeemedBy?: string | null | undefined;
|
|
712
|
+
location?: string | null | undefined;
|
|
713
|
+
metadata?: Record<string, unknown> | null | undefined;
|
|
714
|
+
}, {
|
|
715
|
+
method: "other" | "manual" | "api" | "scan";
|
|
716
|
+
bookingItemId?: string | null | undefined;
|
|
717
|
+
travelerId?: string | null | undefined;
|
|
718
|
+
redeemedAt?: string | null | undefined;
|
|
719
|
+
redeemedBy?: string | null | undefined;
|
|
720
|
+
location?: string | null | undefined;
|
|
721
|
+
metadata?: Record<string, unknown> | null | undefined;
|
|
722
|
+
}>>;
|
|
723
|
+
export declare const insertBookingItemTravelerSchema: z.ZodPipe<z.ZodObject<{
|
|
724
|
+
travelerId: z.ZodOptional<z.ZodString>;
|
|
586
725
|
role: z.ZodDefault<z.ZodEnum<{
|
|
587
726
|
other: "other";
|
|
588
727
|
traveler: "traveler";
|
|
589
728
|
occupant: "occupant";
|
|
590
|
-
primary_contact: "primary_contact";
|
|
591
|
-
service_assignee: "service_assignee";
|
|
592
729
|
beneficiary: "beneficiary";
|
|
593
730
|
}>>;
|
|
594
731
|
isPrimary: z.ZodDefault<z.ZodBoolean>;
|
|
595
|
-
}, z.core.$strip
|
|
732
|
+
}, z.core.$strip>, z.ZodTransform<{
|
|
733
|
+
travelerId: string;
|
|
734
|
+
role: "other" | "traveler" | "occupant" | "beneficiary";
|
|
735
|
+
isPrimary: boolean;
|
|
736
|
+
}, {
|
|
737
|
+
role: "other" | "traveler" | "occupant" | "beneficiary";
|
|
738
|
+
isPrimary: boolean;
|
|
739
|
+
travelerId?: string | undefined;
|
|
740
|
+
}>>;
|
|
741
|
+
export declare const insertBookingItemParticipantSchema: z.ZodPipe<z.ZodObject<{
|
|
742
|
+
travelerId: z.ZodOptional<z.ZodString>;
|
|
743
|
+
role: z.ZodDefault<z.ZodEnum<{
|
|
744
|
+
other: "other";
|
|
745
|
+
traveler: "traveler";
|
|
746
|
+
occupant: "occupant";
|
|
747
|
+
beneficiary: "beneficiary";
|
|
748
|
+
}>>;
|
|
749
|
+
isPrimary: z.ZodDefault<z.ZodBoolean>;
|
|
750
|
+
}, z.core.$strip>, z.ZodTransform<{
|
|
751
|
+
travelerId: string;
|
|
752
|
+
role: "other" | "traveler" | "occupant" | "beneficiary";
|
|
753
|
+
isPrimary: boolean;
|
|
754
|
+
}, {
|
|
755
|
+
role: "other" | "traveler" | "occupant" | "beneficiary";
|
|
756
|
+
isPrimary: boolean;
|
|
757
|
+
travelerId?: string | undefined;
|
|
758
|
+
}>>;
|
|
596
759
|
export declare const insertSupplierStatusSchema: z.ZodObject<{
|
|
597
760
|
supplierServiceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
598
761
|
serviceName: z.ZodString;
|
|
@@ -625,9 +788,8 @@ export declare const updateSupplierStatusSchema: z.ZodObject<{
|
|
|
625
788
|
export declare const insertBookingNoteSchema: z.ZodObject<{
|
|
626
789
|
content: z.ZodString;
|
|
627
790
|
}, z.core.$strip>;
|
|
628
|
-
export declare const insertBookingDocumentSchema: z.ZodObject<{
|
|
629
|
-
|
|
630
|
-
passengerId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
791
|
+
export declare const insertBookingDocumentSchema: z.ZodPipe<z.ZodObject<{
|
|
792
|
+
travelerId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
631
793
|
type: z.ZodEnum<{
|
|
632
794
|
visa: "visa";
|
|
633
795
|
other: "other";
|
|
@@ -639,7 +801,49 @@ export declare const insertBookingDocumentSchema: z.ZodObject<{
|
|
|
639
801
|
fileUrl: z.ZodString;
|
|
640
802
|
expiresAt: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
641
803
|
notes: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
642
|
-
}, z.core.$strip
|
|
804
|
+
}, z.core.$strip>, z.ZodTransform<{
|
|
805
|
+
travelerId: string | null;
|
|
806
|
+
type: "visa" | "other" | "insurance" | "health" | "passport_copy";
|
|
807
|
+
fileName: string;
|
|
808
|
+
fileUrl: string;
|
|
809
|
+
expiresAt?: string | null | undefined;
|
|
810
|
+
notes?: string | null | undefined;
|
|
811
|
+
}, {
|
|
812
|
+
type: "visa" | "other" | "insurance" | "health" | "passport_copy";
|
|
813
|
+
fileName: string;
|
|
814
|
+
fileUrl: string;
|
|
815
|
+
travelerId?: string | null | undefined;
|
|
816
|
+
expiresAt?: string | null | undefined;
|
|
817
|
+
notes?: string | null | undefined;
|
|
818
|
+
}>>;
|
|
819
|
+
export declare const insertBookingTravelerDocumentSchema: z.ZodPipe<z.ZodObject<{
|
|
820
|
+
travelerId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
821
|
+
type: z.ZodEnum<{
|
|
822
|
+
visa: "visa";
|
|
823
|
+
other: "other";
|
|
824
|
+
insurance: "insurance";
|
|
825
|
+
health: "health";
|
|
826
|
+
passport_copy: "passport_copy";
|
|
827
|
+
}>;
|
|
828
|
+
fileName: z.ZodString;
|
|
829
|
+
fileUrl: z.ZodString;
|
|
830
|
+
expiresAt: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
831
|
+
notes: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
832
|
+
}, z.core.$strip>, z.ZodTransform<{
|
|
833
|
+
travelerId: string | null;
|
|
834
|
+
type: "visa" | "other" | "insurance" | "health" | "passport_copy";
|
|
835
|
+
fileName: string;
|
|
836
|
+
fileUrl: string;
|
|
837
|
+
expiresAt?: string | null | undefined;
|
|
838
|
+
notes?: string | null | undefined;
|
|
839
|
+
}, {
|
|
840
|
+
type: "visa" | "other" | "insurance" | "health" | "passport_copy";
|
|
841
|
+
fileName: string;
|
|
842
|
+
fileUrl: string;
|
|
843
|
+
travelerId?: string | null | undefined;
|
|
844
|
+
expiresAt?: string | null | undefined;
|
|
845
|
+
notes?: string | null | undefined;
|
|
846
|
+
}>>;
|
|
643
847
|
export declare const bookingGroupKindSchema: z.ZodEnum<{
|
|
644
848
|
other: "other";
|
|
645
849
|
shared_room: "shared_room";
|
package/dist/validation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
|
package/dist/validation.js
CHANGED
|
@@ -9,6 +9,16 @@ const bookingCoreSchema = z.object({
|
|
|
9
9
|
sourceType: bookingSourceTypeSchema.default("manual"),
|
|
10
10
|
externalBookingRef: z.string().optional().nullable(),
|
|
11
11
|
communicationLanguage: z.string().max(35).optional().nullable(),
|
|
12
|
+
contactFirstName: z.string().max(255).optional().nullable(),
|
|
13
|
+
contactLastName: z.string().max(255).optional().nullable(),
|
|
14
|
+
contactEmail: z.string().email().optional().nullable(),
|
|
15
|
+
contactPhone: z.string().max(50).optional().nullable(),
|
|
16
|
+
contactPreferredLanguage: z.string().max(35).optional().nullable(),
|
|
17
|
+
contactCountry: z.string().max(100).optional().nullable(),
|
|
18
|
+
contactRegion: z.string().max(255).optional().nullable(),
|
|
19
|
+
contactCity: z.string().max(255).optional().nullable(),
|
|
20
|
+
contactAddressLine1: z.string().max(255).optional().nullable(),
|
|
21
|
+
contactPostalCode: z.string().max(50).optional().nullable(),
|
|
12
22
|
sellCurrency: z.string().min(3).max(3),
|
|
13
23
|
baseCurrency: z.string().min(3).max(3).optional().nullable(),
|
|
14
24
|
sellAmountCents: z.number().int().min(0).optional().nullable(),
|
|
@@ -44,17 +54,36 @@ export const createBookingSchema = bookingCoreSchema
|
|
|
44
54
|
export const bookingListQuerySchema = z.object({
|
|
45
55
|
status: bookingStatusSchema.optional(),
|
|
46
56
|
search: z.string().optional(),
|
|
57
|
+
productId: z.string().optional(),
|
|
58
|
+
optionId: z.string().optional(),
|
|
59
|
+
personId: z.string().optional(),
|
|
60
|
+
organizationId: z.string().optional(),
|
|
47
61
|
limit: z.coerce.number().int().min(1).max(100).default(50),
|
|
48
62
|
offset: z.coerce.number().int().min(0).default(0),
|
|
49
63
|
});
|
|
64
|
+
export const bookingAggregatesQuerySchema = z.object({
|
|
65
|
+
from: z.string().datetime().optional(),
|
|
66
|
+
to: z.string().datetime().optional(),
|
|
67
|
+
});
|
|
50
68
|
export const convertProductSchema = z.object({
|
|
51
69
|
productId: z.string().min(1),
|
|
52
70
|
optionId: z.string().optional().nullable(),
|
|
71
|
+
slotId: z.string().optional().nullable(),
|
|
53
72
|
bookingNumber: z.string().min(1).max(50),
|
|
54
73
|
personId: z.string().optional().nullable(),
|
|
55
74
|
organizationId: z.string().optional().nullable(),
|
|
56
75
|
internalNotes: z.string().optional().nullable(),
|
|
57
76
|
});
|
|
77
|
+
/**
|
|
78
|
+
* Admin pricing-preview request. Mirrors the storefront pricing session
|
|
79
|
+
* resolver input so the operator dialog sees the same numbers the customer
|
|
80
|
+
* would see for the same product + option + catalog.
|
|
81
|
+
*/
|
|
82
|
+
export const pricingPreviewSchema = z.object({
|
|
83
|
+
productId: z.string().min(1),
|
|
84
|
+
optionId: z.string().optional().nullable(),
|
|
85
|
+
catalogId: z.string().optional().nullable(),
|
|
86
|
+
});
|
|
58
87
|
export const updateBookingStatusSchema = z.object({
|
|
59
88
|
status: bookingStatusSchema,
|
|
60
89
|
note: z.string().optional().nullable(),
|
|
@@ -127,8 +156,23 @@ export const expireStaleBookingsSchema = z.object({
|
|
|
127
156
|
before: z.string().datetime().optional().nullable(),
|
|
128
157
|
note: z.string().optional().nullable(),
|
|
129
158
|
});
|
|
130
|
-
export const reserveBookingFromTransactionSchema =
|
|
131
|
-
|
|
159
|
+
export const reserveBookingFromTransactionSchema = bookingCoreSchema
|
|
160
|
+
.pick({
|
|
161
|
+
bookingNumber: true,
|
|
162
|
+
sourceType: true,
|
|
163
|
+
contactFirstName: true,
|
|
164
|
+
contactLastName: true,
|
|
165
|
+
contactEmail: true,
|
|
166
|
+
contactPhone: true,
|
|
167
|
+
contactPreferredLanguage: true,
|
|
168
|
+
contactCountry: true,
|
|
169
|
+
contactRegion: true,
|
|
170
|
+
contactCity: true,
|
|
171
|
+
contactAddressLine1: true,
|
|
172
|
+
contactPostalCode: true,
|
|
173
|
+
internalNotes: true,
|
|
174
|
+
})
|
|
175
|
+
.extend({
|
|
132
176
|
sourceType: bookingSourceTypeSchema.default("internal"),
|
|
133
177
|
holdMinutes: z
|
|
134
178
|
.number()
|
|
@@ -137,12 +181,11 @@ export const reserveBookingFromTransactionSchema = z.object({
|
|
|
137
181
|
.max(24 * 60)
|
|
138
182
|
.default(30),
|
|
139
183
|
holdExpiresAt: z.string().datetime().optional().nullable(),
|
|
140
|
-
internalNotes: z.string().optional().nullable(),
|
|
141
184
|
note: z.string().optional().nullable(),
|
|
142
185
|
includeParticipants: z.boolean().default(true),
|
|
143
186
|
});
|
|
144
|
-
// ----------
|
|
145
|
-
const
|
|
187
|
+
// ---------- traveler records ----------
|
|
188
|
+
const travelerRecordCoreSchema = z.object({
|
|
146
189
|
personId: z.string().optional().nullable(),
|
|
147
190
|
participantType: bookingParticipantTypeSchema.default("traveler"),
|
|
148
191
|
travelerCategory: bookingTravelerCategorySchema.optional().nullable(),
|
|
@@ -156,21 +199,25 @@ const participantCoreSchema = z.object({
|
|
|
156
199
|
isPrimary: z.boolean().default(false),
|
|
157
200
|
notes: z.string().optional().nullable(),
|
|
158
201
|
});
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
// ---------- passengers (legacy compatibility) ----------
|
|
162
|
-
const passengerCoreSchema = z.object({
|
|
202
|
+
// ---------- travelers ----------
|
|
203
|
+
const travelerCoreSchema = z.object({
|
|
163
204
|
firstName: z.string().min(1).max(255),
|
|
164
205
|
lastName: z.string().min(1).max(255),
|
|
165
206
|
email: z.string().email().optional().nullable(),
|
|
166
207
|
phone: z.string().max(50).optional().nullable(),
|
|
208
|
+
preferredLanguage: z.string().max(35).optional().nullable(),
|
|
209
|
+
accessibilityNeeds: z.string().optional().nullable(),
|
|
167
210
|
specialRequests: z.string().optional().nullable(),
|
|
168
|
-
|
|
211
|
+
travelerCategory: bookingTravelerCategorySchema.optional().nullable(),
|
|
212
|
+
isPrimary: z.boolean().optional().nullable(),
|
|
213
|
+
notes: z.string().optional().nullable(),
|
|
169
214
|
});
|
|
170
|
-
export const
|
|
171
|
-
export const
|
|
172
|
-
|
|
173
|
-
export const
|
|
215
|
+
export const insertTravelerSchema = travelerCoreSchema;
|
|
216
|
+
export const updateTravelerSchema = travelerCoreSchema.partial();
|
|
217
|
+
export const insertTravelerRecordSchema = travelerRecordCoreSchema;
|
|
218
|
+
export const updateTravelerRecordSchema = travelerRecordCoreSchema.partial();
|
|
219
|
+
// ---------- traveler travel details ----------
|
|
220
|
+
export const upsertTravelerTravelDetailsSchema = z.object({
|
|
174
221
|
nationality: z.string().max(100).optional().nullable(),
|
|
175
222
|
passportNumber: z.string().max(255).optional().nullable(),
|
|
176
223
|
passportExpiry: z.string().optional().nullable(),
|
|
@@ -222,9 +269,9 @@ export const insertBookingAllocationSchema = z.object({
|
|
|
222
269
|
});
|
|
223
270
|
export const updateBookingAllocationSchema = insertBookingAllocationSchema.partial();
|
|
224
271
|
// ---------- booking fulfillments ----------
|
|
225
|
-
const
|
|
272
|
+
const bookingFulfillmentInputSchema = z.object({
|
|
226
273
|
bookingItemId: z.string().optional().nullable(),
|
|
227
|
-
|
|
274
|
+
travelerId: z.string().optional().nullable(),
|
|
228
275
|
fulfillmentType: bookingFulfillmentTypeSchema,
|
|
229
276
|
deliveryChannel: bookingFulfillmentDeliveryChannelSchema,
|
|
230
277
|
status: bookingFulfillmentStatusSchema.default("issued"),
|
|
@@ -233,24 +280,47 @@ const bookingFulfillmentCoreSchema = z.object({
|
|
|
233
280
|
issuedAt: z.string().datetime().optional().nullable(),
|
|
234
281
|
revokedAt: z.string().datetime().optional().nullable(),
|
|
235
282
|
});
|
|
236
|
-
export const insertBookingFulfillmentSchema =
|
|
237
|
-
|
|
283
|
+
export const insertBookingFulfillmentSchema = bookingFulfillmentInputSchema.transform(({ travelerId, ...rest }) => ({
|
|
284
|
+
...rest,
|
|
285
|
+
travelerId: travelerId ?? null,
|
|
286
|
+
}));
|
|
287
|
+
export const updateBookingFulfillmentSchema = bookingFulfillmentInputSchema
|
|
288
|
+
.partial()
|
|
289
|
+
.transform(({ travelerId, ...rest }) => ({
|
|
290
|
+
...rest,
|
|
291
|
+
travelerId: travelerId !== undefined ? (travelerId ?? null) : undefined,
|
|
292
|
+
}));
|
|
238
293
|
// ---------- booking redemption events ----------
|
|
239
|
-
export const recordBookingRedemptionSchema = z
|
|
294
|
+
export const recordBookingRedemptionSchema = z
|
|
295
|
+
.object({
|
|
240
296
|
bookingItemId: z.string().optional().nullable(),
|
|
241
|
-
|
|
297
|
+
travelerId: z.string().optional().nullable(),
|
|
242
298
|
redeemedAt: z.string().datetime().optional().nullable(),
|
|
243
299
|
redeemedBy: z.string().max(255).optional().nullable(),
|
|
244
300
|
location: z.string().max(500).optional().nullable(),
|
|
245
301
|
method: bookingRedemptionMethodSchema.default("manual"),
|
|
246
302
|
metadata: z.record(z.string(), z.unknown()).optional().nullable(),
|
|
247
|
-
})
|
|
303
|
+
})
|
|
304
|
+
.transform(({ travelerId, ...rest }) => ({
|
|
305
|
+
...rest,
|
|
306
|
+
travelerId: travelerId ?? null,
|
|
307
|
+
}));
|
|
248
308
|
// ---------- booking item participants ----------
|
|
249
|
-
export const
|
|
250
|
-
|
|
309
|
+
export const insertBookingItemTravelerSchema = z
|
|
310
|
+
.object({
|
|
311
|
+
travelerId: z.string().min(1).optional(),
|
|
251
312
|
role: bookingItemParticipantRoleSchema.default("traveler"),
|
|
252
313
|
isPrimary: z.boolean().default(false),
|
|
253
|
-
})
|
|
314
|
+
})
|
|
315
|
+
.refine((value) => Boolean(value.travelerId), {
|
|
316
|
+
message: "travelerId is required",
|
|
317
|
+
path: ["travelerId"],
|
|
318
|
+
})
|
|
319
|
+
.transform(({ travelerId, ...rest }) => ({
|
|
320
|
+
...rest,
|
|
321
|
+
travelerId: travelerId,
|
|
322
|
+
}));
|
|
323
|
+
export const insertBookingItemParticipantSchema = insertBookingItemTravelerSchema;
|
|
254
324
|
// ---------- supplier statuses ----------
|
|
255
325
|
const supplierStatusCoreSchema = z.object({
|
|
256
326
|
supplierServiceId: z.string().optional().nullable(),
|
|
@@ -270,15 +340,20 @@ export const insertBookingNoteSchema = z.object({
|
|
|
270
340
|
content: z.string().min(1).max(10000),
|
|
271
341
|
});
|
|
272
342
|
// ---------- documents ----------
|
|
273
|
-
export const insertBookingDocumentSchema = z
|
|
274
|
-
|
|
275
|
-
|
|
343
|
+
export const insertBookingDocumentSchema = z
|
|
344
|
+
.object({
|
|
345
|
+
travelerId: z.string().optional().nullable(),
|
|
276
346
|
type: bookingDocumentTypeSchema,
|
|
277
347
|
fileName: z.string().min(1).max(500),
|
|
278
348
|
fileUrl: z.string().url(),
|
|
279
349
|
expiresAt: z.string().optional().nullable(),
|
|
280
350
|
notes: z.string().optional().nullable(),
|
|
281
|
-
})
|
|
351
|
+
})
|
|
352
|
+
.transform(({ travelerId, ...rest }) => ({
|
|
353
|
+
...rest,
|
|
354
|
+
travelerId: travelerId ?? null,
|
|
355
|
+
}));
|
|
356
|
+
export const insertBookingTravelerDocumentSchema = insertBookingDocumentSchema;
|
|
282
357
|
// ---------- booking groups ----------
|
|
283
358
|
export const bookingGroupKindSchema = z.enum(["shared_room", "other"]);
|
|
284
359
|
export const bookingGroupMemberRoleSchema = z.enum(["primary", "shared"]);
|