@voyantjs/booking-requirements 0.1.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.
@@ -0,0 +1,487 @@
1
+ import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
2
+ import type { z } from "zod";
3
+ import type { bookingAnswerListQuerySchema, bookingQuestionExtraTriggerListQuerySchema, bookingQuestionOptionListQuerySchema, bookingQuestionOptionTriggerListQuerySchema, bookingQuestionUnitTriggerListQuerySchema, insertBookingAnswerSchema, insertBookingQuestionExtraTriggerSchema, insertBookingQuestionOptionSchema, insertBookingQuestionOptionTriggerSchema, insertBookingQuestionUnitTriggerSchema, insertOptionBookingQuestionSchema, insertProductBookingQuestionSchema, insertProductContactRequirementSchema, optionBookingQuestionListQuerySchema, productBookingQuestionListQuerySchema, productContactRequirementListQuerySchema, updateBookingAnswerSchema, updateBookingQuestionExtraTriggerSchema, updateBookingQuestionOptionSchema, updateBookingQuestionOptionTriggerSchema, updateBookingQuestionUnitTriggerSchema, updateOptionBookingQuestionSchema, updateProductBookingQuestionSchema, updateProductContactRequirementSchema } from "./validation.js";
4
+ type ProductContactRequirementListQuery = z.infer<typeof productContactRequirementListQuerySchema>;
5
+ type ProductBookingQuestionListQuery = z.infer<typeof productBookingQuestionListQuerySchema>;
6
+ type OptionBookingQuestionListQuery = z.infer<typeof optionBookingQuestionListQuerySchema>;
7
+ type BookingQuestionOptionListQuery = z.infer<typeof bookingQuestionOptionListQuerySchema>;
8
+ type BookingQuestionUnitTriggerListQuery = z.infer<typeof bookingQuestionUnitTriggerListQuerySchema>;
9
+ type BookingQuestionOptionTriggerListQuery = z.infer<typeof bookingQuestionOptionTriggerListQuerySchema>;
10
+ type BookingQuestionExtraTriggerListQuery = z.infer<typeof bookingQuestionExtraTriggerListQuerySchema>;
11
+ type BookingAnswerListQuery = z.infer<typeof bookingAnswerListQuerySchema>;
12
+ type CreateProductContactRequirementInput = z.infer<typeof insertProductContactRequirementSchema>;
13
+ type UpdateProductContactRequirementInput = z.infer<typeof updateProductContactRequirementSchema>;
14
+ type CreateProductBookingQuestionInput = z.infer<typeof insertProductBookingQuestionSchema>;
15
+ type UpdateProductBookingQuestionInput = z.infer<typeof updateProductBookingQuestionSchema>;
16
+ type CreateOptionBookingQuestionInput = z.infer<typeof insertOptionBookingQuestionSchema>;
17
+ type UpdateOptionBookingQuestionInput = z.infer<typeof updateOptionBookingQuestionSchema>;
18
+ type CreateBookingQuestionOptionInput = z.infer<typeof insertBookingQuestionOptionSchema>;
19
+ type UpdateBookingQuestionOptionInput = z.infer<typeof updateBookingQuestionOptionSchema>;
20
+ type CreateBookingQuestionUnitTriggerInput = z.infer<typeof insertBookingQuestionUnitTriggerSchema>;
21
+ type UpdateBookingQuestionUnitTriggerInput = z.infer<typeof updateBookingQuestionUnitTriggerSchema>;
22
+ type CreateBookingQuestionOptionTriggerInput = z.infer<typeof insertBookingQuestionOptionTriggerSchema>;
23
+ type UpdateBookingQuestionOptionTriggerInput = z.infer<typeof updateBookingQuestionOptionTriggerSchema>;
24
+ type CreateBookingQuestionExtraTriggerInput = z.infer<typeof insertBookingQuestionExtraTriggerSchema>;
25
+ type UpdateBookingQuestionExtraTriggerInput = z.infer<typeof updateBookingQuestionExtraTriggerSchema>;
26
+ type CreateBookingAnswerInput = z.infer<typeof insertBookingAnswerSchema>;
27
+ type UpdateBookingAnswerInput = z.infer<typeof updateBookingAnswerSchema>;
28
+ export declare const bookingRequirementsService: {
29
+ listProductContactRequirements(db: PostgresJsDatabase, query: ProductContactRequirementListQuery): Promise<{
30
+ data: {
31
+ id: string;
32
+ productId: string;
33
+ optionId: string | null;
34
+ fieldKey: "first_name" | "last_name" | "email" | "phone" | "date_of_birth" | "nationality" | "passport_number" | "passport_expiry" | "dietary_requirements" | "accessibility_needs" | "special_requests" | "address" | "other";
35
+ scope: "booking" | "lead_traveler" | "participant" | "booker";
36
+ isRequired: boolean;
37
+ perParticipant: boolean;
38
+ active: boolean;
39
+ sortOrder: number;
40
+ notes: string | null;
41
+ createdAt: Date;
42
+ updatedAt: Date;
43
+ }[];
44
+ total: number;
45
+ limit: number;
46
+ offset: number;
47
+ }>;
48
+ getProductContactRequirementById(db: PostgresJsDatabase, id: string): Promise<{
49
+ id: string;
50
+ productId: string;
51
+ optionId: string | null;
52
+ fieldKey: "first_name" | "last_name" | "email" | "phone" | "date_of_birth" | "nationality" | "passport_number" | "passport_expiry" | "dietary_requirements" | "accessibility_needs" | "special_requests" | "address" | "other";
53
+ scope: "booking" | "lead_traveler" | "participant" | "booker";
54
+ isRequired: boolean;
55
+ perParticipant: boolean;
56
+ active: boolean;
57
+ sortOrder: number;
58
+ notes: string | null;
59
+ createdAt: Date;
60
+ updatedAt: Date;
61
+ } | null>;
62
+ createProductContactRequirement(db: PostgresJsDatabase, data: CreateProductContactRequirementInput): Promise<{
63
+ id: string;
64
+ productId: string;
65
+ optionId: string | null;
66
+ fieldKey: "first_name" | "last_name" | "email" | "phone" | "date_of_birth" | "nationality" | "passport_number" | "passport_expiry" | "dietary_requirements" | "accessibility_needs" | "special_requests" | "address" | "other";
67
+ scope: "booking" | "lead_traveler" | "participant" | "booker";
68
+ isRequired: boolean;
69
+ perParticipant: boolean;
70
+ active: boolean;
71
+ sortOrder: number;
72
+ notes: string | null;
73
+ createdAt: Date;
74
+ updatedAt: Date;
75
+ } | null>;
76
+ updateProductContactRequirement(db: PostgresJsDatabase, id: string, data: UpdateProductContactRequirementInput): Promise<{
77
+ id: string;
78
+ productId: string;
79
+ optionId: string | null;
80
+ fieldKey: "first_name" | "last_name" | "email" | "phone" | "date_of_birth" | "nationality" | "passport_number" | "passport_expiry" | "dietary_requirements" | "accessibility_needs" | "special_requests" | "address" | "other";
81
+ scope: "booking" | "lead_traveler" | "participant" | "booker";
82
+ isRequired: boolean;
83
+ perParticipant: boolean;
84
+ active: boolean;
85
+ sortOrder: number;
86
+ notes: string | null;
87
+ createdAt: Date;
88
+ updatedAt: Date;
89
+ } | null>;
90
+ deleteProductContactRequirement(db: PostgresJsDatabase, id: string): Promise<{
91
+ id: string;
92
+ } | null>;
93
+ listProductBookingQuestions(db: PostgresJsDatabase, query: ProductBookingQuestionListQuery): Promise<{
94
+ data: {
95
+ id: string;
96
+ productId: string;
97
+ code: string | null;
98
+ label: string;
99
+ description: string | null;
100
+ target: "booking" | "lead_traveler" | "participant" | "booker" | "extra" | "service";
101
+ fieldType: "number" | "boolean" | "email" | "phone" | "other" | "text" | "textarea" | "date" | "datetime" | "single_select" | "multi_select" | "file" | "country";
102
+ placeholder: string | null;
103
+ helpText: string | null;
104
+ isRequired: boolean;
105
+ active: boolean;
106
+ sortOrder: number;
107
+ metadata: Record<string, unknown> | null;
108
+ createdAt: Date;
109
+ updatedAt: Date;
110
+ }[];
111
+ total: number;
112
+ limit: number;
113
+ offset: number;
114
+ }>;
115
+ getProductBookingQuestionById(db: PostgresJsDatabase, id: string): Promise<{
116
+ id: string;
117
+ productId: string;
118
+ code: string | null;
119
+ label: string;
120
+ description: string | null;
121
+ target: "booking" | "lead_traveler" | "participant" | "booker" | "extra" | "service";
122
+ fieldType: "number" | "boolean" | "email" | "phone" | "other" | "text" | "textarea" | "date" | "datetime" | "single_select" | "multi_select" | "file" | "country";
123
+ placeholder: string | null;
124
+ helpText: string | null;
125
+ isRequired: boolean;
126
+ active: boolean;
127
+ sortOrder: number;
128
+ metadata: Record<string, unknown> | null;
129
+ createdAt: Date;
130
+ updatedAt: Date;
131
+ } | null>;
132
+ createProductBookingQuestion(db: PostgresJsDatabase, data: CreateProductBookingQuestionInput): Promise<{
133
+ id: string;
134
+ productId: string;
135
+ isRequired: boolean;
136
+ active: boolean;
137
+ sortOrder: number;
138
+ createdAt: Date;
139
+ updatedAt: Date;
140
+ code: string | null;
141
+ label: string;
142
+ description: string | null;
143
+ target: "booking" | "lead_traveler" | "participant" | "booker" | "extra" | "service";
144
+ fieldType: "number" | "boolean" | "email" | "phone" | "other" | "text" | "textarea" | "date" | "datetime" | "single_select" | "multi_select" | "file" | "country";
145
+ placeholder: string | null;
146
+ helpText: string | null;
147
+ metadata: Record<string, unknown> | null;
148
+ } | null>;
149
+ updateProductBookingQuestion(db: PostgresJsDatabase, id: string, data: UpdateProductBookingQuestionInput): Promise<{
150
+ id: string;
151
+ productId: string;
152
+ code: string | null;
153
+ label: string;
154
+ description: string | null;
155
+ target: "booking" | "lead_traveler" | "participant" | "booker" | "extra" | "service";
156
+ fieldType: "number" | "boolean" | "email" | "phone" | "other" | "text" | "textarea" | "date" | "datetime" | "single_select" | "multi_select" | "file" | "country";
157
+ placeholder: string | null;
158
+ helpText: string | null;
159
+ isRequired: boolean;
160
+ active: boolean;
161
+ sortOrder: number;
162
+ metadata: Record<string, unknown> | null;
163
+ createdAt: Date;
164
+ updatedAt: Date;
165
+ } | null>;
166
+ deleteProductBookingQuestion(db: PostgresJsDatabase, id: string): Promise<{
167
+ id: string;
168
+ } | null>;
169
+ listOptionBookingQuestions(db: PostgresJsDatabase, query: OptionBookingQuestionListQuery): Promise<{
170
+ data: {
171
+ id: string;
172
+ optionId: string;
173
+ productBookingQuestionId: string;
174
+ isRequiredOverride: boolean | null;
175
+ active: boolean;
176
+ sortOrder: number;
177
+ notes: string | null;
178
+ createdAt: Date;
179
+ updatedAt: Date;
180
+ }[];
181
+ total: number;
182
+ limit: number;
183
+ offset: number;
184
+ }>;
185
+ getOptionBookingQuestionById(db: PostgresJsDatabase, id: string): Promise<{
186
+ id: string;
187
+ optionId: string;
188
+ productBookingQuestionId: string;
189
+ isRequiredOverride: boolean | null;
190
+ active: boolean;
191
+ sortOrder: number;
192
+ notes: string | null;
193
+ createdAt: Date;
194
+ updatedAt: Date;
195
+ } | null>;
196
+ createOptionBookingQuestion(db: PostgresJsDatabase, data: CreateOptionBookingQuestionInput): Promise<{
197
+ id: string;
198
+ optionId: string;
199
+ active: boolean;
200
+ sortOrder: number;
201
+ notes: string | null;
202
+ createdAt: Date;
203
+ updatedAt: Date;
204
+ productBookingQuestionId: string;
205
+ isRequiredOverride: boolean | null;
206
+ } | null>;
207
+ updateOptionBookingQuestion(db: PostgresJsDatabase, id: string, data: UpdateOptionBookingQuestionInput): Promise<{
208
+ id: string;
209
+ optionId: string;
210
+ productBookingQuestionId: string;
211
+ isRequiredOverride: boolean | null;
212
+ active: boolean;
213
+ sortOrder: number;
214
+ notes: string | null;
215
+ createdAt: Date;
216
+ updatedAt: Date;
217
+ } | null>;
218
+ deleteOptionBookingQuestion(db: PostgresJsDatabase, id: string): Promise<{
219
+ id: string;
220
+ } | null>;
221
+ listBookingQuestionOptions(db: PostgresJsDatabase, query: BookingQuestionOptionListQuery): Promise<{
222
+ data: {
223
+ id: string;
224
+ productBookingQuestionId: string;
225
+ value: string;
226
+ label: string;
227
+ sortOrder: number;
228
+ isDefault: boolean;
229
+ active: boolean;
230
+ createdAt: Date;
231
+ updatedAt: Date;
232
+ }[];
233
+ total: number;
234
+ limit: number;
235
+ offset: number;
236
+ }>;
237
+ getBookingQuestionOptionById(db: PostgresJsDatabase, id: string): Promise<{
238
+ id: string;
239
+ productBookingQuestionId: string;
240
+ value: string;
241
+ label: string;
242
+ sortOrder: number;
243
+ isDefault: boolean;
244
+ active: boolean;
245
+ createdAt: Date;
246
+ updatedAt: Date;
247
+ } | null>;
248
+ createBookingQuestionOption(db: PostgresJsDatabase, data: CreateBookingQuestionOptionInput): Promise<{
249
+ value: string;
250
+ id: string;
251
+ active: boolean;
252
+ sortOrder: number;
253
+ createdAt: Date;
254
+ updatedAt: Date;
255
+ label: string;
256
+ productBookingQuestionId: string;
257
+ isDefault: boolean;
258
+ } | null>;
259
+ updateBookingQuestionOption(db: PostgresJsDatabase, id: string, data: UpdateBookingQuestionOptionInput): Promise<{
260
+ id: string;
261
+ productBookingQuestionId: string;
262
+ value: string;
263
+ label: string;
264
+ sortOrder: number;
265
+ isDefault: boolean;
266
+ active: boolean;
267
+ createdAt: Date;
268
+ updatedAt: Date;
269
+ } | null>;
270
+ deleteBookingQuestionOption(db: PostgresJsDatabase, id: string): Promise<{
271
+ id: string;
272
+ } | null>;
273
+ listBookingQuestionUnitTriggers(db: PostgresJsDatabase, query: BookingQuestionUnitTriggerListQuery): Promise<{
274
+ data: {
275
+ id: string;
276
+ productBookingQuestionId: string;
277
+ unitId: string;
278
+ triggerMode: "required" | "optional" | "hidden";
279
+ minQuantity: number | null;
280
+ active: boolean;
281
+ createdAt: Date;
282
+ updatedAt: Date;
283
+ }[];
284
+ total: number;
285
+ limit: number;
286
+ offset: number;
287
+ }>;
288
+ getBookingQuestionUnitTriggerById(db: PostgresJsDatabase, id: string): Promise<{
289
+ id: string;
290
+ productBookingQuestionId: string;
291
+ unitId: string;
292
+ triggerMode: "required" | "optional" | "hidden";
293
+ minQuantity: number | null;
294
+ active: boolean;
295
+ createdAt: Date;
296
+ updatedAt: Date;
297
+ } | null>;
298
+ createBookingQuestionUnitTrigger(db: PostgresJsDatabase, data: CreateBookingQuestionUnitTriggerInput): Promise<{
299
+ id: string;
300
+ active: boolean;
301
+ createdAt: Date;
302
+ updatedAt: Date;
303
+ productBookingQuestionId: string;
304
+ unitId: string;
305
+ triggerMode: "required" | "optional" | "hidden";
306
+ minQuantity: number | null;
307
+ } | null>;
308
+ updateBookingQuestionUnitTrigger(db: PostgresJsDatabase, id: string, data: UpdateBookingQuestionUnitTriggerInput): Promise<{
309
+ id: string;
310
+ productBookingQuestionId: string;
311
+ unitId: string;
312
+ triggerMode: "required" | "optional" | "hidden";
313
+ minQuantity: number | null;
314
+ active: boolean;
315
+ createdAt: Date;
316
+ updatedAt: Date;
317
+ } | null>;
318
+ deleteBookingQuestionUnitTrigger(db: PostgresJsDatabase, id: string): Promise<{
319
+ id: string;
320
+ } | null>;
321
+ listBookingQuestionOptionTriggers(db: PostgresJsDatabase, query: BookingQuestionOptionTriggerListQuery): Promise<{
322
+ data: {
323
+ id: string;
324
+ productBookingQuestionId: string;
325
+ optionId: string;
326
+ triggerMode: "required" | "optional" | "hidden";
327
+ active: boolean;
328
+ createdAt: Date;
329
+ updatedAt: Date;
330
+ }[];
331
+ total: number;
332
+ limit: number;
333
+ offset: number;
334
+ }>;
335
+ getBookingQuestionOptionTriggerById(db: PostgresJsDatabase, id: string): Promise<{
336
+ id: string;
337
+ productBookingQuestionId: string;
338
+ optionId: string;
339
+ triggerMode: "required" | "optional" | "hidden";
340
+ active: boolean;
341
+ createdAt: Date;
342
+ updatedAt: Date;
343
+ } | null>;
344
+ createBookingQuestionOptionTrigger(db: PostgresJsDatabase, data: CreateBookingQuestionOptionTriggerInput): Promise<{
345
+ id: string;
346
+ optionId: string;
347
+ active: boolean;
348
+ createdAt: Date;
349
+ updatedAt: Date;
350
+ productBookingQuestionId: string;
351
+ triggerMode: "required" | "optional" | "hidden";
352
+ } | null>;
353
+ updateBookingQuestionOptionTrigger(db: PostgresJsDatabase, id: string, data: UpdateBookingQuestionOptionTriggerInput): Promise<{
354
+ id: string;
355
+ productBookingQuestionId: string;
356
+ optionId: string;
357
+ triggerMode: "required" | "optional" | "hidden";
358
+ active: boolean;
359
+ createdAt: Date;
360
+ updatedAt: Date;
361
+ } | null>;
362
+ deleteBookingQuestionOptionTrigger(db: PostgresJsDatabase, id: string): Promise<{
363
+ id: string;
364
+ } | null>;
365
+ listBookingQuestionExtraTriggers(db: PostgresJsDatabase, query: BookingQuestionExtraTriggerListQuery): Promise<{
366
+ data: {
367
+ id: string;
368
+ productBookingQuestionId: string;
369
+ productExtraId: string | null;
370
+ optionExtraConfigId: string | null;
371
+ triggerMode: "required" | "optional" | "hidden";
372
+ minQuantity: number | null;
373
+ active: boolean;
374
+ createdAt: Date;
375
+ updatedAt: Date;
376
+ }[];
377
+ total: number;
378
+ limit: number;
379
+ offset: number;
380
+ }>;
381
+ getBookingQuestionExtraTriggerById(db: PostgresJsDatabase, id: string): Promise<{
382
+ id: string;
383
+ productBookingQuestionId: string;
384
+ productExtraId: string | null;
385
+ optionExtraConfigId: string | null;
386
+ triggerMode: "required" | "optional" | "hidden";
387
+ minQuantity: number | null;
388
+ active: boolean;
389
+ createdAt: Date;
390
+ updatedAt: Date;
391
+ } | null>;
392
+ createBookingQuestionExtraTrigger(db: PostgresJsDatabase, data: CreateBookingQuestionExtraTriggerInput): Promise<{
393
+ id: string;
394
+ active: boolean;
395
+ createdAt: Date;
396
+ updatedAt: Date;
397
+ productBookingQuestionId: string;
398
+ triggerMode: "required" | "optional" | "hidden";
399
+ minQuantity: number | null;
400
+ productExtraId: string | null;
401
+ optionExtraConfigId: string | null;
402
+ } | null>;
403
+ updateBookingQuestionExtraTrigger(db: PostgresJsDatabase, id: string, data: UpdateBookingQuestionExtraTriggerInput): Promise<{
404
+ id: string;
405
+ productBookingQuestionId: string;
406
+ productExtraId: string | null;
407
+ optionExtraConfigId: string | null;
408
+ triggerMode: "required" | "optional" | "hidden";
409
+ minQuantity: number | null;
410
+ active: boolean;
411
+ createdAt: Date;
412
+ updatedAt: Date;
413
+ } | null>;
414
+ deleteBookingQuestionExtraTrigger(db: PostgresJsDatabase, id: string): Promise<{
415
+ id: string;
416
+ } | null>;
417
+ listBookingAnswers(db: PostgresJsDatabase, query: BookingAnswerListQuery): Promise<{
418
+ data: {
419
+ id: string;
420
+ bookingId: string;
421
+ productBookingQuestionId: string;
422
+ bookingParticipantId: string | null;
423
+ bookingExtraId: string | null;
424
+ target: "booking" | "participant" | "extra";
425
+ valueText: string | null;
426
+ valueNumber: number | null;
427
+ valueBoolean: boolean | null;
428
+ valueJson: Record<string, unknown> | string[] | null;
429
+ notes: string | null;
430
+ createdAt: Date;
431
+ updatedAt: Date;
432
+ }[];
433
+ total: number;
434
+ limit: number;
435
+ offset: number;
436
+ }>;
437
+ getBookingAnswerById(db: PostgresJsDatabase, id: string): Promise<{
438
+ id: string;
439
+ bookingId: string;
440
+ productBookingQuestionId: string;
441
+ bookingParticipantId: string | null;
442
+ bookingExtraId: string | null;
443
+ target: "booking" | "participant" | "extra";
444
+ valueText: string | null;
445
+ valueNumber: number | null;
446
+ valueBoolean: boolean | null;
447
+ valueJson: Record<string, unknown> | string[] | null;
448
+ notes: string | null;
449
+ createdAt: Date;
450
+ updatedAt: Date;
451
+ } | null>;
452
+ createBookingAnswer(db: PostgresJsDatabase, data: CreateBookingAnswerInput): Promise<{
453
+ id: string;
454
+ notes: string | null;
455
+ createdAt: Date;
456
+ updatedAt: Date;
457
+ target: "booking" | "participant" | "extra";
458
+ productBookingQuestionId: string;
459
+ bookingId: string;
460
+ bookingParticipantId: string | null;
461
+ bookingExtraId: string | null;
462
+ valueText: string | null;
463
+ valueNumber: number | null;
464
+ valueBoolean: boolean | null;
465
+ valueJson: Record<string, unknown> | string[] | null;
466
+ } | null>;
467
+ updateBookingAnswer(db: PostgresJsDatabase, id: string, data: UpdateBookingAnswerInput): Promise<{
468
+ id: string;
469
+ bookingId: string;
470
+ productBookingQuestionId: string;
471
+ bookingParticipantId: string | null;
472
+ bookingExtraId: string | null;
473
+ target: "booking" | "participant" | "extra";
474
+ valueText: string | null;
475
+ valueNumber: number | null;
476
+ valueBoolean: boolean | null;
477
+ valueJson: Record<string, unknown> | string[] | null;
478
+ notes: string | null;
479
+ createdAt: Date;
480
+ updatedAt: Date;
481
+ } | null>;
482
+ deleteBookingAnswer(db: PostgresJsDatabase, id: string): Promise<{
483
+ id: string;
484
+ } | null>;
485
+ };
486
+ export {};
487
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}