@voyantjs/bookings 0.119.2 → 0.119.3

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.
Files changed (37) hide show
  1. package/dist/pricing-assignment/age.d.ts +33 -0
  2. package/dist/pricing-assignment/age.d.ts.map +1 -0
  3. package/dist/pricing-assignment/age.js +109 -0
  4. package/dist/pricing-assignment/draft.d.ts +69 -0
  5. package/dist/pricing-assignment/draft.d.ts.map +1 -0
  6. package/dist/pricing-assignment/draft.js +284 -0
  7. package/dist/pricing-assignment/types.d.ts +113 -0
  8. package/dist/pricing-assignment/types.d.ts.map +1 -0
  9. package/dist/pricing-assignment/types.js +30 -0
  10. package/dist/pricing-assignment/unit-helpers.d.ts +11 -0
  11. package/dist/pricing-assignment/unit-helpers.d.ts.map +1 -0
  12. package/dist/pricing-assignment/unit-helpers.js +19 -0
  13. package/dist/pricing-assignment/verify.d.ts +67 -0
  14. package/dist/pricing-assignment/verify.d.ts.map +1 -0
  15. package/dist/pricing-assignment/verify.js +121 -0
  16. package/dist/pricing-assignment.d.ts +4 -275
  17. package/dist/pricing-assignment.d.ts.map +1 -1
  18. package/dist/pricing-assignment.js +4 -559
  19. package/dist/routes-admin.d.ts +2894 -0
  20. package/dist/routes-admin.d.ts.map +1 -0
  21. package/dist/routes-admin.js +2111 -0
  22. package/dist/routes.d.ts +1 -2893
  23. package/dist/routes.d.ts.map +1 -1
  24. package/dist/routes.js +1 -2111
  25. package/dist/service-core.d.ts +6240 -0
  26. package/dist/service-core.d.ts.map +1 -0
  27. package/dist/service-core.js +4350 -0
  28. package/dist/service-public-core.d.ts +907 -0
  29. package/dist/service-public-core.d.ts.map +1 -0
  30. package/dist/service-public-core.js +1176 -0
  31. package/dist/service-public.d.ts +1 -906
  32. package/dist/service-public.d.ts.map +1 -1
  33. package/dist/service-public.js +1 -1176
  34. package/dist/service.d.ts +1 -6239
  35. package/dist/service.d.ts.map +1 -1
  36. package/dist/service.js +1 -4350
  37. package/package.json +5 -5
package/dist/routes.d.ts CHANGED
@@ -1,2894 +1,2 @@
1
- import { type ActionApprovalResponse, type ActionLedgerEntry, type ActionLedgerEntryResponse } from "@voyantjs/action-ledger";
2
- import { z } from "zod";
3
- import type { publicBookingRoutes } from "./routes-public.js";
4
- import type { Env } from "./routes-shared.js";
5
- interface BookingActionLedgerTravelerTarget {
6
- id: string;
7
- firstName: string | null;
8
- lastName: string | null;
9
- }
10
- export interface BookingActionLedgerListResponse {
11
- data: ActionLedgerEntryResponse[];
12
- travelers: BookingActionLedgerTravelerTarget[];
13
- pageInfo: {
14
- nextCursor: {
15
- occurredAt: string;
16
- id: string;
17
- } | null;
18
- };
19
- }
20
- export interface BookingActionApprovalDecisionResponse {
21
- data: {
22
- approval: ActionApprovalResponse;
23
- decisionAction: ActionLedgerEntryResponse;
24
- };
25
- }
26
- type BookingMutationAction = "create" | "update" | "delete";
27
- declare function changedBookingMutationFields(input: Record<string, unknown>, before: Record<string, unknown> | null, after: Record<string, unknown> | null): string[];
28
- declare function changedBookingTravelerFields(input: Record<string, unknown>, before: Record<string, unknown> | null, after: Record<string, unknown> | null): string[];
29
- declare function changedBookingTravelDetailFields(input: Record<string, unknown>): string[];
30
- declare function changedBookingItemFields(input: Record<string, unknown>, before: Record<string, unknown> | null, after: Record<string, unknown> | null): string[];
31
- declare function bookingMutationSummary(action: BookingMutationAction, fields: string[], subject: string): string;
32
- declare function buildBookingActionLedgerPage({ bookingEntries, travelerEntries, itemEntries, limit, }: {
33
- bookingEntries: ActionLedgerEntry[];
34
- travelerEntries: ActionLedgerEntry[];
35
- itemEntries?: ActionLedgerEntry[];
36
- limit: number;
37
- }): {
38
- entries: {
39
- id: string;
40
- occurredAt: Date;
41
- actionName: string;
42
- actionVersion: string;
43
- actionKind: "execute" | "reverse" | "update" | "delete" | "read" | "create" | "approve" | "reject" | "compensate" | "duplicate";
44
- status: "requested" | "awaiting_approval" | "approved" | "denied" | "succeeded" | "failed" | "reversed" | "compensated" | "expired" | "cancelled" | "superseded";
45
- evaluatedRisk: "low" | "medium" | "high" | "critical";
46
- actorType: string | null;
47
- principalType: "user" | "api_key" | "agent" | "workflow" | "system";
48
- principalId: string;
49
- principalSubtype: string | null;
50
- sessionId: string | null;
51
- apiTokenId: string | null;
52
- internalRequest: boolean;
53
- delegatedByPrincipalType: "user" | "api_key" | "agent" | "workflow" | "system" | null;
54
- delegatedByPrincipalId: string | null;
55
- delegationId: string | null;
56
- callerType: string | null;
57
- organizationId: string | null;
58
- routeOrToolName: string | null;
59
- workflowRunId: string | null;
60
- workflowStepId: string | null;
61
- correlationId: string | null;
62
- causationActionId: string | null;
63
- idempotencyScope: string | null;
64
- idempotencyKey: string | null;
65
- idempotencyFingerprint: string | null;
66
- targetType: string;
67
- targetId: string;
68
- capabilityId: string | null;
69
- capabilityVersion: string | null;
70
- authorizationSource: string | null;
71
- approvalId: string | null;
72
- amendsActionId: string | null;
73
- createdAt: Date;
74
- }[];
75
- nextCursor: {
76
- occurredAt: string;
77
- id: string;
78
- } | null;
79
- };
80
- export declare const bookingRoutes: import("hono/hono-base").HonoBase<Env, ({
81
- "/": {
82
- $get: {
83
- input: {};
84
- output: {
85
- data: {
86
- startsAt: string | null;
87
- endsAt: string | null;
88
- items: {
89
- id: string;
90
- title: string;
91
- itemType: string;
92
- productId: string | null;
93
- productName: string | null;
94
- startsAt: string | null;
95
- endsAt: string | null;
96
- }[];
97
- id: string;
98
- bookingNumber: string;
99
- status: "expired" | "cancelled" | "completed" | "draft" | "on_hold" | "awaiting_payment" | "confirmed" | "in_progress";
100
- personId: string | null;
101
- organizationId: string | null;
102
- sourceType: "internal" | "direct" | "manual" | "affiliate" | "ota" | "reseller" | "api_partner";
103
- externalBookingRef: string | null;
104
- communicationLanguage: string | null;
105
- contactFirstName: string | null;
106
- contactLastName: string | null;
107
- contactPartyType: string | null;
108
- contactTaxId: string | null;
109
- contactEmail: string | null;
110
- contactPhone: string | null;
111
- contactPreferredLanguage: string | null;
112
- contactCountry: string | null;
113
- contactRegion: string | null;
114
- contactCity: string | null;
115
- contactAddressLine1: string | null;
116
- contactAddressLine2: string | null;
117
- contactPostalCode: string | null;
118
- sellCurrency: string;
119
- baseCurrency: string | null;
120
- fxRateSetId: string | null;
121
- sellAmountCents: number | null;
122
- baseSellAmountCents: number | null;
123
- costAmountCents: number | null;
124
- baseCostAmountCents: number | null;
125
- marginPercent: number | null;
126
- startDate: string | null;
127
- endDate: string | null;
128
- pax: number | null;
129
- internalNotes: string | null;
130
- customerPaymentPolicy: import("hono/utils/types").JSONValue;
131
- priceOverride: {
132
- isManual: true;
133
- originalAmountCents: number | null;
134
- overriddenAmountCents: number;
135
- currency: string;
136
- reason: string;
137
- overriddenBy: string;
138
- overriddenAt: string;
139
- } | null;
140
- holdExpiresAt: string | null;
141
- confirmedAt: string | null;
142
- expiredAt: string | null;
143
- cancelledAt: string | null;
144
- completedAt: string | null;
145
- awaitingPaymentAt: string | null;
146
- paidAt: string | null;
147
- redeemedAt: string | null;
148
- createdAt: string;
149
- updatedAt: string;
150
- }[];
151
- total: number;
152
- limit: number;
153
- offset: number;
154
- };
155
- outputFormat: "json";
156
- status: import("hono/utils/http-status").ContentfulStatusCode;
157
- };
158
- };
159
- } & {
160
- "/pricing-preview": {
161
- $post: {
162
- input: {};
163
- output: {
164
- error: string;
165
- };
166
- outputFormat: "json";
167
- status: 404;
168
- } | {
169
- input: {};
170
- output: {
171
- data: {
172
- catalog: {
173
- id: string;
174
- currencyCode: string | null;
175
- };
176
- options: {
177
- id: string;
178
- name: string;
179
- isDefault: boolean;
180
- }[];
181
- rules: {
182
- id: string;
183
- optionId: string;
184
- pricingMode: string;
185
- baseSellAmountCents: number | null;
186
- isDefault: boolean;
187
- }[];
188
- pricingCategories: never[] | {
189
- id: string;
190
- name: string;
191
- code: string | null;
192
- categoryType: string;
193
- minAge: number | null;
194
- maxAge: number | null;
195
- metadata: {
196
- [x: string]: import("hono/utils/types").JSONValue;
197
- } | null;
198
- sortOrder: number;
199
- }[];
200
- unitPrices: {
201
- sellAmountCents: number | null;
202
- tiers: {
203
- id: string;
204
- optionUnitPriceRuleId: string;
205
- minQuantity: number;
206
- maxQuantity: number | null;
207
- sellAmountCents: number | null;
208
- sortOrder: number;
209
- }[];
210
- id: string;
211
- optionPriceRuleId: string;
212
- optionId: string;
213
- unitId: string;
214
- unitName: string;
215
- unitType: string | null;
216
- occupancyMax: number | null;
217
- pricingCategoryId: string | null;
218
- pricingMode: string;
219
- minQuantity: number | null;
220
- maxQuantity: number | null;
221
- }[];
222
- };
223
- };
224
- outputFormat: "json";
225
- status: import("hono/utils/http-status").ContentfulStatusCode;
226
- };
227
- };
228
- } & {
229
- "/aggregates": {
230
- $get: {
231
- input: {};
232
- output: {
233
- data: {
234
- total: number;
235
- totalPax: number;
236
- countsByStatus: {
237
- status: import("./state-machine.js").BookingStatus;
238
- count: number;
239
- }[];
240
- monthlyCounts: {
241
- yearMonth: string;
242
- count: number;
243
- }[];
244
- monthlyRevenue: {
245
- yearMonth: string;
246
- currency: string;
247
- sellAmountCents: number;
248
- }[];
249
- upcomingDepartures: {
250
- count: number;
251
- items: {
252
- id: string;
253
- bookingNumber: string | null;
254
- status: import("./state-machine.js").BookingStatus;
255
- startDate: string | null;
256
- endDate: string | null;
257
- pax: number | null;
258
- sellCurrency: string | null;
259
- sellAmountCents: number | null;
260
- }[];
261
- };
262
- };
263
- };
264
- outputFormat: "json";
265
- status: import("hono/utils/http-status").ContentfulStatusCode;
266
- };
267
- };
268
- } & {
269
- "/overview": {
270
- $get: {
271
- input: {};
272
- output: {
273
- error: string;
274
- };
275
- outputFormat: "json";
276
- status: 404;
277
- } | {
278
- input: {};
279
- output: {
280
- data: {
281
- bookingId: string;
282
- bookingNumber: string;
283
- status: "expired" | "cancelled" | "completed" | "draft" | "on_hold" | "awaiting_payment" | "confirmed" | "in_progress";
284
- sellCurrency: string;
285
- sellAmountCents: number | null;
286
- startDate: string | null;
287
- endDate: string | null;
288
- pax: number | null;
289
- confirmedAt: string | null;
290
- cancelledAt: string | null;
291
- completedAt: string | null;
292
- travelers: {
293
- id: string;
294
- participantType: "other" | "traveler" | "occupant";
295
- firstName: string;
296
- lastName: string;
297
- isPrimary: boolean;
298
- }[];
299
- items: {
300
- id: string;
301
- title: string;
302
- description: string | null;
303
- itemType: "service" | "other" | "unit" | "extra" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
304
- status: "expired" | "cancelled" | "draft" | "on_hold" | "confirmed" | "fulfilled";
305
- serviceDate: string | null;
306
- startsAt: string | null;
307
- endsAt: string | null;
308
- quantity: number;
309
- sellCurrency: string;
310
- unitSellAmountCents: number | null;
311
- totalSellAmountCents: number | null;
312
- costCurrency: string | null;
313
- unitCostAmountCents: number | null;
314
- totalCostAmountCents: number | null;
315
- notes: string | null;
316
- productId: string | null;
317
- optionId: string | null;
318
- optionUnitId: string | null;
319
- pricingCategoryId: string | null;
320
- travelerLinks: {
321
- id: string;
322
- travelerId: string;
323
- role: string;
324
- isPrimary: boolean;
325
- }[];
326
- }[];
327
- documents: {
328
- id: string;
329
- travelerId: string | null;
330
- type: "visa" | "other" | "insurance" | "health" | "passport_copy";
331
- fileName: string;
332
- fileUrl: string;
333
- }[];
334
- fulfillments: {
335
- id: string;
336
- bookingItemId: string | null;
337
- travelerId: string | null;
338
- fulfillmentType: "other" | "pdf" | "voucher" | "ticket" | "qr_code" | "barcode" | "mobile";
339
- deliveryChannel: "api" | "email" | "other" | "download" | "wallet";
340
- status: "failed" | "pending" | "revoked" | "issued" | "reissued";
341
- artifactUrl: string | null;
342
- }[];
343
- };
344
- };
345
- outputFormat: "json";
346
- status: import("hono/utils/http-status").ContentfulStatusCode;
347
- };
348
- };
349
- } & {
350
- "/sharing-groups": {
351
- $get: {
352
- input: {};
353
- output: {
354
- data: {
355
- id: string;
356
- label: string;
357
- occupancy: number;
358
- roomTypeId: string | null;
359
- bookingIds: string[];
360
- }[];
361
- };
362
- outputFormat: "json";
363
- status: import("hono/utils/http-status").ContentfulStatusCode;
364
- };
365
- };
366
- } & {
367
- "/sharing-groups/:groupId/travelers": {
368
- $get: {
369
- input: {
370
- param: {
371
- groupId: string;
372
- };
373
- };
374
- output: {
375
- data: {
376
- id: string;
377
- bookingId: string;
378
- bookingNumber: string;
379
- participantType: string;
380
- travelerCategory: string | null;
381
- personId: string | null;
382
- firstName: string;
383
- lastName: string;
384
- email: string | null;
385
- phone: string | null;
386
- preferredLanguage: string | null;
387
- specialRequests: string | null;
388
- isPrimary: boolean;
389
- notes: string | null;
390
- isLeadTraveler: boolean;
391
- sharingGroupId: string;
392
- roomTypeId: string | null;
393
- bedPreference: string | null;
394
- allocations: {
395
- [x: string]: string;
396
- };
397
- createdAt: string;
398
- updatedAt: string;
399
- }[];
400
- };
401
- outputFormat: "json";
402
- status: import("hono/utils/http-status").ContentfulStatusCode;
403
- };
404
- };
405
- } & {
406
- "/:id": {
407
- $get: {
408
- input: {
409
- param: {
410
- id: string;
411
- };
412
- };
413
- output: {
414
- error: string;
415
- };
416
- outputFormat: "json";
417
- status: 404;
418
- } | {
419
- input: {
420
- param: {
421
- id: string;
422
- };
423
- };
424
- output: {
425
- data: {
426
- id: string;
427
- bookingNumber: string;
428
- status: "expired" | "cancelled" | "completed" | "draft" | "on_hold" | "awaiting_payment" | "confirmed" | "in_progress";
429
- personId: string | null;
430
- organizationId: string | null;
431
- sourceType: "internal" | "direct" | "manual" | "affiliate" | "ota" | "reseller" | "api_partner";
432
- externalBookingRef: string | null;
433
- communicationLanguage: string | null;
434
- contactFirstName: string | null;
435
- contactLastName: string | null;
436
- contactPartyType: string | null;
437
- contactTaxId: string | null;
438
- contactEmail: string | null;
439
- contactPhone: string | null;
440
- contactPreferredLanguage: string | null;
441
- contactCountry: string | null;
442
- contactRegion: string | null;
443
- contactCity: string | null;
444
- contactAddressLine1: string | null;
445
- contactAddressLine2: string | null;
446
- contactPostalCode: string | null;
447
- sellCurrency: string;
448
- baseCurrency: string | null;
449
- fxRateSetId: string | null;
450
- sellAmountCents: number | null;
451
- baseSellAmountCents: number | null;
452
- costAmountCents: number | null;
453
- baseCostAmountCents: number | null;
454
- marginPercent: number | null;
455
- startDate: string | null;
456
- endDate: string | null;
457
- pax: number | null;
458
- internalNotes: string | null;
459
- customerPaymentPolicy: import("hono/utils/types").JSONValue;
460
- priceOverride: {
461
- isManual: true;
462
- originalAmountCents: number | null;
463
- overriddenAmountCents: number;
464
- currency: string;
465
- reason: string;
466
- overriddenBy: string;
467
- overriddenAt: string;
468
- } | null;
469
- holdExpiresAt: string | null;
470
- confirmedAt: string | null;
471
- expiredAt: string | null;
472
- cancelledAt: string | null;
473
- completedAt: string | null;
474
- awaitingPaymentAt: string | null;
475
- paidAt: string | null;
476
- redeemedAt: string | null;
477
- createdAt: string;
478
- updatedAt: string;
479
- };
480
- };
481
- outputFormat: "json";
482
- status: import("hono/utils/http-status").ContentfulStatusCode;
483
- };
484
- };
485
- } & {
486
- "/:id/action-ledger": {
487
- $get: {
488
- input: {
489
- param: {
490
- id: string;
491
- };
492
- };
493
- output: {
494
- error: string;
495
- };
496
- outputFormat: "json";
497
- status: 404;
498
- } | {
499
- input: {
500
- param: {
501
- id: string;
502
- };
503
- };
504
- output: {
505
- data: {
506
- id: string;
507
- actionName: string;
508
- actionVersion: string;
509
- actionKind: "execute" | "reverse" | "update" | "delete" | "read" | "create" | "approve" | "reject" | "compensate" | "duplicate";
510
- status: "requested" | "awaiting_approval" | "approved" | "denied" | "succeeded" | "failed" | "reversed" | "compensated" | "expired" | "cancelled" | "superseded";
511
- evaluatedRisk: "low" | "medium" | "high" | "critical";
512
- actorType: string | null;
513
- principalType: "user" | "api_key" | "agent" | "workflow" | "system";
514
- principalId: string;
515
- principalSubtype: string | null;
516
- sessionId: string | null;
517
- apiTokenId: string | null;
518
- internalRequest: boolean;
519
- delegatedByPrincipalType: "user" | "api_key" | "agent" | "workflow" | "system" | null;
520
- delegatedByPrincipalId: string | null;
521
- delegationId: string | null;
522
- callerType: string | null;
523
- organizationId: string | null;
524
- routeOrToolName: string | null;
525
- workflowRunId: string | null;
526
- workflowStepId: string | null;
527
- correlationId: string | null;
528
- causationActionId: string | null;
529
- idempotencyScope: string | null;
530
- idempotencyKey: string | null;
531
- idempotencyFingerprint: string | null;
532
- targetType: string;
533
- targetId: string;
534
- capabilityId: string | null;
535
- capabilityVersion: string | null;
536
- authorizationSource: string | null;
537
- approvalId: string | null;
538
- amendsActionId: string | null;
539
- occurredAt: string;
540
- createdAt: string;
541
- }[];
542
- travelers: {
543
- id: string;
544
- firstName: string;
545
- lastName: string;
546
- }[];
547
- pageInfo: {
548
- nextCursor: {
549
- occurredAt: string;
550
- id: string;
551
- } | null;
552
- };
553
- };
554
- outputFormat: "json";
555
- status: import("hono/utils/http-status").ContentfulStatusCode;
556
- };
557
- };
558
- } & {
559
- "/:id/action-approvals/:approvalId/decide": {
560
- $post: {
561
- input: {
562
- param: {
563
- id: string;
564
- } & {
565
- approvalId: string;
566
- };
567
- };
568
- output: {};
569
- outputFormat: string;
570
- status: import("hono/utils/http-status").StatusCode;
571
- };
572
- };
573
- } & {
574
- "/reserve": {
575
- $post: {
576
- input: {};
577
- output: {
578
- data: {
579
- id: string;
580
- status: "expired" | "cancelled" | "completed" | "draft" | "on_hold" | "awaiting_payment" | "confirmed" | "in_progress";
581
- organizationId: string | null;
582
- createdAt: string;
583
- updatedAt: string;
584
- redeemedAt: string | null;
585
- startDate: string | null;
586
- endDate: string | null;
587
- completedAt: string | null;
588
- bookingNumber: string;
589
- personId: string | null;
590
- sourceType: "internal" | "direct" | "manual" | "affiliate" | "ota" | "reseller" | "api_partner";
591
- externalBookingRef: string | null;
592
- communicationLanguage: string | null;
593
- contactFirstName: string | null;
594
- contactLastName: string | null;
595
- contactPartyType: string | null;
596
- contactTaxId: string | null;
597
- contactEmail: string | null;
598
- contactPhone: string | null;
599
- contactPreferredLanguage: string | null;
600
- contactCountry: string | null;
601
- contactRegion: string | null;
602
- contactCity: string | null;
603
- contactAddressLine1: string | null;
604
- contactAddressLine2: string | null;
605
- contactPostalCode: string | null;
606
- sellCurrency: string;
607
- baseCurrency: string | null;
608
- fxRateSetId: string | null;
609
- sellAmountCents: number | null;
610
- baseSellAmountCents: number | null;
611
- costAmountCents: number | null;
612
- baseCostAmountCents: number | null;
613
- marginPercent: number | null;
614
- pax: number | null;
615
- internalNotes: string | null;
616
- customerPaymentPolicy: import("hono/utils/types").JSONValue;
617
- priceOverride: {
618
- isManual: true;
619
- originalAmountCents: number | null;
620
- overriddenAmountCents: number;
621
- currency: string;
622
- reason: string;
623
- overriddenBy: string;
624
- overriddenAt: string;
625
- } | null;
626
- holdExpiresAt: string | null;
627
- confirmedAt: string | null;
628
- expiredAt: string | null;
629
- cancelledAt: string | null;
630
- awaitingPaymentAt: string | null;
631
- paidAt: string | null;
632
- };
633
- };
634
- outputFormat: "json";
635
- status: 201;
636
- } | {
637
- input: {};
638
- output: {
639
- error: string;
640
- };
641
- outputFormat: "json";
642
- status: 404;
643
- } | {
644
- input: {};
645
- output: {
646
- error: string;
647
- };
648
- outputFormat: "json";
649
- status: 409;
650
- } | {
651
- input: {};
652
- output: {
653
- error: string;
654
- };
655
- outputFormat: "json";
656
- status: 400;
657
- };
658
- };
659
- } & {
660
- "/from-product": {
661
- $post: {
662
- input: {};
663
- output: {
664
- error: string;
665
- };
666
- outputFormat: "json";
667
- status: 404;
668
- } | {
669
- input: {};
670
- output: {
671
- data: {
672
- id: string;
673
- status: "expired" | "cancelled" | "completed" | "draft" | "on_hold" | "awaiting_payment" | "confirmed" | "in_progress";
674
- organizationId: string | null;
675
- createdAt: string;
676
- updatedAt: string;
677
- redeemedAt: string | null;
678
- startDate: string | null;
679
- endDate: string | null;
680
- completedAt: string | null;
681
- bookingNumber: string;
682
- personId: string | null;
683
- sourceType: "internal" | "direct" | "manual" | "affiliate" | "ota" | "reseller" | "api_partner";
684
- externalBookingRef: string | null;
685
- communicationLanguage: string | null;
686
- contactFirstName: string | null;
687
- contactLastName: string | null;
688
- contactPartyType: string | null;
689
- contactTaxId: string | null;
690
- contactEmail: string | null;
691
- contactPhone: string | null;
692
- contactPreferredLanguage: string | null;
693
- contactCountry: string | null;
694
- contactRegion: string | null;
695
- contactCity: string | null;
696
- contactAddressLine1: string | null;
697
- contactAddressLine2: string | null;
698
- contactPostalCode: string | null;
699
- sellCurrency: string;
700
- baseCurrency: string | null;
701
- fxRateSetId: string | null;
702
- sellAmountCents: number | null;
703
- baseSellAmountCents: number | null;
704
- costAmountCents: number | null;
705
- baseCostAmountCents: number | null;
706
- marginPercent: number | null;
707
- pax: number | null;
708
- internalNotes: string | null;
709
- customerPaymentPolicy: import("hono/utils/types").JSONValue;
710
- priceOverride: {
711
- isManual: true;
712
- originalAmountCents: number | null;
713
- overriddenAmountCents: number;
714
- currency: string;
715
- reason: string;
716
- overriddenBy: string;
717
- overriddenAt: string;
718
- } | null;
719
- holdExpiresAt: string | null;
720
- confirmedAt: string | null;
721
- expiredAt: string | null;
722
- cancelledAt: string | null;
723
- awaitingPaymentAt: string | null;
724
- paidAt: string | null;
725
- };
726
- };
727
- outputFormat: "json";
728
- status: 201;
729
- };
730
- };
731
- } & {
732
- "/from-offer/:offerId/reserve": {
733
- $post: {
734
- input: {
735
- param: {
736
- offerId: string;
737
- };
738
- };
739
- output: {
740
- error: string;
741
- };
742
- outputFormat: "json";
743
- status: 404;
744
- } | {
745
- input: {
746
- param: {
747
- offerId: string;
748
- };
749
- };
750
- output: {
751
- error: string;
752
- };
753
- outputFormat: "json";
754
- status: 409;
755
- } | {
756
- input: {
757
- param: {
758
- offerId: string;
759
- };
760
- };
761
- output: {
762
- data: import("hono/utils/types").JSONValue;
763
- };
764
- outputFormat: "json";
765
- status: 201;
766
- } | {
767
- input: {
768
- param: {
769
- offerId: string;
770
- };
771
- };
772
- output: {
773
- error: string;
774
- };
775
- outputFormat: "json";
776
- status: 400;
777
- };
778
- };
779
- } & {
780
- "/from-order/:orderId/reserve": {
781
- $post: {
782
- input: {
783
- param: {
784
- orderId: string;
785
- };
786
- };
787
- output: {
788
- error: string;
789
- };
790
- outputFormat: "json";
791
- status: 404;
792
- } | {
793
- input: {
794
- param: {
795
- orderId: string;
796
- };
797
- };
798
- output: {
799
- error: string;
800
- };
801
- outputFormat: "json";
802
- status: 409;
803
- } | {
804
- input: {
805
- param: {
806
- orderId: string;
807
- };
808
- };
809
- output: {
810
- data: import("hono/utils/types").JSONValue;
811
- };
812
- outputFormat: "json";
813
- status: 201;
814
- } | {
815
- input: {
816
- param: {
817
- orderId: string;
818
- };
819
- };
820
- output: {
821
- error: string;
822
- };
823
- outputFormat: "json";
824
- status: 400;
825
- };
826
- };
827
- } & {
828
- "/": {
829
- $post: {
830
- input: {};
831
- output: {
832
- data: {
833
- id: string;
834
- status: "expired" | "cancelled" | "completed" | "draft" | "on_hold" | "awaiting_payment" | "confirmed" | "in_progress";
835
- organizationId: string | null;
836
- createdAt: string;
837
- updatedAt: string;
838
- redeemedAt: string | null;
839
- startDate: string | null;
840
- endDate: string | null;
841
- completedAt: string | null;
842
- bookingNumber: string;
843
- personId: string | null;
844
- sourceType: "internal" | "direct" | "manual" | "affiliate" | "ota" | "reseller" | "api_partner";
845
- externalBookingRef: string | null;
846
- communicationLanguage: string | null;
847
- contactFirstName: string | null;
848
- contactLastName: string | null;
849
- contactPartyType: string | null;
850
- contactTaxId: string | null;
851
- contactEmail: string | null;
852
- contactPhone: string | null;
853
- contactPreferredLanguage: string | null;
854
- contactCountry: string | null;
855
- contactRegion: string | null;
856
- contactCity: string | null;
857
- contactAddressLine1: string | null;
858
- contactAddressLine2: string | null;
859
- contactPostalCode: string | null;
860
- sellCurrency: string;
861
- baseCurrency: string | null;
862
- fxRateSetId: string | null;
863
- sellAmountCents: number | null;
864
- baseSellAmountCents: number | null;
865
- costAmountCents: number | null;
866
- baseCostAmountCents: number | null;
867
- marginPercent: number | null;
868
- pax: number | null;
869
- internalNotes: string | null;
870
- customerPaymentPolicy: import("hono/utils/types").JSONValue;
871
- priceOverride: {
872
- isManual: true;
873
- originalAmountCents: number | null;
874
- overriddenAmountCents: number;
875
- currency: string;
876
- reason: string;
877
- overriddenBy: string;
878
- overriddenAt: string;
879
- } | null;
880
- holdExpiresAt: string | null;
881
- confirmedAt: string | null;
882
- expiredAt: string | null;
883
- cancelledAt: string | null;
884
- awaitingPaymentAt: string | null;
885
- paidAt: string | null;
886
- } | null;
887
- };
888
- outputFormat: "json";
889
- status: 201;
890
- } | {
891
- input: {};
892
- output: {
893
- error: string;
894
- details: undefined;
895
- };
896
- outputFormat: "json";
897
- status: 400;
898
- };
899
- };
900
- } & {
901
- "/:id": {
902
- $patch: {
903
- input: {
904
- param: {
905
- id: string;
906
- };
907
- };
908
- output: {
909
- error: string;
910
- };
911
- outputFormat: "json";
912
- status: 404;
913
- } | {
914
- input: {
915
- param: {
916
- id: string;
917
- };
918
- };
919
- output: {
920
- data: {
921
- id: string;
922
- bookingNumber: string;
923
- status: "expired" | "cancelled" | "completed" | "draft" | "on_hold" | "awaiting_payment" | "confirmed" | "in_progress";
924
- personId: string | null;
925
- organizationId: string | null;
926
- sourceType: "internal" | "direct" | "manual" | "affiliate" | "ota" | "reseller" | "api_partner";
927
- externalBookingRef: string | null;
928
- communicationLanguage: string | null;
929
- contactFirstName: string | null;
930
- contactLastName: string | null;
931
- contactPartyType: string | null;
932
- contactTaxId: string | null;
933
- contactEmail: string | null;
934
- contactPhone: string | null;
935
- contactPreferredLanguage: string | null;
936
- contactCountry: string | null;
937
- contactRegion: string | null;
938
- contactCity: string | null;
939
- contactAddressLine1: string | null;
940
- contactAddressLine2: string | null;
941
- contactPostalCode: string | null;
942
- sellCurrency: string;
943
- baseCurrency: string | null;
944
- fxRateSetId: string | null;
945
- sellAmountCents: number | null;
946
- baseSellAmountCents: number | null;
947
- costAmountCents: number | null;
948
- baseCostAmountCents: number | null;
949
- marginPercent: number | null;
950
- startDate: string | null;
951
- endDate: string | null;
952
- pax: number | null;
953
- internalNotes: string | null;
954
- customerPaymentPolicy: import("hono/utils/types").JSONValue;
955
- priceOverride: {
956
- isManual: true;
957
- originalAmountCents: number | null;
958
- overriddenAmountCents: number;
959
- currency: string;
960
- reason: string;
961
- overriddenBy: string;
962
- overriddenAt: string;
963
- } | null;
964
- holdExpiresAt: string | null;
965
- confirmedAt: string | null;
966
- expiredAt: string | null;
967
- cancelledAt: string | null;
968
- completedAt: string | null;
969
- awaitingPaymentAt: string | null;
970
- paidAt: string | null;
971
- redeemedAt: string | null;
972
- createdAt: string;
973
- updatedAt: string;
974
- };
975
- };
976
- outputFormat: "json";
977
- status: import("hono/utils/http-status").ContentfulStatusCode;
978
- };
979
- };
980
- } & {
981
- "/:id": {
982
- $delete: {
983
- input: {
984
- param: {
985
- id: string;
986
- };
987
- };
988
- output: {
989
- error: string;
990
- };
991
- outputFormat: "json";
992
- status: 404;
993
- } | {
994
- input: {
995
- param: {
996
- id: string;
997
- };
998
- };
999
- output: {
1000
- success: true;
1001
- };
1002
- outputFormat: "json";
1003
- status: 200;
1004
- };
1005
- };
1006
- } & {
1007
- "/:id/confirm": {
1008
- $post: {
1009
- input: {
1010
- param: {
1011
- id: string;
1012
- };
1013
- };
1014
- output: {};
1015
- outputFormat: string;
1016
- status: import("hono/utils/http-status").StatusCode;
1017
- };
1018
- };
1019
- } & {
1020
- "/:id/extend-hold": {
1021
- $post: {
1022
- input: {
1023
- param: {
1024
- id: string;
1025
- };
1026
- };
1027
- output: {
1028
- error: string;
1029
- };
1030
- outputFormat: "json";
1031
- status: 404;
1032
- } | {
1033
- input: {
1034
- param: {
1035
- id: string;
1036
- };
1037
- };
1038
- output: {
1039
- error: string;
1040
- };
1041
- outputFormat: "json";
1042
- status: 409;
1043
- } | {
1044
- input: {
1045
- param: {
1046
- id: string;
1047
- };
1048
- };
1049
- output: {
1050
- data: {
1051
- id: string;
1052
- bookingNumber: string;
1053
- status: "expired" | "cancelled" | "completed" | "draft" | "on_hold" | "awaiting_payment" | "confirmed" | "in_progress";
1054
- personId: string | null;
1055
- organizationId: string | null;
1056
- sourceType: "internal" | "direct" | "manual" | "affiliate" | "ota" | "reseller" | "api_partner";
1057
- externalBookingRef: string | null;
1058
- communicationLanguage: string | null;
1059
- contactFirstName: string | null;
1060
- contactLastName: string | null;
1061
- contactPartyType: string | null;
1062
- contactTaxId: string | null;
1063
- contactEmail: string | null;
1064
- contactPhone: string | null;
1065
- contactPreferredLanguage: string | null;
1066
- contactCountry: string | null;
1067
- contactRegion: string | null;
1068
- contactCity: string | null;
1069
- contactAddressLine1: string | null;
1070
- contactAddressLine2: string | null;
1071
- contactPostalCode: string | null;
1072
- sellCurrency: string;
1073
- baseCurrency: string | null;
1074
- fxRateSetId: string | null;
1075
- sellAmountCents: number | null;
1076
- baseSellAmountCents: number | null;
1077
- costAmountCents: number | null;
1078
- baseCostAmountCents: number | null;
1079
- marginPercent: number | null;
1080
- startDate: string | null;
1081
- endDate: string | null;
1082
- pax: number | null;
1083
- internalNotes: string | null;
1084
- customerPaymentPolicy: import("hono/utils/types").JSONValue;
1085
- priceOverride: {
1086
- isManual: true;
1087
- originalAmountCents: number | null;
1088
- overriddenAmountCents: number;
1089
- currency: string;
1090
- reason: string;
1091
- overriddenBy: string;
1092
- overriddenAt: string;
1093
- } | null;
1094
- holdExpiresAt: string | null;
1095
- confirmedAt: string | null;
1096
- expiredAt: string | null;
1097
- cancelledAt: string | null;
1098
- completedAt: string | null;
1099
- awaitingPaymentAt: string | null;
1100
- paidAt: string | null;
1101
- redeemedAt: string | null;
1102
- createdAt: string;
1103
- updatedAt: string;
1104
- } | null;
1105
- };
1106
- outputFormat: "json";
1107
- status: import("hono/utils/http-status").ContentfulStatusCode;
1108
- } | {
1109
- input: {
1110
- param: {
1111
- id: string;
1112
- };
1113
- };
1114
- output: {
1115
- error: string;
1116
- };
1117
- outputFormat: "json";
1118
- status: 400;
1119
- };
1120
- };
1121
- } & {
1122
- "/:id/expire": {
1123
- $post: {
1124
- input: {
1125
- param: {
1126
- id: string;
1127
- };
1128
- };
1129
- output: {};
1130
- outputFormat: string;
1131
- status: import("hono/utils/http-status").StatusCode;
1132
- };
1133
- };
1134
- } & {
1135
- "/expire-stale": {
1136
- $post: {
1137
- input: {};
1138
- output: {
1139
- expiredIds: string[];
1140
- count: number;
1141
- cutoff: string;
1142
- };
1143
- outputFormat: "json";
1144
- status: import("hono/utils/http-status").ContentfulStatusCode;
1145
- };
1146
- };
1147
- } & {
1148
- "/:id/cancel": {
1149
- $post: {
1150
- input: {
1151
- param: {
1152
- id: string;
1153
- };
1154
- };
1155
- output: {};
1156
- outputFormat: string;
1157
- status: import("hono/utils/http-status").StatusCode;
1158
- };
1159
- };
1160
- } & {
1161
- "/:id/start": {
1162
- $post: {
1163
- input: {
1164
- param: {
1165
- id: string;
1166
- };
1167
- };
1168
- output: {};
1169
- outputFormat: string;
1170
- status: import("hono/utils/http-status").StatusCode;
1171
- };
1172
- };
1173
- } & {
1174
- "/:id/complete": {
1175
- $post: {
1176
- input: {
1177
- param: {
1178
- id: string;
1179
- };
1180
- };
1181
- output: {};
1182
- outputFormat: string;
1183
- status: import("hono/utils/http-status").StatusCode;
1184
- };
1185
- };
1186
- } & {
1187
- "/:id/override-status": {
1188
- $post: {
1189
- input: {
1190
- param: {
1191
- id: string;
1192
- };
1193
- };
1194
- output: {};
1195
- outputFormat: string;
1196
- status: import("hono/utils/http-status").StatusCode;
1197
- };
1198
- };
1199
- } & {
1200
- "/:id/allocations": {
1201
- $get: {
1202
- input: {
1203
- param: {
1204
- id: string;
1205
- };
1206
- };
1207
- output: {
1208
- data: {
1209
- id: string;
1210
- bookingId: string;
1211
- bookingItemId: string;
1212
- productId: string | null;
1213
- optionId: string | null;
1214
- optionUnitId: string | null;
1215
- pricingCategoryId: string | null;
1216
- availabilitySlotId: string | null;
1217
- quantity: number;
1218
- allocationType: "resource" | "unit" | "pickup";
1219
- status: "expired" | "cancelled" | "confirmed" | "fulfilled" | "held" | "released";
1220
- holdExpiresAt: string | null;
1221
- confirmedAt: string | null;
1222
- releasedAt: string | null;
1223
- metadata: {
1224
- [x: string]: import("hono/utils/types").JSONValue;
1225
- } | null;
1226
- createdAt: string;
1227
- updatedAt: string;
1228
- }[];
1229
- };
1230
- outputFormat: "json";
1231
- status: import("hono/utils/http-status").ContentfulStatusCode;
1232
- };
1233
- };
1234
- } & {
1235
- "/:id/travelers": {
1236
- $get: {
1237
- input: {
1238
- param: {
1239
- id: string;
1240
- };
1241
- };
1242
- output: {
1243
- data: {
1244
- id: string;
1245
- bookingId: string;
1246
- participantType: "other" | "traveler" | "occupant";
1247
- travelerCategory: "child" | "other" | "adult" | "infant" | "senior" | null;
1248
- firstName: string;
1249
- lastName: string;
1250
- email: string | null;
1251
- phone: string | null;
1252
- preferredLanguage: string | null;
1253
- specialRequests: string | null;
1254
- isPrimary: boolean;
1255
- notes: string | null;
1256
- createdAt: string;
1257
- updatedAt: string;
1258
- }[];
1259
- };
1260
- outputFormat: "json";
1261
- status: import("hono/utils/http-status").ContentfulStatusCode;
1262
- };
1263
- };
1264
- } & {
1265
- "/:id/travelers/:travelerId/reveal": {
1266
- $get: {
1267
- input: {
1268
- param: {
1269
- id: string;
1270
- } & {
1271
- travelerId: string;
1272
- };
1273
- };
1274
- output: {};
1275
- outputFormat: string;
1276
- status: import("hono/utils/http-status").StatusCode;
1277
- };
1278
- };
1279
- } & {
1280
- "/:id/travelers/:travelerId/travel-details": {
1281
- $get: {
1282
- input: {
1283
- param: {
1284
- id: string;
1285
- } & {
1286
- travelerId: string;
1287
- };
1288
- };
1289
- output: {};
1290
- outputFormat: string;
1291
- status: import("hono/utils/http-status").StatusCode;
1292
- };
1293
- };
1294
- } & {
1295
- "/:id/travelers": {
1296
- $post: {
1297
- input: {
1298
- param: {
1299
- id: string;
1300
- };
1301
- };
1302
- output: {
1303
- error: string;
1304
- };
1305
- outputFormat: "json";
1306
- status: 404;
1307
- } | {
1308
- input: {
1309
- param: {
1310
- id: string;
1311
- };
1312
- };
1313
- output: {
1314
- data: {
1315
- id: string;
1316
- bookingId: string;
1317
- participantType: "other" | "traveler" | "occupant";
1318
- travelerCategory: "child" | "other" | "adult" | "infant" | "senior" | null;
1319
- firstName: string;
1320
- lastName: string;
1321
- email: string | null;
1322
- phone: string | null;
1323
- preferredLanguage: string | null;
1324
- specialRequests: string | null;
1325
- isPrimary: boolean;
1326
- notes: string | null;
1327
- createdAt: string;
1328
- updatedAt: string;
1329
- };
1330
- };
1331
- outputFormat: "json";
1332
- status: 201;
1333
- };
1334
- };
1335
- } & {
1336
- "/:id/travelers/with-travel-details": {
1337
- $post: {
1338
- input: {
1339
- param: {
1340
- id: string;
1341
- };
1342
- };
1343
- output: {
1344
- error: string;
1345
- };
1346
- outputFormat: "json";
1347
- status: 500;
1348
- } | {
1349
- input: {
1350
- param: {
1351
- id: string;
1352
- };
1353
- };
1354
- output: {
1355
- error: string;
1356
- };
1357
- outputFormat: "json";
1358
- status: 404;
1359
- } | {
1360
- input: {
1361
- param: {
1362
- id: string;
1363
- };
1364
- };
1365
- output: {
1366
- data: {
1367
- traveler: {
1368
- id: string;
1369
- createdAt: string;
1370
- updatedAt: string;
1371
- email: string | null;
1372
- notes: string | null;
1373
- firstName: string;
1374
- lastName: string;
1375
- bookingId: string;
1376
- personId: string | null;
1377
- participantType: "other" | "traveler" | "occupant";
1378
- travelerCategory: "child" | "other" | "adult" | "infant" | "senior" | null;
1379
- phone: string | null;
1380
- preferredLanguage: string | null;
1381
- specialRequests: string | null;
1382
- isPrimary: boolean;
1383
- };
1384
- travelDetails: {
1385
- travelerId: string;
1386
- nationality: string | null;
1387
- documentType: "passport" | "visa" | "other" | "id_card" | "driver_license" | null;
1388
- documentNumber: string | null;
1389
- documentExpiry: string | null;
1390
- documentIssuingCountry: string | null;
1391
- documentIssuingAuthority: string | null;
1392
- documentPersonDocumentId: string | null;
1393
- dateOfBirth: string | null;
1394
- dietaryRequirements: string | null;
1395
- accessibilityNeeds: string | null;
1396
- isLeadTraveler: boolean;
1397
- sharingGroupId: string | null;
1398
- roomTypeId: string | null;
1399
- bedPreference: "single" | "twin" | "double" | "no-preference" | null;
1400
- allocations: {
1401
- [x: string]: string;
1402
- };
1403
- createdAt: string;
1404
- updatedAt: string;
1405
- } | null;
1406
- };
1407
- };
1408
- outputFormat: "json";
1409
- status: 201;
1410
- };
1411
- };
1412
- } & {
1413
- "/:id/travelers/:travelerId/with-travel-details": {
1414
- $patch: {
1415
- input: {
1416
- param: {
1417
- id: string;
1418
- } & {
1419
- travelerId: string;
1420
- };
1421
- };
1422
- output: {
1423
- error: string;
1424
- };
1425
- outputFormat: "json";
1426
- status: 500;
1427
- } | {
1428
- input: {
1429
- param: {
1430
- id: string;
1431
- } & {
1432
- travelerId: string;
1433
- };
1434
- };
1435
- output: {
1436
- error: string;
1437
- };
1438
- outputFormat: "json";
1439
- status: 404;
1440
- } | {
1441
- input: {
1442
- param: {
1443
- id: string;
1444
- } & {
1445
- travelerId: string;
1446
- };
1447
- };
1448
- output: {
1449
- data: {
1450
- traveler: {
1451
- id: string;
1452
- bookingId: string;
1453
- personId: string | null;
1454
- participantType: "other" | "traveler" | "occupant";
1455
- travelerCategory: "child" | "other" | "adult" | "infant" | "senior" | null;
1456
- firstName: string;
1457
- lastName: string;
1458
- email: string | null;
1459
- phone: string | null;
1460
- preferredLanguage: string | null;
1461
- specialRequests: string | null;
1462
- isPrimary: boolean;
1463
- notes: string | null;
1464
- createdAt: string;
1465
- updatedAt: string;
1466
- };
1467
- travelDetails: {
1468
- travelerId: string;
1469
- nationality: string | null;
1470
- documentType: "passport" | "visa" | "other" | "id_card" | "driver_license" | null;
1471
- documentNumber: string | null;
1472
- documentExpiry: string | null;
1473
- documentIssuingCountry: string | null;
1474
- documentIssuingAuthority: string | null;
1475
- documentPersonDocumentId: string | null;
1476
- dateOfBirth: string | null;
1477
- dietaryRequirements: string | null;
1478
- accessibilityNeeds: string | null;
1479
- isLeadTraveler: boolean;
1480
- sharingGroupId: string | null;
1481
- roomTypeId: string | null;
1482
- bedPreference: "single" | "twin" | "double" | "no-preference" | null;
1483
- allocations: {
1484
- [x: string]: string;
1485
- };
1486
- createdAt: string;
1487
- updatedAt: string;
1488
- } | null;
1489
- };
1490
- };
1491
- outputFormat: "json";
1492
- status: import("hono/utils/http-status").ContentfulStatusCode;
1493
- };
1494
- };
1495
- } & {
1496
- "/:id/travelers/:travelerId/travel-details": {
1497
- $patch: {
1498
- input: {
1499
- param: {
1500
- id: string;
1501
- } & {
1502
- travelerId: string;
1503
- };
1504
- };
1505
- output: {};
1506
- outputFormat: string;
1507
- status: import("hono/utils/http-status").StatusCode;
1508
- };
1509
- };
1510
- } & {
1511
- "/:id/travelers/:travelerId": {
1512
- $patch: {
1513
- input: {
1514
- param: {
1515
- id: string;
1516
- } & {
1517
- travelerId: string;
1518
- };
1519
- };
1520
- output: {
1521
- error: string;
1522
- };
1523
- outputFormat: "json";
1524
- status: 404;
1525
- } | {
1526
- input: {
1527
- param: {
1528
- id: string;
1529
- } & {
1530
- travelerId: string;
1531
- };
1532
- };
1533
- output: {
1534
- data: {
1535
- id: string;
1536
- bookingId: string;
1537
- participantType: "other" | "traveler" | "occupant";
1538
- travelerCategory: "child" | "other" | "adult" | "infant" | "senior" | null;
1539
- firstName: string;
1540
- lastName: string;
1541
- email: string | null;
1542
- phone: string | null;
1543
- preferredLanguage: string | null;
1544
- specialRequests: string | null;
1545
- isPrimary: boolean;
1546
- notes: string | null;
1547
- createdAt: string;
1548
- updatedAt: string;
1549
- };
1550
- };
1551
- outputFormat: "json";
1552
- status: import("hono/utils/http-status").ContentfulStatusCode;
1553
- };
1554
- };
1555
- } & {
1556
- "/:id/travelers/:travelerId/travel-details": {
1557
- $delete: {
1558
- input: {
1559
- param: {
1560
- id: string;
1561
- } & {
1562
- travelerId: string;
1563
- };
1564
- };
1565
- output: {};
1566
- outputFormat: string;
1567
- status: import("hono/utils/http-status").StatusCode;
1568
- };
1569
- };
1570
- } & {
1571
- "/:id/travelers/:travelerId": {
1572
- $delete: {
1573
- input: {
1574
- param: {
1575
- id: string;
1576
- } & {
1577
- travelerId: string;
1578
- };
1579
- };
1580
- output: {
1581
- error: string;
1582
- };
1583
- outputFormat: "json";
1584
- status: 404;
1585
- } | {
1586
- input: {
1587
- param: {
1588
- id: string;
1589
- } & {
1590
- travelerId: string;
1591
- };
1592
- };
1593
- output: {
1594
- success: true;
1595
- };
1596
- outputFormat: "json";
1597
- status: 200;
1598
- };
1599
- };
1600
- } & {
1601
- "/:id/items": {
1602
- $get: {
1603
- input: {
1604
- param: {
1605
- id: string;
1606
- };
1607
- };
1608
- output: {
1609
- data: {
1610
- id: string;
1611
- bookingId: string;
1612
- title: string;
1613
- description: string | null;
1614
- itemType: "service" | "other" | "unit" | "extra" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
1615
- status: "expired" | "cancelled" | "draft" | "on_hold" | "confirmed" | "fulfilled";
1616
- serviceDate: string | null;
1617
- startsAt: string | null;
1618
- endsAt: string | null;
1619
- quantity: number;
1620
- sellCurrency: string;
1621
- unitSellAmountCents: number | null;
1622
- totalSellAmountCents: number | null;
1623
- costCurrency: string | null;
1624
- unitCostAmountCents: number | null;
1625
- totalCostAmountCents: number | null;
1626
- notes: string | null;
1627
- productId: string | null;
1628
- optionId: string | null;
1629
- optionUnitId: string | null;
1630
- pricingCategoryId: string | null;
1631
- availabilitySlotId: string | null;
1632
- productNameSnapshot: string | null;
1633
- optionNameSnapshot: string | null;
1634
- unitNameSnapshot: string | null;
1635
- departureLabelSnapshot: string | null;
1636
- sourceSnapshotId: string | null;
1637
- sourceOfferId: string | null;
1638
- metadata: {
1639
- [x: string]: import("hono/utils/types").JSONValue;
1640
- } | null;
1641
- createdAt: string;
1642
- updatedAt: string;
1643
- }[];
1644
- };
1645
- outputFormat: "json";
1646
- status: import("hono/utils/http-status").ContentfulStatusCode;
1647
- };
1648
- };
1649
- } & {
1650
- "/:id/items": {
1651
- $post: {
1652
- input: {
1653
- param: {
1654
- id: string;
1655
- };
1656
- };
1657
- output: {
1658
- error: string;
1659
- };
1660
- outputFormat: "json";
1661
- status: 404;
1662
- } | {
1663
- input: {
1664
- param: {
1665
- id: string;
1666
- };
1667
- };
1668
- output: {
1669
- data: {
1670
- id: string;
1671
- description: string | null;
1672
- status: "expired" | "cancelled" | "draft" | "on_hold" | "confirmed" | "fulfilled";
1673
- createdAt: string;
1674
- metadata: {
1675
- [x: string]: import("hono/utils/types").JSONValue;
1676
- } | null;
1677
- updatedAt: string;
1678
- notes: string | null;
1679
- bookingId: string;
1680
- title: string;
1681
- sellCurrency: string;
1682
- productId: string | null;
1683
- optionUnitId: string | null;
1684
- optionId: string | null;
1685
- startsAt: string | null;
1686
- endsAt: string | null;
1687
- itemType: "service" | "other" | "unit" | "extra" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
1688
- serviceDate: string | null;
1689
- quantity: number;
1690
- unitSellAmountCents: number | null;
1691
- totalSellAmountCents: number | null;
1692
- costCurrency: string | null;
1693
- unitCostAmountCents: number | null;
1694
- totalCostAmountCents: number | null;
1695
- pricingCategoryId: string | null;
1696
- availabilitySlotId: string | null;
1697
- productNameSnapshot: string | null;
1698
- optionNameSnapshot: string | null;
1699
- unitNameSnapshot: string | null;
1700
- departureLabelSnapshot: string | null;
1701
- sourceSnapshotId: string | null;
1702
- sourceOfferId: string | null;
1703
- };
1704
- };
1705
- outputFormat: "json";
1706
- status: 201;
1707
- };
1708
- };
1709
- } & {
1710
- "/:id/items/:itemId": {
1711
- $patch: {
1712
- input: {
1713
- param: {
1714
- id: string;
1715
- } & {
1716
- itemId: string;
1717
- };
1718
- };
1719
- output: {
1720
- error: string;
1721
- };
1722
- outputFormat: "json";
1723
- status: 404;
1724
- } | {
1725
- input: {
1726
- param: {
1727
- id: string;
1728
- } & {
1729
- itemId: string;
1730
- };
1731
- };
1732
- output: {
1733
- data: {
1734
- id: string;
1735
- bookingId: string;
1736
- title: string;
1737
- description: string | null;
1738
- itemType: "service" | "other" | "unit" | "extra" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
1739
- status: "expired" | "cancelled" | "draft" | "on_hold" | "confirmed" | "fulfilled";
1740
- serviceDate: string | null;
1741
- startsAt: string | null;
1742
- endsAt: string | null;
1743
- quantity: number;
1744
- sellCurrency: string;
1745
- unitSellAmountCents: number | null;
1746
- totalSellAmountCents: number | null;
1747
- costCurrency: string | null;
1748
- unitCostAmountCents: number | null;
1749
- totalCostAmountCents: number | null;
1750
- notes: string | null;
1751
- productId: string | null;
1752
- optionId: string | null;
1753
- optionUnitId: string | null;
1754
- pricingCategoryId: string | null;
1755
- availabilitySlotId: string | null;
1756
- productNameSnapshot: string | null;
1757
- optionNameSnapshot: string | null;
1758
- unitNameSnapshot: string | null;
1759
- departureLabelSnapshot: string | null;
1760
- sourceSnapshotId: string | null;
1761
- sourceOfferId: string | null;
1762
- metadata: {
1763
- [x: string]: import("hono/utils/types").JSONValue;
1764
- } | null;
1765
- createdAt: string;
1766
- updatedAt: string;
1767
- };
1768
- };
1769
- outputFormat: "json";
1770
- status: import("hono/utils/http-status").ContentfulStatusCode;
1771
- };
1772
- };
1773
- } & {
1774
- "/:id/items/:itemId": {
1775
- $delete: {
1776
- input: {
1777
- param: {
1778
- id: string;
1779
- } & {
1780
- itemId: string;
1781
- };
1782
- };
1783
- output: {
1784
- error: string;
1785
- };
1786
- outputFormat: "json";
1787
- status: 404;
1788
- } | {
1789
- input: {
1790
- param: {
1791
- id: string;
1792
- } & {
1793
- itemId: string;
1794
- };
1795
- };
1796
- output: {
1797
- success: true;
1798
- };
1799
- outputFormat: "json";
1800
- status: 200;
1801
- };
1802
- };
1803
- } & {
1804
- "/:id/items/:itemId/travelers": {
1805
- $get: {
1806
- input: {
1807
- param: {
1808
- id: string;
1809
- } & {
1810
- itemId: string;
1811
- };
1812
- };
1813
- output: {
1814
- data: {
1815
- id: string;
1816
- bookingItemId: string;
1817
- travelerId: string;
1818
- role: "other" | "traveler" | "occupant" | "beneficiary";
1819
- isPrimary: boolean;
1820
- createdAt: string;
1821
- }[];
1822
- };
1823
- outputFormat: "json";
1824
- status: import("hono/utils/http-status").ContentfulStatusCode;
1825
- };
1826
- };
1827
- } & {
1828
- "/:id/items/:itemId/travelers": {
1829
- $post: {
1830
- input: {
1831
- param: {
1832
- id: string;
1833
- } & {
1834
- itemId: string;
1835
- };
1836
- };
1837
- output: {
1838
- error: string;
1839
- };
1840
- outputFormat: "json";
1841
- status: 404;
1842
- } | {
1843
- input: {
1844
- param: {
1845
- id: string;
1846
- } & {
1847
- itemId: string;
1848
- };
1849
- };
1850
- output: {
1851
- data: {
1852
- id: string;
1853
- createdAt: string;
1854
- role: "other" | "traveler" | "occupant" | "beneficiary";
1855
- isPrimary: boolean;
1856
- travelerId: string;
1857
- bookingItemId: string;
1858
- };
1859
- };
1860
- outputFormat: "json";
1861
- status: 201;
1862
- };
1863
- };
1864
- } & {
1865
- "/:id/items/:itemId/travelers/:linkId": {
1866
- $delete: {
1867
- input: {
1868
- param: {
1869
- id: string;
1870
- } & {
1871
- itemId: string;
1872
- } & {
1873
- linkId: string;
1874
- };
1875
- };
1876
- output: {
1877
- error: string;
1878
- };
1879
- outputFormat: "json";
1880
- status: 404;
1881
- } | {
1882
- input: {
1883
- param: {
1884
- id: string;
1885
- } & {
1886
- itemId: string;
1887
- } & {
1888
- linkId: string;
1889
- };
1890
- };
1891
- output: {
1892
- success: true;
1893
- };
1894
- outputFormat: "json";
1895
- status: 200;
1896
- };
1897
- };
1898
- } & {
1899
- "/:id/supplier-statuses": {
1900
- $get: {
1901
- input: {
1902
- param: {
1903
- id: string;
1904
- };
1905
- };
1906
- output: {
1907
- data: {
1908
- id: string;
1909
- bookingId: string;
1910
- supplierServiceId: string | null;
1911
- supplierId: string | null;
1912
- serviceName: string;
1913
- status: "cancelled" | "pending" | "confirmed" | "rejected";
1914
- supplierReference: string | null;
1915
- costCurrency: string;
1916
- costAmountCents: number;
1917
- supplierInvoiceLineId: string | null;
1918
- notes: string | null;
1919
- confirmedAt: string | null;
1920
- createdAt: string;
1921
- updatedAt: string;
1922
- }[];
1923
- };
1924
- outputFormat: "json";
1925
- status: import("hono/utils/http-status").ContentfulStatusCode;
1926
- };
1927
- };
1928
- } & {
1929
- "/:id/supplier-statuses": {
1930
- $post: {
1931
- input: {
1932
- param: {
1933
- id: string;
1934
- };
1935
- };
1936
- output: {
1937
- error: string;
1938
- };
1939
- outputFormat: "json";
1940
- status: 404;
1941
- } | {
1942
- input: {
1943
- param: {
1944
- id: string;
1945
- };
1946
- };
1947
- output: {
1948
- data: {
1949
- id: string;
1950
- status: "cancelled" | "pending" | "confirmed" | "rejected";
1951
- createdAt: string;
1952
- updatedAt: string;
1953
- notes: string | null;
1954
- bookingId: string;
1955
- costAmountCents: number;
1956
- confirmedAt: string | null;
1957
- costCurrency: string;
1958
- supplierServiceId: string | null;
1959
- supplierId: string | null;
1960
- serviceName: string;
1961
- supplierReference: string | null;
1962
- supplierInvoiceLineId: string | null;
1963
- };
1964
- };
1965
- outputFormat: "json";
1966
- status: 201;
1967
- };
1968
- };
1969
- } & {
1970
- "/:id/supplier-statuses/:statusId": {
1971
- $patch: {
1972
- input: {
1973
- param: {
1974
- id: string;
1975
- } & {
1976
- statusId: string;
1977
- };
1978
- };
1979
- output: {
1980
- error: string;
1981
- };
1982
- outputFormat: "json";
1983
- status: 404;
1984
- } | {
1985
- input: {
1986
- param: {
1987
- id: string;
1988
- } & {
1989
- statusId: string;
1990
- };
1991
- };
1992
- output: {
1993
- data: {
1994
- id: string;
1995
- bookingId: string;
1996
- supplierServiceId: string | null;
1997
- supplierId: string | null;
1998
- serviceName: string;
1999
- status: "cancelled" | "pending" | "confirmed" | "rejected";
2000
- supplierReference: string | null;
2001
- costCurrency: string;
2002
- costAmountCents: number;
2003
- supplierInvoiceLineId: string | null;
2004
- notes: string | null;
2005
- confirmedAt: string | null;
2006
- createdAt: string;
2007
- updatedAt: string;
2008
- };
2009
- };
2010
- outputFormat: "json";
2011
- status: import("hono/utils/http-status").ContentfulStatusCode;
2012
- };
2013
- };
2014
- } & {
2015
- "/:id/fulfillments": {
2016
- $get: {
2017
- input: {
2018
- param: {
2019
- id: string;
2020
- };
2021
- };
2022
- output: {
2023
- data: {
2024
- id: string;
2025
- bookingId: string;
2026
- bookingItemId: string | null;
2027
- travelerId: string | null;
2028
- fulfillmentType: "other" | "pdf" | "voucher" | "ticket" | "qr_code" | "barcode" | "mobile";
2029
- deliveryChannel: "api" | "email" | "other" | "download" | "wallet";
2030
- status: "failed" | "pending" | "revoked" | "issued" | "reissued";
2031
- artifactUrl: string | null;
2032
- payload: {
2033
- [x: string]: import("hono/utils/types").JSONValue;
2034
- } | null;
2035
- issuedAt: string | null;
2036
- revokedAt: string | null;
2037
- createdAt: string;
2038
- updatedAt: string;
2039
- }[];
2040
- };
2041
- outputFormat: "json";
2042
- status: import("hono/utils/http-status").ContentfulStatusCode;
2043
- };
2044
- };
2045
- } & {
2046
- "/:id/fulfillments": {
2047
- $post: {
2048
- input: {
2049
- param: {
2050
- id: string;
2051
- };
2052
- };
2053
- output: {
2054
- error: string;
2055
- };
2056
- outputFormat: "json";
2057
- status: 404;
2058
- } | {
2059
- input: {
2060
- param: {
2061
- id: string;
2062
- };
2063
- };
2064
- output: {
2065
- data: {
2066
- id: string;
2067
- status: "failed" | "pending" | "revoked" | "issued" | "reissued";
2068
- createdAt: string;
2069
- payload: {
2070
- [x: string]: import("hono/utils/types").JSONValue;
2071
- } | null;
2072
- updatedAt: string;
2073
- revokedAt: string | null;
2074
- bookingId: string;
2075
- travelerId: string | null;
2076
- bookingItemId: string | null;
2077
- fulfillmentType: "other" | "pdf" | "voucher" | "ticket" | "qr_code" | "barcode" | "mobile";
2078
- deliveryChannel: "api" | "email" | "other" | "download" | "wallet";
2079
- artifactUrl: string | null;
2080
- issuedAt: string | null;
2081
- };
2082
- };
2083
- outputFormat: "json";
2084
- status: 201;
2085
- };
2086
- };
2087
- } & {
2088
- "/:id/fulfillments/:fulfillmentId": {
2089
- $patch: {
2090
- input: {
2091
- param: {
2092
- id: string;
2093
- } & {
2094
- fulfillmentId: string;
2095
- };
2096
- };
2097
- output: {
2098
- error: string;
2099
- };
2100
- outputFormat: "json";
2101
- status: 404;
2102
- } | {
2103
- input: {
2104
- param: {
2105
- id: string;
2106
- } & {
2107
- fulfillmentId: string;
2108
- };
2109
- };
2110
- output: {
2111
- data: {
2112
- id: string;
2113
- bookingId: string;
2114
- bookingItemId: string | null;
2115
- travelerId: string | null;
2116
- fulfillmentType: "other" | "pdf" | "voucher" | "ticket" | "qr_code" | "barcode" | "mobile";
2117
- deliveryChannel: "api" | "email" | "other" | "download" | "wallet";
2118
- status: "failed" | "pending" | "revoked" | "issued" | "reissued";
2119
- artifactUrl: string | null;
2120
- payload: {
2121
- [x: string]: import("hono/utils/types").JSONValue;
2122
- } | null;
2123
- issuedAt: string | null;
2124
- revokedAt: string | null;
2125
- createdAt: string;
2126
- updatedAt: string;
2127
- };
2128
- };
2129
- outputFormat: "json";
2130
- status: import("hono/utils/http-status").ContentfulStatusCode;
2131
- };
2132
- };
2133
- } & {
2134
- "/:id/redemptions": {
2135
- $get: {
2136
- input: {
2137
- param: {
2138
- id: string;
2139
- };
2140
- };
2141
- output: {
2142
- data: {
2143
- id: string;
2144
- bookingId: string;
2145
- bookingItemId: string | null;
2146
- travelerId: string | null;
2147
- redeemedAt: string;
2148
- redeemedBy: string | null;
2149
- location: string | null;
2150
- method: "api" | "other" | "manual" | "scan";
2151
- metadata: {
2152
- [x: string]: import("hono/utils/types").JSONValue;
2153
- } | null;
2154
- createdAt: string;
2155
- }[];
2156
- };
2157
- outputFormat: "json";
2158
- status: import("hono/utils/http-status").ContentfulStatusCode;
2159
- };
2160
- };
2161
- } & {
2162
- "/:id/redemptions": {
2163
- $post: {
2164
- input: {
2165
- param: {
2166
- id: string;
2167
- };
2168
- };
2169
- output: {
2170
- error: string;
2171
- };
2172
- outputFormat: "json";
2173
- status: 404;
2174
- } | {
2175
- input: {
2176
- param: {
2177
- id: string;
2178
- };
2179
- };
2180
- output: {
2181
- data: {
2182
- id: string;
2183
- createdAt: string;
2184
- metadata: {
2185
- [x: string]: import("hono/utils/types").JSONValue;
2186
- } | null;
2187
- redeemedAt: string;
2188
- bookingId: string;
2189
- travelerId: string | null;
2190
- bookingItemId: string | null;
2191
- redeemedBy: string | null;
2192
- location: string | null;
2193
- method: "api" | "other" | "manual" | "scan";
2194
- };
2195
- };
2196
- outputFormat: "json";
2197
- status: 201;
2198
- };
2199
- };
2200
- } & {
2201
- "/:id/activity": {
2202
- $get: {
2203
- input: {
2204
- param: {
2205
- id: string;
2206
- };
2207
- };
2208
- output: {
2209
- data: {
2210
- actorName: string | null;
2211
- actorEmail: string | null;
2212
- id: string;
2213
- bookingId: string;
2214
- actorId: string | null;
2215
- activityType: "booking_created" | "booking_reserved" | "booking_converted" | "booking_confirmed" | "booking_started" | "booking_completed" | "hold_extended" | "hold_expired" | "status_change" | "status_overridden" | "item_update" | "allocation_released" | "fulfillment_issued" | "fulfillment_updated" | "redemption_recorded" | "supplier_update" | "traveler_update" | "note_added" | "system_action";
2216
- description: string;
2217
- metadata: {
2218
- [x: string]: import("hono/utils/types").JSONValue;
2219
- } | null;
2220
- createdAt: string;
2221
- }[];
2222
- };
2223
- outputFormat: "json";
2224
- status: import("hono/utils/http-status").ContentfulStatusCode;
2225
- };
2226
- };
2227
- } & {
2228
- "/:id/group": {
2229
- $get: {
2230
- input: {
2231
- param: {
2232
- id: string;
2233
- };
2234
- };
2235
- output: {
2236
- data: {
2237
- id: string;
2238
- createdAt: string;
2239
- metadata: {
2240
- [x: string]: import("hono/utils/types").JSONValue;
2241
- } | null;
2242
- updatedAt: string;
2243
- kind: "other" | "shared_room" | "cruise_party";
2244
- label: string;
2245
- primaryBookingId: string | null;
2246
- productId: string | null;
2247
- optionUnitId: string | null;
2248
- membership: {
2249
- id: string;
2250
- createdAt: string;
2251
- role: "primary" | "shared";
2252
- bookingId: string;
2253
- groupId: string;
2254
- };
2255
- } | null;
2256
- };
2257
- outputFormat: "json";
2258
- status: import("hono/utils/http-status").ContentfulStatusCode;
2259
- };
2260
- };
2261
- } & {
2262
- "/:id/notes": {
2263
- $get: {
2264
- input: {
2265
- param: {
2266
- id: string;
2267
- };
2268
- };
2269
- output: {
2270
- data: {
2271
- authorName: string | null;
2272
- authorEmail: string | null;
2273
- id: string;
2274
- bookingId: string;
2275
- authorId: string;
2276
- content: string;
2277
- createdAt: string;
2278
- }[];
2279
- };
2280
- outputFormat: "json";
2281
- status: import("hono/utils/http-status").ContentfulStatusCode;
2282
- };
2283
- };
2284
- } & {
2285
- "/:id/notes": {
2286
- $post: {
2287
- input: {
2288
- param: {
2289
- id: string;
2290
- };
2291
- };
2292
- output: {
2293
- error: string;
2294
- };
2295
- outputFormat: "json";
2296
- status: 404;
2297
- } | {
2298
- input: {
2299
- param: {
2300
- id: string;
2301
- };
2302
- };
2303
- output: {
2304
- data: {
2305
- id: string;
2306
- createdAt: string;
2307
- bookingId: string;
2308
- authorId: string;
2309
- content: string;
2310
- };
2311
- };
2312
- outputFormat: "json";
2313
- status: 201;
2314
- };
2315
- };
2316
- } & {
2317
- "/:id/notes/:noteId": {
2318
- $patch: {
2319
- input: {
2320
- param: {
2321
- id: string;
2322
- } & {
2323
- noteId: string;
2324
- };
2325
- };
2326
- output: {
2327
- error: string;
2328
- };
2329
- outputFormat: "json";
2330
- status: 404;
2331
- } | {
2332
- input: {
2333
- param: {
2334
- id: string;
2335
- } & {
2336
- noteId: string;
2337
- };
2338
- };
2339
- output: {
2340
- data: {
2341
- id: string;
2342
- bookingId: string;
2343
- authorId: string;
2344
- content: string;
2345
- createdAt: string;
2346
- };
2347
- };
2348
- outputFormat: "json";
2349
- status: import("hono/utils/http-status").ContentfulStatusCode;
2350
- };
2351
- };
2352
- } & {
2353
- "/:id/notes/:noteId": {
2354
- $delete: {
2355
- input: {
2356
- param: {
2357
- id: string;
2358
- } & {
2359
- noteId: string;
2360
- };
2361
- };
2362
- output: {
2363
- error: string;
2364
- };
2365
- outputFormat: "json";
2366
- status: 404;
2367
- } | {
2368
- input: {
2369
- param: {
2370
- id: string;
2371
- } & {
2372
- noteId: string;
2373
- };
2374
- };
2375
- output: {
2376
- success: true;
2377
- };
2378
- outputFormat: "json";
2379
- status: 200;
2380
- };
2381
- };
2382
- } & {
2383
- "/:id/documents": {
2384
- $get: {
2385
- input: {
2386
- param: {
2387
- id: string;
2388
- };
2389
- };
2390
- output: {
2391
- data: {
2392
- id: string;
2393
- bookingId: string;
2394
- travelerId: string | null;
2395
- type: "visa" | "other" | "insurance" | "health" | "passport_copy";
2396
- fileName: string;
2397
- fileUrl: string;
2398
- expiresAt: string | null;
2399
- notes: string | null;
2400
- createdAt: string;
2401
- }[];
2402
- };
2403
- outputFormat: "json";
2404
- status: import("hono/utils/http-status").ContentfulStatusCode;
2405
- };
2406
- };
2407
- } & {
2408
- "/:id/documents": {
2409
- $post: {
2410
- input: {
2411
- param: {
2412
- id: string;
2413
- };
2414
- };
2415
- output: {
2416
- error: string;
2417
- };
2418
- outputFormat: "json";
2419
- status: 404;
2420
- } | {
2421
- input: {
2422
- param: {
2423
- id: string;
2424
- };
2425
- };
2426
- output: {
2427
- data: {
2428
- type: "visa" | "other" | "insurance" | "health" | "passport_copy";
2429
- id: string;
2430
- createdAt: string;
2431
- expiresAt: string | null;
2432
- notes: string | null;
2433
- fileName: string;
2434
- bookingId: string;
2435
- travelerId: string | null;
2436
- fileUrl: string;
2437
- };
2438
- };
2439
- outputFormat: "json";
2440
- status: 201;
2441
- };
2442
- };
2443
- } & {
2444
- "/:id/documents/:documentId": {
2445
- $delete: {
2446
- input: {
2447
- param: {
2448
- id: string;
2449
- } & {
2450
- documentId: string;
2451
- };
2452
- };
2453
- output: {
2454
- error: string;
2455
- };
2456
- outputFormat: "json";
2457
- status: 404;
2458
- } | {
2459
- input: {
2460
- param: {
2461
- id: string;
2462
- } & {
2463
- documentId: string;
2464
- };
2465
- };
2466
- output: {
2467
- success: true;
2468
- };
2469
- outputFormat: "json";
2470
- status: 200;
2471
- };
2472
- };
2473
- }) | import("hono/types").MergeSchemaPath<{
2474
- "/": {
2475
- $get: {
2476
- input: {};
2477
- output: {
2478
- data: {
2479
- id: string;
2480
- createdAt: string;
2481
- metadata: {
2482
- [x: string]: import("hono/utils/types").JSONValue;
2483
- } | null;
2484
- updatedAt: string;
2485
- kind: "other" | "shared_room" | "cruise_party";
2486
- label: string;
2487
- primaryBookingId: string | null;
2488
- productId: string | null;
2489
- optionUnitId: string | null;
2490
- }[];
2491
- total: number;
2492
- limit: number;
2493
- offset: number;
2494
- };
2495
- outputFormat: "json";
2496
- status: import("hono/utils/http-status").ContentfulStatusCode;
2497
- };
2498
- };
2499
- } & {
2500
- "/": {
2501
- $post: {
2502
- input: {};
2503
- output: {
2504
- data: {
2505
- id: string;
2506
- createdAt: string;
2507
- metadata: {
2508
- [x: string]: import("hono/utils/types").JSONValue;
2509
- } | null;
2510
- updatedAt: string;
2511
- kind: "other" | "shared_room" | "cruise_party";
2512
- label: string;
2513
- primaryBookingId: string | null;
2514
- productId: string | null;
2515
- optionUnitId: string | null;
2516
- };
2517
- };
2518
- outputFormat: "json";
2519
- status: 201;
2520
- };
2521
- };
2522
- } & {
2523
- "/:id": {
2524
- $get: {
2525
- input: {
2526
- param: {
2527
- id: string;
2528
- };
2529
- };
2530
- output: {
2531
- error: string;
2532
- };
2533
- outputFormat: "json";
2534
- status: 404;
2535
- } | {
2536
- input: {
2537
- param: {
2538
- id: string;
2539
- };
2540
- };
2541
- output: {
2542
- data: {
2543
- members: {
2544
- id: string;
2545
- createdAt: string;
2546
- role: "primary" | "shared";
2547
- bookingId: string;
2548
- groupId: string;
2549
- booking: {
2550
- id: string;
2551
- status: "expired" | "cancelled" | "completed" | "draft" | "on_hold" | "awaiting_payment" | "confirmed" | "in_progress";
2552
- organizationId: string | null;
2553
- createdAt: string;
2554
- updatedAt: string;
2555
- redeemedAt: string | null;
2556
- startDate: string | null;
2557
- endDate: string | null;
2558
- completedAt: string | null;
2559
- bookingNumber: string;
2560
- personId: string | null;
2561
- sourceType: "internal" | "direct" | "manual" | "affiliate" | "ota" | "reseller" | "api_partner";
2562
- externalBookingRef: string | null;
2563
- communicationLanguage: string | null;
2564
- contactFirstName: string | null;
2565
- contactLastName: string | null;
2566
- contactPartyType: string | null;
2567
- contactTaxId: string | null;
2568
- contactEmail: string | null;
2569
- contactPhone: string | null;
2570
- contactPreferredLanguage: string | null;
2571
- contactCountry: string | null;
2572
- contactRegion: string | null;
2573
- contactCity: string | null;
2574
- contactAddressLine1: string | null;
2575
- contactAddressLine2: string | null;
2576
- contactPostalCode: string | null;
2577
- sellCurrency: string;
2578
- baseCurrency: string | null;
2579
- fxRateSetId: string | null;
2580
- sellAmountCents: number | null;
2581
- baseSellAmountCents: number | null;
2582
- costAmountCents: number | null;
2583
- baseCostAmountCents: number | null;
2584
- marginPercent: number | null;
2585
- pax: number | null;
2586
- internalNotes: string | null;
2587
- customerPaymentPolicy: import("hono/utils/types").JSONValue;
2588
- priceOverride: {
2589
- isManual: true;
2590
- originalAmountCents: number | null;
2591
- overriddenAmountCents: number;
2592
- currency: string;
2593
- reason: string;
2594
- overriddenBy: string;
2595
- overriddenAt: string;
2596
- } | null;
2597
- holdExpiresAt: string | null;
2598
- confirmedAt: string | null;
2599
- expiredAt: string | null;
2600
- cancelledAt: string | null;
2601
- awaitingPaymentAt: string | null;
2602
- paidAt: string | null;
2603
- } | null;
2604
- }[];
2605
- id: string;
2606
- createdAt: string;
2607
- metadata: {
2608
- [x: string]: import("hono/utils/types").JSONValue;
2609
- } | null;
2610
- updatedAt: string;
2611
- kind: "other" | "shared_room" | "cruise_party";
2612
- label: string;
2613
- primaryBookingId: string | null;
2614
- productId: string | null;
2615
- optionUnitId: string | null;
2616
- };
2617
- };
2618
- outputFormat: "json";
2619
- status: import("hono/utils/http-status").ContentfulStatusCode;
2620
- };
2621
- };
2622
- } & {
2623
- "/:id": {
2624
- $patch: {
2625
- input: {
2626
- param: {
2627
- id: string;
2628
- };
2629
- };
2630
- output: {
2631
- error: string;
2632
- };
2633
- outputFormat: "json";
2634
- status: 404;
2635
- } | {
2636
- input: {
2637
- param: {
2638
- id: string;
2639
- };
2640
- };
2641
- output: {
2642
- data: {
2643
- id: string;
2644
- createdAt: string;
2645
- metadata: {
2646
- [x: string]: import("hono/utils/types").JSONValue;
2647
- } | null;
2648
- updatedAt: string;
2649
- kind: "other" | "shared_room" | "cruise_party";
2650
- label: string;
2651
- primaryBookingId: string | null;
2652
- productId: string | null;
2653
- optionUnitId: string | null;
2654
- };
2655
- };
2656
- outputFormat: "json";
2657
- status: import("hono/utils/http-status").ContentfulStatusCode;
2658
- };
2659
- };
2660
- } & {
2661
- "/:id": {
2662
- $delete: {
2663
- input: {
2664
- param: {
2665
- id: string;
2666
- };
2667
- };
2668
- output: {
2669
- error: string;
2670
- };
2671
- outputFormat: "json";
2672
- status: 404;
2673
- } | {
2674
- input: {
2675
- param: {
2676
- id: string;
2677
- };
2678
- };
2679
- output: {
2680
- success: true;
2681
- };
2682
- outputFormat: "json";
2683
- status: import("hono/utils/http-status").ContentfulStatusCode;
2684
- };
2685
- };
2686
- } & {
2687
- "/:id/members": {
2688
- $get: {
2689
- input: {
2690
- param: {
2691
- id: string;
2692
- };
2693
- };
2694
- output: {
2695
- data: {
2696
- id: string;
2697
- createdAt: string;
2698
- role: "primary" | "shared";
2699
- bookingId: string;
2700
- groupId: string;
2701
- booking: {
2702
- id: string;
2703
- status: "expired" | "cancelled" | "completed" | "draft" | "on_hold" | "awaiting_payment" | "confirmed" | "in_progress";
2704
- organizationId: string | null;
2705
- createdAt: string;
2706
- updatedAt: string;
2707
- redeemedAt: string | null;
2708
- startDate: string | null;
2709
- endDate: string | null;
2710
- completedAt: string | null;
2711
- bookingNumber: string;
2712
- personId: string | null;
2713
- sourceType: "internal" | "direct" | "manual" | "affiliate" | "ota" | "reseller" | "api_partner";
2714
- externalBookingRef: string | null;
2715
- communicationLanguage: string | null;
2716
- contactFirstName: string | null;
2717
- contactLastName: string | null;
2718
- contactPartyType: string | null;
2719
- contactTaxId: string | null;
2720
- contactEmail: string | null;
2721
- contactPhone: string | null;
2722
- contactPreferredLanguage: string | null;
2723
- contactCountry: string | null;
2724
- contactRegion: string | null;
2725
- contactCity: string | null;
2726
- contactAddressLine1: string | null;
2727
- contactAddressLine2: string | null;
2728
- contactPostalCode: string | null;
2729
- sellCurrency: string;
2730
- baseCurrency: string | null;
2731
- fxRateSetId: string | null;
2732
- sellAmountCents: number | null;
2733
- baseSellAmountCents: number | null;
2734
- costAmountCents: number | null;
2735
- baseCostAmountCents: number | null;
2736
- marginPercent: number | null;
2737
- pax: number | null;
2738
- internalNotes: string | null;
2739
- customerPaymentPolicy: import("hono/utils/types").JSONValue;
2740
- priceOverride: {
2741
- isManual: true;
2742
- originalAmountCents: number | null;
2743
- overriddenAmountCents: number;
2744
- currency: string;
2745
- reason: string;
2746
- overriddenBy: string;
2747
- overriddenAt: string;
2748
- } | null;
2749
- holdExpiresAt: string | null;
2750
- confirmedAt: string | null;
2751
- expiredAt: string | null;
2752
- cancelledAt: string | null;
2753
- awaitingPaymentAt: string | null;
2754
- paidAt: string | null;
2755
- } | null;
2756
- }[];
2757
- };
2758
- outputFormat: "json";
2759
- status: import("hono/utils/http-status").ContentfulStatusCode;
2760
- };
2761
- };
2762
- } & {
2763
- "/:id/members": {
2764
- $post: {
2765
- input: {
2766
- param: {
2767
- id: string;
2768
- };
2769
- };
2770
- output: {
2771
- error: string;
2772
- };
2773
- outputFormat: "json";
2774
- status: 404;
2775
- } | {
2776
- input: {
2777
- param: {
2778
- id: string;
2779
- };
2780
- };
2781
- output: {
2782
- error: string;
2783
- currentGroupId: string;
2784
- };
2785
- outputFormat: "json";
2786
- status: 409;
2787
- } | {
2788
- input: {
2789
- param: {
2790
- id: string;
2791
- };
2792
- };
2793
- output: {
2794
- data: {
2795
- id: string;
2796
- createdAt: string;
2797
- role: "primary" | "shared";
2798
- bookingId: string;
2799
- groupId: string;
2800
- };
2801
- };
2802
- outputFormat: "json";
2803
- status: 201;
2804
- };
2805
- };
2806
- } & {
2807
- "/:id/members/:bookingId": {
2808
- $delete: {
2809
- input: {
2810
- param: {
2811
- id: string;
2812
- } & {
2813
- bookingId: string;
2814
- };
2815
- };
2816
- output: {
2817
- error: string;
2818
- };
2819
- outputFormat: "json";
2820
- status: 404;
2821
- } | {
2822
- input: {
2823
- param: {
2824
- id: string;
2825
- } & {
2826
- bookingId: string;
2827
- };
2828
- };
2829
- output: {
2830
- success: true;
2831
- };
2832
- outputFormat: "json";
2833
- status: import("hono/utils/http-status").ContentfulStatusCode;
2834
- };
2835
- };
2836
- } & {
2837
- "/:id/travelers": {
2838
- $get: {
2839
- input: {
2840
- param: {
2841
- id: string;
2842
- };
2843
- };
2844
- output: {
2845
- data: {
2846
- id: string;
2847
- createdAt: string;
2848
- updatedAt: string;
2849
- email: string | null;
2850
- notes: string | null;
2851
- firstName: string;
2852
- lastName: string;
2853
- bookingId: string;
2854
- personId: string | null;
2855
- participantType: "other" | "traveler" | "occupant";
2856
- travelerCategory: "child" | "other" | "adult" | "infant" | "senior" | null;
2857
- phone: string | null;
2858
- preferredLanguage: string | null;
2859
- specialRequests: string | null;
2860
- isPrimary: boolean;
2861
- }[];
2862
- };
2863
- outputFormat: "json";
2864
- status: import("hono/utils/http-status").ContentfulStatusCode;
2865
- };
2866
- };
2867
- }, "/groups">, "/", "/:id/documents/:documentId">;
2868
- export type BookingRoutes = typeof bookingRoutes;
2869
- export type PublicBookingRoutes = typeof publicBookingRoutes;
2870
- export declare const __test__: {
2871
- bookingActionLedgerQuerySchema: z.ZodPipe<z.ZodObject<{
2872
- cursorOccurredAt: z.ZodOptional<z.ZodString>;
2873
- cursorId: z.ZodOptional<z.ZodString>;
2874
- limit: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
2875
- }, z.core.$strip>, z.ZodTransform<{
2876
- cursor: {
2877
- occurredAt: string;
2878
- id: string;
2879
- } | undefined;
2880
- limit?: number | undefined;
2881
- }, {
2882
- cursorOccurredAt?: string | undefined;
2883
- cursorId?: string | undefined;
2884
- limit?: number | undefined;
2885
- }>>;
2886
- bookingMutationSummary: typeof bookingMutationSummary;
2887
- buildBookingActionLedgerPage: typeof buildBookingActionLedgerPage;
2888
- changedBookingItemFields: typeof changedBookingItemFields;
2889
- changedBookingMutationFields: typeof changedBookingMutationFields;
2890
- changedBookingTravelDetailFields: typeof changedBookingTravelDetailFields;
2891
- changedBookingTravelerFields: typeof changedBookingTravelerFields;
2892
- };
2893
- export {};
1
+ export * from "./routes-admin.js";
2894
2
  //# sourceMappingURL=routes.d.ts.map