@voyantjs/sellability 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/dist/routes.d.ts +48 -4
- package/dist/routes.d.ts.map +1 -1
- package/dist/service.d.ts +48 -4
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +57 -10
- package/dist/validation.d.ts +42 -6
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +26 -4
- package/package.json +10 -10
package/dist/routes.d.ts
CHANGED
|
@@ -372,6 +372,8 @@ export declare const sellabilityRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
372
372
|
costAmountCents: number;
|
|
373
373
|
title: string;
|
|
374
374
|
validFrom: string | null;
|
|
375
|
+
contactEmail: string | null;
|
|
376
|
+
contactPhone: string | null;
|
|
375
377
|
marketId: string | null;
|
|
376
378
|
baseCurrency: string | null;
|
|
377
379
|
fxRateSetId: string | null;
|
|
@@ -380,6 +382,14 @@ export declare const sellabilityRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
380
382
|
opportunityId: string | null;
|
|
381
383
|
quoteId: string | null;
|
|
382
384
|
sourceChannelId: string | null;
|
|
385
|
+
contactFirstName: string | null;
|
|
386
|
+
contactLastName: string | null;
|
|
387
|
+
contactPreferredLanguage: string | null;
|
|
388
|
+
contactCountry: string | null;
|
|
389
|
+
contactRegion: string | null;
|
|
390
|
+
contactCity: string | null;
|
|
391
|
+
contactAddressLine1: string | null;
|
|
392
|
+
contactPostalCode: string | null;
|
|
383
393
|
subtotalAmountCents: number;
|
|
384
394
|
taxAmountCents: number;
|
|
385
395
|
feeAmountCents: number;
|
|
@@ -389,11 +399,11 @@ export declare const sellabilityRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
389
399
|
acceptedAt: string | null;
|
|
390
400
|
convertedAt: string | null;
|
|
391
401
|
};
|
|
392
|
-
|
|
402
|
+
travelers: {
|
|
393
403
|
id: string;
|
|
394
404
|
offerId: string;
|
|
395
405
|
personId: string | null;
|
|
396
|
-
participantType: "staff" | "other" | "traveler" | "
|
|
406
|
+
participantType: "staff" | "other" | "traveler" | "occupant";
|
|
397
407
|
travelerCategory: "other" | "adult" | "child" | "infant" | "senior" | null;
|
|
398
408
|
firstName: string;
|
|
399
409
|
lastName: string;
|
|
@@ -406,6 +416,40 @@ export declare const sellabilityRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
406
416
|
createdAt: string;
|
|
407
417
|
updatedAt: string;
|
|
408
418
|
}[];
|
|
419
|
+
contactAssignments: {
|
|
420
|
+
metadata: import("hono/utils/types").JSONValue;
|
|
421
|
+
id: string;
|
|
422
|
+
createdAt: string;
|
|
423
|
+
updatedAt: string;
|
|
424
|
+
email: string | null;
|
|
425
|
+
role: "other" | "primary_contact";
|
|
426
|
+
notes: string | null;
|
|
427
|
+
firstName: string;
|
|
428
|
+
lastName: string;
|
|
429
|
+
phone: string | null;
|
|
430
|
+
isPrimary: boolean;
|
|
431
|
+
personId: string | null;
|
|
432
|
+
offerId: string;
|
|
433
|
+
preferredLanguage: string | null;
|
|
434
|
+
offerItemId: string | null;
|
|
435
|
+
}[];
|
|
436
|
+
staffAssignments: {
|
|
437
|
+
metadata: import("hono/utils/types").JSONValue;
|
|
438
|
+
id: string;
|
|
439
|
+
createdAt: string;
|
|
440
|
+
updatedAt: string;
|
|
441
|
+
email: string | null;
|
|
442
|
+
role: "other" | "service_assignee";
|
|
443
|
+
notes: string | null;
|
|
444
|
+
firstName: string;
|
|
445
|
+
lastName: string;
|
|
446
|
+
phone: string | null;
|
|
447
|
+
isPrimary: boolean;
|
|
448
|
+
personId: string | null;
|
|
449
|
+
offerId: string;
|
|
450
|
+
preferredLanguage: string | null;
|
|
451
|
+
offerItemId: string | null;
|
|
452
|
+
}[];
|
|
409
453
|
items: {
|
|
410
454
|
metadata: import("hono/utils/types").JSONValue;
|
|
411
455
|
id: string;
|
|
@@ -434,12 +478,12 @@ export declare const sellabilityRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
434
478
|
unitCostAmountCents: number | null;
|
|
435
479
|
totalCostAmountCents: number | null;
|
|
436
480
|
}[];
|
|
437
|
-
|
|
481
|
+
itemTravelers: {
|
|
438
482
|
id: string;
|
|
439
483
|
createdAt: string;
|
|
440
484
|
role: "other" | "traveler" | "occupant" | "primary_contact" | "beneficiary" | "service_assignee";
|
|
441
485
|
isPrimary: boolean;
|
|
442
|
-
|
|
486
|
+
travelerId: string;
|
|
443
487
|
offerItemId: string;
|
|
444
488
|
}[];
|
|
445
489
|
};
|
package/dist/routes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AA2BjE,KAAK,GAAG,GAAG;IACT,SAAS,EAAE;QACT,EAAE,EAAE,kBAAkB,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AA2BjE,KAAK,GAAG,GAAG;IACT,SAAS,EAAE;QACT,EAAE,EAAE,kBAAkB,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAuM1B,CAAA;AAEJ,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAA"}
|
package/dist/service.d.ts
CHANGED
|
@@ -160,6 +160,8 @@ export declare const sellabilityService: {
|
|
|
160
160
|
costAmountCents: number;
|
|
161
161
|
title: string;
|
|
162
162
|
validFrom: string | null;
|
|
163
|
+
contactEmail: string | null;
|
|
164
|
+
contactPhone: string | null;
|
|
163
165
|
marketId: string | null;
|
|
164
166
|
baseCurrency: string | null;
|
|
165
167
|
fxRateSetId: string | null;
|
|
@@ -168,6 +170,14 @@ export declare const sellabilityService: {
|
|
|
168
170
|
opportunityId: string | null;
|
|
169
171
|
quoteId: string | null;
|
|
170
172
|
sourceChannelId: string | null;
|
|
173
|
+
contactFirstName: string | null;
|
|
174
|
+
contactLastName: string | null;
|
|
175
|
+
contactPreferredLanguage: string | null;
|
|
176
|
+
contactCountry: string | null;
|
|
177
|
+
contactRegion: string | null;
|
|
178
|
+
contactCity: string | null;
|
|
179
|
+
contactAddressLine1: string | null;
|
|
180
|
+
contactPostalCode: string | null;
|
|
171
181
|
subtotalAmountCents: number;
|
|
172
182
|
taxAmountCents: number;
|
|
173
183
|
feeAmountCents: number;
|
|
@@ -177,11 +187,11 @@ export declare const sellabilityService: {
|
|
|
177
187
|
acceptedAt: Date | null;
|
|
178
188
|
convertedAt: Date | null;
|
|
179
189
|
};
|
|
180
|
-
|
|
190
|
+
travelers: {
|
|
181
191
|
id: string;
|
|
182
192
|
offerId: string;
|
|
183
193
|
personId: string | null;
|
|
184
|
-
participantType: "staff" | "other" | "traveler" | "
|
|
194
|
+
participantType: "staff" | "other" | "traveler" | "occupant";
|
|
185
195
|
travelerCategory: "other" | "adult" | "child" | "infant" | "senior" | null;
|
|
186
196
|
firstName: string;
|
|
187
197
|
lastName: string;
|
|
@@ -194,6 +204,40 @@ export declare const sellabilityService: {
|
|
|
194
204
|
createdAt: Date;
|
|
195
205
|
updatedAt: Date;
|
|
196
206
|
}[];
|
|
207
|
+
contactAssignments: {
|
|
208
|
+
metadata: unknown;
|
|
209
|
+
id: string;
|
|
210
|
+
createdAt: Date;
|
|
211
|
+
updatedAt: Date;
|
|
212
|
+
email: string | null;
|
|
213
|
+
role: "other" | "primary_contact";
|
|
214
|
+
notes: string | null;
|
|
215
|
+
firstName: string;
|
|
216
|
+
lastName: string;
|
|
217
|
+
phone: string | null;
|
|
218
|
+
isPrimary: boolean;
|
|
219
|
+
personId: string | null;
|
|
220
|
+
offerId: string;
|
|
221
|
+
preferredLanguage: string | null;
|
|
222
|
+
offerItemId: string | null;
|
|
223
|
+
}[];
|
|
224
|
+
staffAssignments: {
|
|
225
|
+
metadata: unknown;
|
|
226
|
+
id: string;
|
|
227
|
+
createdAt: Date;
|
|
228
|
+
updatedAt: Date;
|
|
229
|
+
email: string | null;
|
|
230
|
+
role: "other" | "service_assignee";
|
|
231
|
+
notes: string | null;
|
|
232
|
+
firstName: string;
|
|
233
|
+
lastName: string;
|
|
234
|
+
phone: string | null;
|
|
235
|
+
isPrimary: boolean;
|
|
236
|
+
personId: string | null;
|
|
237
|
+
offerId: string;
|
|
238
|
+
preferredLanguage: string | null;
|
|
239
|
+
offerItemId: string | null;
|
|
240
|
+
}[];
|
|
197
241
|
items: {
|
|
198
242
|
metadata: unknown;
|
|
199
243
|
id: string;
|
|
@@ -222,12 +266,12 @@ export declare const sellabilityService: {
|
|
|
222
266
|
unitCostAmountCents: number | null;
|
|
223
267
|
totalCostAmountCents: number | null;
|
|
224
268
|
}[];
|
|
225
|
-
|
|
269
|
+
itemTravelers: {
|
|
226
270
|
id: string;
|
|
227
271
|
createdAt: Date;
|
|
228
272
|
role: "other" | "traveler" | "occupant" | "primary_contact" | "beneficiary" | "service_assignee";
|
|
229
273
|
isPrimary: boolean;
|
|
230
|
-
|
|
274
|
+
travelerId: string;
|
|
231
275
|
offerItemId: string;
|
|
232
276
|
}[];
|
|
233
277
|
} | null>;
|
package/dist/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/dist/service.js
CHANGED
|
@@ -118,9 +118,6 @@ function defaultItemParticipantRole(participant) {
|
|
|
118
118
|
return participant.itemParticipantRole;
|
|
119
119
|
if (participant.participantType === "occupant")
|
|
120
120
|
return "occupant";
|
|
121
|
-
if (participant.participantType === "booker" || participant.participantType === "contact") {
|
|
122
|
-
return "primary_contact";
|
|
123
|
-
}
|
|
124
121
|
if (participant.participantType === "staff")
|
|
125
122
|
return "service_assignee";
|
|
126
123
|
return "traveler";
|
|
@@ -317,6 +314,7 @@ export const sellabilityService = {
|
|
|
317
314
|
.filter((index) => index >= 0);
|
|
318
315
|
const fallbackLinkableItemIndex = linkableItemIndexes[0] ?? (itemDrafts.length > 0 ? 0 : null);
|
|
319
316
|
const itemParticipants = [];
|
|
317
|
+
const contactAssignments = [];
|
|
320
318
|
input.participants.forEach((participant, participantIndex) => {
|
|
321
319
|
const explicitRefs = new Set(participant.requestedUnitRefs);
|
|
322
320
|
let targetIndexes = itemDrafts
|
|
@@ -327,11 +325,6 @@ export const sellabilityService = {
|
|
|
327
325
|
isAssignableParticipantType(participant.participantType)) {
|
|
328
326
|
targetIndexes = linkableItemIndexes;
|
|
329
327
|
}
|
|
330
|
-
else if (participant.isPrimary &&
|
|
331
|
-
(participant.participantType === "booker" || participant.participantType === "contact") &&
|
|
332
|
-
fallbackLinkableItemIndex !== null) {
|
|
333
|
-
targetIndexes = [fallbackLinkableItemIndex];
|
|
334
|
-
}
|
|
335
328
|
}
|
|
336
329
|
const dedupedIndexes = [...new Set(targetIndexes)];
|
|
337
330
|
dedupedIndexes.forEach((itemIndex, linkIndex) => {
|
|
@@ -343,6 +336,49 @@ export const sellabilityService = {
|
|
|
343
336
|
});
|
|
344
337
|
});
|
|
345
338
|
});
|
|
339
|
+
input.contactAssignments.forEach((contactAssignment) => {
|
|
340
|
+
const explicitRefs = new Set(contactAssignment.requestedUnitRefs);
|
|
341
|
+
let targetIndexes = itemDrafts
|
|
342
|
+
.map((item, itemIndex) => item.requestRef && explicitRefs.has(item.requestRef) ? itemIndex : -1)
|
|
343
|
+
.filter((itemIndex) => itemIndex >= 0);
|
|
344
|
+
if (targetIndexes.length === 0) {
|
|
345
|
+
if (contactAssignment.assignToAllItems) {
|
|
346
|
+
targetIndexes = linkableItemIndexes;
|
|
347
|
+
}
|
|
348
|
+
else if (contactAssignment.isPrimary && fallbackLinkableItemIndex !== null) {
|
|
349
|
+
targetIndexes = [fallbackLinkableItemIndex];
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
const dedupedIndexes = [...new Set(targetIndexes)];
|
|
353
|
+
if (dedupedIndexes.length === 0) {
|
|
354
|
+
contactAssignments.push({
|
|
355
|
+
role: contactAssignment.role,
|
|
356
|
+
personId: contactAssignment.personId ?? null,
|
|
357
|
+
firstName: contactAssignment.firstName,
|
|
358
|
+
lastName: contactAssignment.lastName,
|
|
359
|
+
email: contactAssignment.email ?? null,
|
|
360
|
+
phone: contactAssignment.phone ?? null,
|
|
361
|
+
preferredLanguage: contactAssignment.preferredLanguage ?? null,
|
|
362
|
+
isPrimary: Boolean(contactAssignment.isPrimary),
|
|
363
|
+
notes: contactAssignment.notes ?? null,
|
|
364
|
+
});
|
|
365
|
+
return;
|
|
366
|
+
}
|
|
367
|
+
dedupedIndexes.forEach((itemIndex, linkIndex) => {
|
|
368
|
+
contactAssignments.push({
|
|
369
|
+
itemIndex,
|
|
370
|
+
role: contactAssignment.role,
|
|
371
|
+
personId: contactAssignment.personId ?? null,
|
|
372
|
+
firstName: contactAssignment.firstName,
|
|
373
|
+
lastName: contactAssignment.lastName,
|
|
374
|
+
email: contactAssignment.email ?? null,
|
|
375
|
+
phone: contactAssignment.phone ?? null,
|
|
376
|
+
preferredLanguage: contactAssignment.preferredLanguage ?? null,
|
|
377
|
+
isPrimary: Boolean(contactAssignment.isPrimary) && linkIndex === 0,
|
|
378
|
+
notes: contactAssignment.notes ?? null,
|
|
379
|
+
});
|
|
380
|
+
});
|
|
381
|
+
});
|
|
346
382
|
const selectedCandidateIndex = resolved.data.findIndex((row) => row.slot.id === candidate.slot.id);
|
|
347
383
|
const created = await transactionsService.createOfferBundle(db, {
|
|
348
384
|
offer: {
|
|
@@ -353,6 +389,16 @@ export const sellabilityService = {
|
|
|
353
389
|
organizationId: input.offer.organizationId ?? null,
|
|
354
390
|
opportunityId: input.offer.opportunityId ?? null,
|
|
355
391
|
quoteId: input.offer.quoteId ?? null,
|
|
392
|
+
contactFirstName: input.offer.contactFirstName ?? null,
|
|
393
|
+
contactLastName: input.offer.contactLastName ?? null,
|
|
394
|
+
contactEmail: input.offer.contactEmail ?? null,
|
|
395
|
+
contactPhone: input.offer.contactPhone ?? null,
|
|
396
|
+
contactPreferredLanguage: input.offer.contactPreferredLanguage ?? null,
|
|
397
|
+
contactCountry: input.offer.contactCountry ?? null,
|
|
398
|
+
contactRegion: input.offer.contactRegion ?? null,
|
|
399
|
+
contactCity: input.offer.contactCity ?? null,
|
|
400
|
+
contactAddressLine1: input.offer.contactAddressLine1 ?? null,
|
|
401
|
+
contactPostalCode: input.offer.contactPostalCode ?? null,
|
|
356
402
|
marketId: candidate.market?.id ?? input.query.marketId ?? null,
|
|
357
403
|
sourceChannelId: candidate.channel?.id ?? input.query.channelId ?? null,
|
|
358
404
|
currency: candidate.pricing.currencyCode,
|
|
@@ -377,9 +423,10 @@ export const sellabilityService = {
|
|
|
377
423
|
},
|
|
378
424
|
},
|
|
379
425
|
},
|
|
380
|
-
|
|
426
|
+
travelers: bundleParticipants,
|
|
427
|
+
contactAssignments,
|
|
381
428
|
items: itemDrafts.map(({ requestRef: _requestRef, participantLinkable: _participantLinkable, ...item }) => item),
|
|
382
|
-
itemParticipants,
|
|
429
|
+
itemTravelers: itemParticipants,
|
|
383
430
|
});
|
|
384
431
|
if (!created) {
|
|
385
432
|
return null;
|
package/dist/validation.d.ts
CHANGED
|
@@ -79,8 +79,6 @@ export declare const sellabilityOfferParticipantSchema: z.ZodObject<{
|
|
|
79
79
|
staff: "staff";
|
|
80
80
|
other: "other";
|
|
81
81
|
traveler: "traveler";
|
|
82
|
-
booker: "booker";
|
|
83
|
-
contact: "contact";
|
|
84
82
|
occupant: "occupant";
|
|
85
83
|
}>>;
|
|
86
84
|
travelerCategory: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
@@ -105,11 +103,26 @@ export declare const sellabilityOfferParticipantSchema: z.ZodObject<{
|
|
|
105
103
|
other: "other";
|
|
106
104
|
traveler: "traveler";
|
|
107
105
|
occupant: "occupant";
|
|
108
|
-
primary_contact: "primary_contact";
|
|
109
106
|
beneficiary: "beneficiary";
|
|
110
107
|
service_assignee: "service_assignee";
|
|
111
108
|
}>>;
|
|
112
109
|
}, z.core.$strip>;
|
|
110
|
+
export declare const sellabilityOfferContactAssignmentSchema: z.ZodObject<{
|
|
111
|
+
personId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
112
|
+
role: z.ZodDefault<z.ZodEnum<{
|
|
113
|
+
other: "other";
|
|
114
|
+
primary_contact: "primary_contact";
|
|
115
|
+
}>>;
|
|
116
|
+
firstName: z.ZodString;
|
|
117
|
+
lastName: z.ZodString;
|
|
118
|
+
email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
119
|
+
phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
120
|
+
preferredLanguage: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
121
|
+
isPrimary: z.ZodDefault<z.ZodBoolean>;
|
|
122
|
+
notes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
123
|
+
requestedUnitRefs: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
124
|
+
assignToAllItems: z.ZodDefault<z.ZodBoolean>;
|
|
125
|
+
}, z.core.$strip>;
|
|
113
126
|
export declare const sellabilityConstructOfferSchema: z.ZodObject<{
|
|
114
127
|
query: z.ZodObject<{
|
|
115
128
|
productId: z.ZodOptional<z.ZodString>;
|
|
@@ -145,6 +158,16 @@ export declare const sellabilityConstructOfferSchema: z.ZodObject<{
|
|
|
145
158
|
organizationId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
146
159
|
opportunityId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
147
160
|
quoteId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
161
|
+
contactFirstName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
162
|
+
contactLastName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
163
|
+
contactEmail: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
164
|
+
contactPhone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
165
|
+
contactPreferredLanguage: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
166
|
+
contactCountry: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
167
|
+
contactRegion: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
168
|
+
contactCity: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
169
|
+
contactAddressLine1: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
170
|
+
contactPostalCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
148
171
|
validFrom: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
149
172
|
validUntil: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
150
173
|
notes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -156,8 +179,6 @@ export declare const sellabilityConstructOfferSchema: z.ZodObject<{
|
|
|
156
179
|
staff: "staff";
|
|
157
180
|
other: "other";
|
|
158
181
|
traveler: "traveler";
|
|
159
|
-
booker: "booker";
|
|
160
|
-
contact: "contact";
|
|
161
182
|
occupant: "occupant";
|
|
162
183
|
}>>;
|
|
163
184
|
travelerCategory: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
@@ -182,11 +203,26 @@ export declare const sellabilityConstructOfferSchema: z.ZodObject<{
|
|
|
182
203
|
other: "other";
|
|
183
204
|
traveler: "traveler";
|
|
184
205
|
occupant: "occupant";
|
|
185
|
-
primary_contact: "primary_contact";
|
|
186
206
|
beneficiary: "beneficiary";
|
|
187
207
|
service_assignee: "service_assignee";
|
|
188
208
|
}>>;
|
|
189
209
|
}, z.core.$strip>>>;
|
|
210
|
+
contactAssignments: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
211
|
+
personId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
212
|
+
role: z.ZodDefault<z.ZodEnum<{
|
|
213
|
+
other: "other";
|
|
214
|
+
primary_contact: "primary_contact";
|
|
215
|
+
}>>;
|
|
216
|
+
firstName: z.ZodString;
|
|
217
|
+
lastName: z.ZodString;
|
|
218
|
+
email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
219
|
+
phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
220
|
+
preferredLanguage: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
221
|
+
isPrimary: z.ZodDefault<z.ZodBoolean>;
|
|
222
|
+
notes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
223
|
+
requestedUnitRefs: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
224
|
+
assignToAllItems: z.ZodDefault<z.ZodBoolean>;
|
|
225
|
+
}, z.core.$strip>>>;
|
|
190
226
|
}, z.core.$strip>;
|
|
191
227
|
export declare const sellabilityPersistSnapshotSchema: z.ZodObject<{
|
|
192
228
|
query: z.ZodObject<{
|
package/dist/validation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,mBAAmB;;;;;iBAK9B,CAAA;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;iBAYxC,CAAA;AAEF,eAAO,MAAM,+BAA+B;;;;EAAuD,CAAA;AACnG,eAAO,MAAM,4BAA4B;;;;;;EAMvC,CAAA;AACF,eAAO,MAAM,2BAA2B;;;;;;;;;EAStC,CAAA;AACF,eAAO,MAAM,mCAAmC;;;;;EAK9C,CAAA;AACF,eAAO,MAAM,2BAA2B;;;;;;EAMtC,CAAA;AACF,eAAO,MAAM,gCAAgC;;;;;EAK3C,CAAA;AACF,eAAO,MAAM,gCAAgC;;;;;;;;EAQ3C,CAAA;AAEF,eAAO,MAAM,iCAAiC
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,mBAAmB;;;;;iBAK9B,CAAA;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;iBAYxC,CAAA;AAEF,eAAO,MAAM,+BAA+B;;;;EAAuD,CAAA;AACnG,eAAO,MAAM,4BAA4B;;;;;;EAMvC,CAAA;AACF,eAAO,MAAM,2BAA2B;;;;;;;;;EAStC,CAAA;AACF,eAAO,MAAM,mCAAmC;;;;;EAK9C,CAAA;AACF,eAAO,MAAM,2BAA2B;;;;;;EAMtC,CAAA;AACF,eAAO,MAAM,gCAAgC;;;;;EAK3C,CAAA;AACF,eAAO,MAAM,gCAAgC;;;;;;;;EAQ3C,CAAA;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkB5C,CAAA;AAEF,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;iBAYlD,CAAA;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgC1C,CAAA;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;iBAG3C,CAAA;AAEF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;iBAU7C,CAAA;AAEF,eAAO,MAAM,sCAAsC;;;;;;;;iBAQjD,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBActC,CAAA;AACF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA8B,CAAA;AACxE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAwC,CAAA;AAClF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAU3C,CAAA;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;iBAQ5C,CAAA;AACF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;iBAAoC,CAAA;AACpF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;iBAA8C,CAAA;AAC9F,eAAO,MAAM,sCAAsC;;;;;;;;;;;;iBAOjD,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;iBAQpC,CAAA;AACF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;iBAA4B,CAAA;AACpE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;iBAAsC,CAAA;AAC9E,eAAO,MAAM,8BAA8B;;;;;;;;;;;;iBAMzC,CAAA;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;iBAQzC,CAAA;AACF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;iBAAiC,CAAA;AAC9E,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;iBAA2C,CAAA;AACxF,eAAO,MAAM,mCAAmC;;;;;;;;;;;iBAM9C,CAAA;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;iBAQ3C,CAAA;AACF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;iBAAmC,CAAA;AAClF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;iBAA6C,CAAA;AAC5F,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;iBAMhD,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AACnF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAC5F,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA"}
|
package/dist/validation.js
CHANGED
|
@@ -67,9 +67,7 @@ export const sellabilityExplanationTypeSchema = z.enum([
|
|
|
67
67
|
]);
|
|
68
68
|
export const sellabilityOfferParticipantSchema = z.object({
|
|
69
69
|
personId: z.string().nullable().optional(),
|
|
70
|
-
participantType: z
|
|
71
|
-
.enum(["traveler", "booker", "contact", "occupant", "staff", "other"])
|
|
72
|
-
.default("traveler"),
|
|
70
|
+
participantType: z.enum(["traveler", "occupant", "staff", "other"]).default("traveler"),
|
|
73
71
|
travelerCategory: z.enum(["adult", "child", "infant", "senior", "other"]).nullable().optional(),
|
|
74
72
|
firstName: z.string().min(1).max(255),
|
|
75
73
|
lastName: z.string().min(1).max(255),
|
|
@@ -83,9 +81,22 @@ export const sellabilityOfferParticipantSchema = z.object({
|
|
|
83
81
|
requestedUnitRefs: z.array(z.string().min(1).max(100)).default([]),
|
|
84
82
|
assignToAllItems: z.boolean().default(false),
|
|
85
83
|
itemParticipantRole: z
|
|
86
|
-
.enum(["traveler", "occupant", "
|
|
84
|
+
.enum(["traveler", "occupant", "beneficiary", "service_assignee", "other"])
|
|
87
85
|
.optional(),
|
|
88
86
|
});
|
|
87
|
+
export const sellabilityOfferContactAssignmentSchema = z.object({
|
|
88
|
+
personId: z.string().nullable().optional(),
|
|
89
|
+
role: z.enum(["primary_contact", "other"]).default("primary_contact"),
|
|
90
|
+
firstName: z.string().min(1).max(255),
|
|
91
|
+
lastName: z.string().min(1).max(255),
|
|
92
|
+
email: z.string().email().nullable().optional(),
|
|
93
|
+
phone: z.string().max(50).nullable().optional(),
|
|
94
|
+
preferredLanguage: z.string().max(35).nullable().optional(),
|
|
95
|
+
isPrimary: z.boolean().default(false),
|
|
96
|
+
notes: z.string().nullable().optional(),
|
|
97
|
+
requestedUnitRefs: z.array(z.string().min(1).max(100)).default([]),
|
|
98
|
+
assignToAllItems: z.boolean().default(false),
|
|
99
|
+
});
|
|
89
100
|
export const sellabilityConstructOfferSchema = z.object({
|
|
90
101
|
query: sellabilityResolveQuerySchema.omit({ limit: true }).extend({
|
|
91
102
|
slotId: z.string(),
|
|
@@ -101,12 +112,23 @@ export const sellabilityConstructOfferSchema = z.object({
|
|
|
101
112
|
organizationId: z.string().nullable().optional(),
|
|
102
113
|
opportunityId: z.string().nullable().optional(),
|
|
103
114
|
quoteId: z.string().nullable().optional(),
|
|
115
|
+
contactFirstName: z.string().max(255).nullable().optional(),
|
|
116
|
+
contactLastName: z.string().max(255).nullable().optional(),
|
|
117
|
+
contactEmail: z.string().email().nullable().optional(),
|
|
118
|
+
contactPhone: z.string().max(50).nullable().optional(),
|
|
119
|
+
contactPreferredLanguage: z.string().max(35).nullable().optional(),
|
|
120
|
+
contactCountry: z.string().max(100).nullable().optional(),
|
|
121
|
+
contactRegion: z.string().max(255).nullable().optional(),
|
|
122
|
+
contactCity: z.string().max(255).nullable().optional(),
|
|
123
|
+
contactAddressLine1: z.string().max(255).nullable().optional(),
|
|
124
|
+
contactPostalCode: z.string().max(50).nullable().optional(),
|
|
104
125
|
validFrom: z.string().nullable().optional(),
|
|
105
126
|
validUntil: z.string().nullable().optional(),
|
|
106
127
|
notes: z.string().nullable().optional(),
|
|
107
128
|
metadata: z.record(z.string(), z.unknown()).nullable().optional(),
|
|
108
129
|
}),
|
|
109
130
|
participants: z.array(sellabilityOfferParticipantSchema).default([]),
|
|
131
|
+
contactAssignments: z.array(sellabilityOfferContactAssignmentSchema).default([]),
|
|
110
132
|
});
|
|
111
133
|
export const sellabilityPersistSnapshotSchema = z.object({
|
|
112
134
|
query: sellabilityResolveQuerySchema,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voyantjs/sellability",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"license": "FSL-1.1-Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -25,15 +25,15 @@
|
|
|
25
25
|
"drizzle-orm": "^0.45.2",
|
|
26
26
|
"hono": "^4.12.10",
|
|
27
27
|
"zod": "^4.3.6",
|
|
28
|
-
"@voyantjs/availability": "0.
|
|
29
|
-
"@voyantjs/core": "0.
|
|
30
|
-
"@voyantjs/db": "0.
|
|
31
|
-
"@voyantjs/distribution": "0.
|
|
32
|
-
"@voyantjs/hono": "0.
|
|
33
|
-
"@voyantjs/markets": "0.
|
|
34
|
-
"@voyantjs/pricing": "0.
|
|
35
|
-
"@voyantjs/products": "0.
|
|
36
|
-
"@voyantjs/transactions": "0.
|
|
28
|
+
"@voyantjs/availability": "0.7.0",
|
|
29
|
+
"@voyantjs/core": "0.7.0",
|
|
30
|
+
"@voyantjs/db": "0.7.0",
|
|
31
|
+
"@voyantjs/distribution": "0.7.0",
|
|
32
|
+
"@voyantjs/hono": "0.7.0",
|
|
33
|
+
"@voyantjs/markets": "0.7.0",
|
|
34
|
+
"@voyantjs/pricing": "0.7.0",
|
|
35
|
+
"@voyantjs/products": "0.7.0",
|
|
36
|
+
"@voyantjs/transactions": "0.7.0"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"typescript": "^6.0.2",
|