@voyantjs/bookings 0.6.8 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +2 -2
  2. package/dist/index.d.ts +8 -8
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +5 -5
  5. package/dist/pii.d.ts +10 -9
  6. package/dist/pii.d.ts.map +1 -1
  7. package/dist/pii.js +33 -33
  8. package/dist/products-ref.d.ts +93 -1
  9. package/dist/products-ref.d.ts.map +1 -1
  10. package/dist/products-ref.js +12 -1
  11. package/dist/routes-groups.d.ts +25 -5
  12. package/dist/routes-groups.d.ts.map +1 -1
  13. package/dist/routes-groups.js +3 -3
  14. package/dist/routes-public.d.ts +19 -21
  15. package/dist/routes-public.d.ts.map +1 -1
  16. package/dist/routes-public.js +1 -1
  17. package/dist/routes-shared.d.ts +3 -2
  18. package/dist/routes-shared.d.ts.map +1 -1
  19. package/dist/routes.d.ts +283 -188
  20. package/dist/routes.d.ts.map +1 -1
  21. package/dist/routes.js +89 -102
  22. package/dist/schema/travel-details.d.ts +27 -27
  23. package/dist/schema/travel-details.d.ts.map +1 -1
  24. package/dist/schema/travel-details.js +19 -14
  25. package/dist/schema-core.d.ts +194 -305
  26. package/dist/schema-core.d.ts.map +1 -1
  27. package/dist/schema-core.js +19 -10
  28. package/dist/schema-items.d.ts +15 -15
  29. package/dist/schema-items.d.ts.map +1 -1
  30. package/dist/schema-items.js +12 -12
  31. package/dist/schema-operations.d.ts +1 -1
  32. package/dist/schema-operations.js +3 -3
  33. package/dist/schema-relations.d.ts +26 -9
  34. package/dist/schema-relations.d.ts.map +1 -1
  35. package/dist/schema-relations.js +36 -21
  36. package/dist/schema-shared.d.ts +3 -2
  37. package/dist/schema-shared.d.ts.map +1 -1
  38. package/dist/schema-shared.js +4 -5
  39. package/dist/schema-staff.d.ts +267 -0
  40. package/dist/schema-staff.d.ts.map +1 -0
  41. package/dist/schema-staff.js +31 -0
  42. package/dist/schema.d.ts +1 -0
  43. package/dist/schema.d.ts.map +1 -1
  44. package/dist/schema.js +1 -0
  45. package/dist/service-groups.d.ts +3 -7
  46. package/dist/service-groups.d.ts.map +1 -1
  47. package/dist/service-groups.js +6 -10
  48. package/dist/service-public.d.ts +102 -55
  49. package/dist/service-public.d.ts.map +1 -1
  50. package/dist/service-public.js +119 -54
  51. package/dist/service.d.ts +327 -104
  52. package/dist/service.d.ts.map +1 -1
  53. package/dist/service.js +530 -130
  54. package/dist/transactions-ref.d.ts +930 -66
  55. package/dist/transactions-ref.d.ts.map +1 -1
  56. package/dist/transactions-ref.js +56 -2
  57. package/dist/validation-public.d.ts +29 -69
  58. package/dist/validation-public.d.ts.map +1 -1
  59. package/dist/validation-public.js +21 -20
  60. package/dist/validation-shared.d.ts +4 -5
  61. package/dist/validation-shared.d.ts.map +1 -1
  62. package/dist/validation-shared.js +2 -10
  63. package/dist/validation.d.ts +248 -44
  64. package/dist/validation.d.ts.map +1 -1
  65. package/dist/validation.js +103 -28
  66. package/package.json +6 -6
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @voyantjs/bookings
2
2
 
3
- Bookings module for Voyant. Manages booking lifecycle with passengers, supplier statuses, activity log, and notes. Uses `personId` + `organizationId` from CRM as client snapshot.
3
+ Bookings module for Voyant. Manages booking lifecycle with travelers, supplier statuses, activity log, and notes. Uses `personId` + `organizationId` from CRM as client snapshot.
4
4
 
5
5
  ## Install
6
6
 
@@ -37,7 +37,7 @@ room/unit selection back onto the booking session totals.
37
37
  ## Entities
38
38
 
39
39
  - **Bookings** (`book`)
40
- - **Booking passengers** (`bkps`)
40
+ - **Booking travelers** (`bkps`)
41
41
  - **Booking supplier statuses** (`bkss`)
42
42
  - **Booking activity log** (`bkal`)
43
43
  - **Booking notes** (`bnot`)
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import type { LinkableDefinition, Module } from "@voyantjs/core";
2
2
  import type { HonoModule } from "@voyantjs/hono/module";
3
3
  export { bookingsSupplierExtension } from "./extensions/suppliers.js";
4
- export { type BookingPiiAuditEvent, type BookingPiiServiceOptions, createBookingPiiService, type UpsertBookingParticipantTravelDetailInput, } from "./pii.js";
4
+ export { type BookingPiiAuditEvent, type BookingPiiService, type BookingPiiServiceOptions, createBookingPiiService, type UpsertBookingTravelerTravelDetailInput, } from "./pii.js";
5
5
  export type { ConvertProductData } from "./service.js";
6
6
  export { bookingsService } from "./service.js";
7
- export { type AddBookingGroupMemberInput, type BookingGroupListQuery, type BookingGroupMemberWithBooking, bookingGroupsService, type CreateBookingGroupInput, type UpdateBookingGroupInput, } from "./service-groups.js";
7
+ export { type AddBookingGroupMemberInput, type BookingGroupListQuery, type BookingGroupMemberWithBooking, bookingGroupsService, type CreateBookingGroupInput, listGroupBookingTravelers, type UpdateBookingGroupInput, } from "./service-groups.js";
8
8
  export { type ExpireStaleBookingHoldsInput, type ExpireStaleBookingHoldsResult, expireStaleBookingHolds, } from "./tasks/index.js";
9
9
  export declare const bookingLinkable: LinkableDefinition;
10
10
  export declare const bookingsLinkable: {
@@ -18,10 +18,10 @@ export { BOOKING_ROUTE_RUNTIME_CONTAINER_KEY, buildBookingRouteRuntime, } from "
18
18
  export type { BookingRoutes } from "./routes.js";
19
19
  export type { PublicBookingRoutes } from "./routes-public.js";
20
20
  export { publicBookingRoutes } from "./routes-public.js";
21
- export type { BookingParticipantDietary, BookingParticipantIdentity, BookingParticipantTravelDetail, DecryptedBookingParticipantTravelDetail, NewBookingParticipantTravelDetail, } from "./schema/travel-details.js";
22
- export { bookingParticipantDietarySchema, bookingParticipantIdentitySchema, bookingParticipantTravelDetailInsertSchema, bookingParticipantTravelDetailSelectSchema, bookingParticipantTravelDetails, bookingParticipantTravelDetailUpdateSchema, decryptedBookingParticipantTravelDetailSchema, } from "./schema/travel-details.js";
23
- export type { Booking, BookingActivity, BookingAllocation, BookingDocument, BookingFulfillment, BookingGroup, BookingGroupMember, BookingItem, BookingItemParticipant, BookingNote, BookingParticipant, BookingPassenger, BookingPiiAccessLog, BookingRedemptionEvent, BookingSessionState, BookingSupplierStatus, NewBooking, NewBookingActivity, NewBookingAllocation, NewBookingDocument, NewBookingFulfillment, NewBookingGroup, NewBookingGroupMember, NewBookingItem, NewBookingItemParticipant, NewBookingNote, NewBookingParticipant, NewBookingPassenger, NewBookingPiiAccessLog, NewBookingRedemptionEvent, NewBookingSessionState, NewBookingSupplierStatus, } from "./schema.js";
24
- export { bookingActivityLog, bookingAllocations, bookingDocuments, bookingFulfillments, bookingGroupKindEnum, bookingGroupMemberRoleEnum, bookingGroupMembers, bookingGroups, bookingItemParticipants, bookingItems, bookingNotes, bookingParticipants, bookingPassengers, bookingPiiAccessLog, bookingRedemptionEvents, bookingSessionStates, bookingSupplierStatuses, bookings, } from "./schema.js";
25
- export { publicBookingsService } from "./service-public.js";
26
- export { addBookingGroupMemberSchema, bookingGroupKindSchema, bookingGroupListQuerySchema, bookingGroupMemberRoleSchema, bookingListQuerySchema, cancelBookingSchema, confirmBookingSchema, convertProductSchema, createBookingSchema, expireBookingSchema, expireStaleBookingsSchema, extendBookingHoldSchema, insertBookingAllocationSchema, insertBookingDocumentSchema, insertBookingFulfillmentSchema, insertBookingGroupSchema, insertBookingItemParticipantSchema, insertBookingItemSchema, insertBookingNoteSchema, insertBookingSchema, insertParticipantSchema, insertPassengerSchema, insertSupplierStatusSchema, internalBookingOverviewLookupQuerySchema, publicBookingOverviewLookupQuerySchema, publicBookingSessionMutationSchema, publicBookingSessionRepriceItemSchema, publicBookingSessionRepriceResultSchema, publicBookingSessionRepriceSummarySchema, publicBookingSessionStateSchema, publicCreateBookingSessionSchema, publicRepriceBookingSessionSchema, publicUpdateBookingSessionSchema, publicUpsertBookingSessionStateSchema, recordBookingRedemptionSchema, reserveBookingFromTransactionSchema, reserveBookingSchema, updateBookingAllocationSchema, updateBookingFulfillmentSchema, updateBookingGroupSchema, updateBookingItemSchema, updateBookingSchema, updateBookingStatusSchema, updateParticipantSchema, updatePassengerSchema, updateSupplierStatusSchema, upsertParticipantTravelDetailsSchema, } from "./validation.js";
21
+ export type { BookingTravelerDietary, BookingTravelerIdentity, BookingTravelerTravelDetail, DecryptedBookingTravelerTravelDetail, NewBookingTravelerTravelDetail, } from "./schema/travel-details.js";
22
+ export { bookingTravelerDietarySchema, bookingTravelerIdentitySchema, bookingTravelerTravelDetailInsertSchema, bookingTravelerTravelDetailSelectSchema, bookingTravelerTravelDetails, bookingTravelerTravelDetailUpdateSchema, decryptedBookingTravelerTravelDetailSchema, } from "./schema/travel-details.js";
23
+ export type { Booking, BookingActivity, BookingAllocation, BookingDocument, BookingFulfillment, BookingGroup, BookingGroupMember, BookingItem, BookingItemTraveler, BookingNote, BookingPiiAccessLog, BookingRedemptionEvent, BookingSessionState, BookingStaffAssignment, BookingSupplierStatus, BookingTraveler, NewBooking, NewBookingActivity, NewBookingAllocation, NewBookingDocument, NewBookingFulfillment, NewBookingGroup, NewBookingGroupMember, NewBookingItem, NewBookingItemTraveler, NewBookingNote, NewBookingPiiAccessLog, NewBookingRedemptionEvent, NewBookingSessionState, NewBookingStaffAssignment, NewBookingSupplierStatus, NewBookingTraveler, } from "./schema.js";
24
+ export { bookingActivityLog, bookingAllocations, bookingDocuments, bookingFulfillments, bookingGroupKindEnum, bookingGroupMemberRoleEnum, bookingGroupMembers, bookingGroups, bookingItems, bookingItemTravelers, bookingNotes, bookingPiiAccessLog, bookingRedemptionEvents, bookingSessionStates, bookingStaffAssignments, bookingSupplierStatuses, bookings, bookingTravelers, } from "./schema.js";
25
+ export { publicBookingsService, resolveSessionPricingSnapshot } from "./service-public.js";
26
+ export { addBookingGroupMemberSchema, bookingGroupKindSchema, bookingGroupListQuerySchema, bookingGroupMemberRoleSchema, bookingListQuerySchema, cancelBookingSchema, confirmBookingSchema, convertProductSchema, createBookingSchema, expireBookingSchema, expireStaleBookingsSchema, extendBookingHoldSchema, insertBookingAllocationSchema, insertBookingDocumentSchema, insertBookingFulfillmentSchema, insertBookingGroupSchema, insertBookingItemSchema, insertBookingItemTravelerSchema, insertBookingNoteSchema, insertBookingSchema, insertBookingTravelerDocumentSchema, insertSupplierStatusSchema, insertTravelerSchema, internalBookingOverviewLookupQuerySchema, pricingPreviewSchema, publicBookingOverviewLookupQuerySchema, publicBookingSessionMutationSchema, publicBookingSessionRepriceItemSchema, publicBookingSessionRepriceResultSchema, publicBookingSessionRepriceSummarySchema, publicBookingSessionStateSchema, publicCreateBookingSessionSchema, publicRepriceBookingSessionSchema, publicUpdateBookingSessionSchema, publicUpsertBookingSessionStateSchema, recordBookingRedemptionSchema, reserveBookingFromTransactionSchema, reserveBookingSchema, updateBookingAllocationSchema, updateBookingFulfillmentSchema, updateBookingGroupSchema, updateBookingItemSchema, updateBookingSchema, updateBookingStatusSchema, updateSupplierStatusSchema, updateTravelerSchema, upsertTravelerTravelDetailsSchema, } from "./validation.js";
27
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAMvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,uBAAuB,EACvB,KAAK,yCAAyC,GAC/C,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,EAClC,oBAAoB,EACpB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,GAC7B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,uBAAuB,GACxB,MAAM,kBAAkB,CAAA;AAEzB,eAAO,MAAM,eAAe,EAAE,kBAK7B,CAAA;AAED,eAAO,MAAM,gBAAgB;;CAE5B,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,MAG5B,CAAA;AAED,wBAAgB,wBAAwB,IAAI,UAAU,CAiBrD;AAED,eAAO,MAAM,kBAAkB,EAAE,UAAuC,CAAA;AAExE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EACL,mCAAmC,EACnC,wBAAwB,GACzB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,YAAY,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,8BAA8B,EAC9B,uCAAuC,EACvC,iCAAiC,GAClC,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,+BAA+B,EAC/B,gCAAgC,EAChC,0CAA0C,EAC1C,0CAA0C,EAC1C,+BAA+B,EAC/B,0CAA0C,EAC1C,6CAA6C,GAC9C,MAAM,4BAA4B,CAAA;AACnC,YAAY,EACV,OAAO,EACP,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,sBAAsB,EACtB,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,QAAQ,GACT,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACvB,6BAA6B,EAC7B,2BAA2B,EAC3B,8BAA8B,EAC9B,wBAAwB,EACxB,kCAAkC,EAClC,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,EAC1B,wCAAwC,EACxC,sCAAsC,EACtC,kCAAkC,EAClC,qCAAqC,EACrC,uCAAuC,EACvC,wCAAwC,EACxC,+BAA+B,EAC/B,gCAAgC,EAChC,iCAAiC,EACjC,gCAAgC,EAChC,qCAAqC,EACrC,6BAA6B,EAC7B,mCAAmC,EACnC,oBAAoB,EACpB,6BAA6B,EAC7B,8BAA8B,EAC9B,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,EAC1B,oCAAoC,GACrC,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ import { publicBookingRoutes } from "./routes-public.js";
4
4
  export { bookingsSupplierExtension } from "./extensions/suppliers.js";
5
5
  export { createBookingPiiService, } from "./pii.js";
6
6
  export { bookingsService } from "./service.js";
7
- export { bookingGroupsService, } from "./service-groups.js";
7
+ export { bookingGroupsService, listGroupBookingTravelers, } from "./service-groups.js";
8
8
  export { expireStaleBookingHolds, } from "./tasks/index.js";
9
9
  export const bookingLinkable = {
10
10
  module: "bookings",
@@ -36,7 +36,7 @@ export function createBookingsHonoModule() {
36
36
  export const bookingsHonoModule = createBookingsHonoModule();
37
37
  export { BOOKING_ROUTE_RUNTIME_CONTAINER_KEY, buildBookingRouteRuntime, } from "./route-runtime.js";
38
38
  export { publicBookingRoutes } from "./routes-public.js";
39
- export { bookingParticipantDietarySchema, bookingParticipantIdentitySchema, bookingParticipantTravelDetailInsertSchema, bookingParticipantTravelDetailSelectSchema, bookingParticipantTravelDetails, bookingParticipantTravelDetailUpdateSchema, decryptedBookingParticipantTravelDetailSchema, } from "./schema/travel-details.js";
40
- export { bookingActivityLog, bookingAllocations, bookingDocuments, bookingFulfillments, bookingGroupKindEnum, bookingGroupMemberRoleEnum, bookingGroupMembers, bookingGroups, bookingItemParticipants, bookingItems, bookingNotes, bookingParticipants, bookingPassengers, bookingPiiAccessLog, bookingRedemptionEvents, bookingSessionStates, bookingSupplierStatuses, bookings, } from "./schema.js";
41
- export { publicBookingsService } from "./service-public.js";
42
- export { addBookingGroupMemberSchema, bookingGroupKindSchema, bookingGroupListQuerySchema, bookingGroupMemberRoleSchema, bookingListQuerySchema, cancelBookingSchema, confirmBookingSchema, convertProductSchema, createBookingSchema, expireBookingSchema, expireStaleBookingsSchema, extendBookingHoldSchema, insertBookingAllocationSchema, insertBookingDocumentSchema, insertBookingFulfillmentSchema, insertBookingGroupSchema, insertBookingItemParticipantSchema, insertBookingItemSchema, insertBookingNoteSchema, insertBookingSchema, insertParticipantSchema, insertPassengerSchema, insertSupplierStatusSchema, internalBookingOverviewLookupQuerySchema, publicBookingOverviewLookupQuerySchema, publicBookingSessionMutationSchema, publicBookingSessionRepriceItemSchema, publicBookingSessionRepriceResultSchema, publicBookingSessionRepriceSummarySchema, publicBookingSessionStateSchema, publicCreateBookingSessionSchema, publicRepriceBookingSessionSchema, publicUpdateBookingSessionSchema, publicUpsertBookingSessionStateSchema, recordBookingRedemptionSchema, reserveBookingFromTransactionSchema, reserveBookingSchema, updateBookingAllocationSchema, updateBookingFulfillmentSchema, updateBookingGroupSchema, updateBookingItemSchema, updateBookingSchema, updateBookingStatusSchema, updateParticipantSchema, updatePassengerSchema, updateSupplierStatusSchema, upsertParticipantTravelDetailsSchema, } from "./validation.js";
39
+ export { bookingTravelerDietarySchema, bookingTravelerIdentitySchema, bookingTravelerTravelDetailInsertSchema, bookingTravelerTravelDetailSelectSchema, bookingTravelerTravelDetails, bookingTravelerTravelDetailUpdateSchema, decryptedBookingTravelerTravelDetailSchema, } from "./schema/travel-details.js";
40
+ export { bookingActivityLog, bookingAllocations, bookingDocuments, bookingFulfillments, bookingGroupKindEnum, bookingGroupMemberRoleEnum, bookingGroupMembers, bookingGroups, bookingItems, bookingItemTravelers, bookingNotes, bookingPiiAccessLog, bookingRedemptionEvents, bookingSessionStates, bookingStaffAssignments, bookingSupplierStatuses, bookings, bookingTravelers, } from "./schema.js";
41
+ export { publicBookingsService, resolveSessionPricingSnapshot } from "./service-public.js";
42
+ export { addBookingGroupMemberSchema, bookingGroupKindSchema, bookingGroupListQuerySchema, bookingGroupMemberRoleSchema, bookingListQuerySchema, cancelBookingSchema, confirmBookingSchema, convertProductSchema, createBookingSchema, expireBookingSchema, expireStaleBookingsSchema, extendBookingHoldSchema, insertBookingAllocationSchema, insertBookingDocumentSchema, insertBookingFulfillmentSchema, insertBookingGroupSchema, insertBookingItemSchema, insertBookingItemTravelerSchema, insertBookingNoteSchema, insertBookingSchema, insertBookingTravelerDocumentSchema, insertSupplierStatusSchema, insertTravelerSchema, internalBookingOverviewLookupQuerySchema, pricingPreviewSchema, publicBookingOverviewLookupQuerySchema, publicBookingSessionMutationSchema, publicBookingSessionRepriceItemSchema, publicBookingSessionRepriceResultSchema, publicBookingSessionRepriceSummarySchema, publicBookingSessionStateSchema, publicCreateBookingSessionSchema, publicRepriceBookingSessionSchema, publicUpdateBookingSessionSchema, publicUpsertBookingSessionStateSchema, recordBookingRedemptionSchema, reserveBookingFromTransactionSchema, reserveBookingSchema, updateBookingAllocationSchema, updateBookingFulfillmentSchema, updateBookingGroupSchema, updateBookingItemSchema, updateBookingSchema, updateBookingStatusSchema, updateSupplierStatusSchema, updateTravelerSchema, upsertTravelerTravelDetailsSchema, } from "./validation.js";
package/dist/pii.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { KeyRef, KmsProvider } from "@voyantjs/utils";
2
2
  import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
3
- import { type DecryptedBookingParticipantTravelDetail } from "./schema/travel-details.js";
4
- export interface UpsertBookingParticipantTravelDetailInput {
3
+ import { type DecryptedBookingTravelerTravelDetail } from "./schema/travel-details.js";
4
+ export interface UpsertBookingTravelerTravelDetailInput {
5
5
  nationality?: string | null;
6
6
  passportNumber?: string | null;
7
7
  passportExpiry?: string | null;
@@ -11,7 +11,7 @@ export interface UpsertBookingParticipantTravelDetailInput {
11
11
  }
12
12
  export interface BookingPiiAuditEvent {
13
13
  action: "encrypt" | "decrypt" | "delete";
14
- participantId: string;
14
+ travelerId: string;
15
15
  actorId?: string | null;
16
16
  }
17
17
  export interface BookingPiiServiceOptions {
@@ -19,11 +19,12 @@ export interface BookingPiiServiceOptions {
19
19
  keyRef?: KeyRef;
20
20
  onAudit?: (event: BookingPiiAuditEvent) => void | Promise<void>;
21
21
  }
22
- export declare function createBookingPiiService(options: BookingPiiServiceOptions): {
23
- getParticipantTravelDetails(db: PostgresJsDatabase, participantId: string, actorId?: string | null): Promise<DecryptedBookingParticipantTravelDetail | null>;
24
- upsertParticipantTravelDetails(db: PostgresJsDatabase, participantId: string, input: UpsertBookingParticipantTravelDetailInput, actorId?: string | null): Promise<DecryptedBookingParticipantTravelDetail | null>;
25
- deleteParticipantTravelDetails(db: PostgresJsDatabase, participantId: string, actorId?: string | null): Promise<{
26
- participantId: string;
22
+ export interface BookingPiiService {
23
+ getTravelerTravelDetails(db: PostgresJsDatabase, travelerId: string, actorId?: string | null): Promise<DecryptedBookingTravelerTravelDetail | null>;
24
+ upsertTravelerTravelDetails(db: PostgresJsDatabase, travelerId: string, input: UpsertBookingTravelerTravelDetailInput, actorId?: string | null): Promise<DecryptedBookingTravelerTravelDetail | null>;
25
+ deleteTravelerTravelDetails(db: PostgresJsDatabase, travelerId: string, actorId?: string | null): Promise<{
26
+ travelerId: string;
27
27
  } | null>;
28
- };
28
+ }
29
+ export declare function createBookingPiiService(options: BookingPiiServiceOptions): BookingPiiService;
29
30
  //# sourceMappingURL=pii.d.ts.map
package/dist/pii.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pii.d.ts","sourceRoot":"","sources":["../src/pii.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAG1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAIL,KAAK,uCAAuC,EAC7C,MAAM,4BAA4B,CAAA;AAGnC,MAAM,WAAW,yCAAyC;IACxD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;IACxC,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,WAAW,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAChE;AAqGD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB;oCAK/D,kBAAkB,iBACP,MAAM,YACX,MAAM,GAAG,IAAI,GACtB,OAAO,CAAC,uCAAuC,GAAG,IAAI,CAAC;uCAwCpD,kBAAkB,iBACP,MAAM,SACd,yCAAyC,YACtC,MAAM,GAAG,IAAI,GACtB,OAAO,CAAC,uCAAuC,GAAG,IAAI,CAAC;uCAmDpD,kBAAkB,iBACP,MAAM,YACX,MAAM,GAAG,IAAI;;;EAc5B"}
1
+ {"version":3,"file":"pii.d.ts","sourceRoot":"","sources":["../src/pii.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAG1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAIL,KAAK,oCAAoC,EAC1C,MAAM,4BAA4B,CAAA;AAGnC,MAAM,WAAW,sCAAsC;IACrD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,WAAW,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAChE;AAED,MAAM,WAAW,iBAAiB;IAChC,wBAAwB,CACtB,EAAE,EAAE,kBAAkB,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GACtB,OAAO,CAAC,oCAAoC,GAAG,IAAI,CAAC,CAAA;IACvD,2BAA2B,CACzB,EAAE,EAAE,kBAAkB,EACtB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,sCAAsC,EAC7C,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GACtB,OAAO,CAAC,oCAAoC,GAAG,IAAI,CAAC,CAAA;IACvD,2BAA2B,CACzB,EAAE,EAAE,kBAAkB,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GACtB,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;CAC1C;AAqGD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,iBAAiB,CAuH5F"}
package/dist/pii.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { decryptOptionalJsonEnvelope, encryptOptionalJsonEnvelope } from "@voyantjs/utils";
2
2
  import { eq } from "drizzle-orm";
3
- import { bookingParticipantDietarySchema, bookingParticipantIdentitySchema, bookingParticipantTravelDetails, } from "./schema/travel-details.js";
4
- import { bookingParticipants } from "./schema.js";
3
+ import { bookingTravelerDietarySchema, bookingTravelerIdentitySchema, bookingTravelerTravelDetails, } from "./schema/travel-details.js";
4
+ import { bookingTravelers } from "./schema.js";
5
5
  function buildIdentityPayload(input) {
6
- const payload = bookingParticipantIdentitySchema.parse({
6
+ const payload = bookingTravelerIdentitySchema.parse({
7
7
  nationality: input.nationality ?? null,
8
8
  passportNumber: input.passportNumber ?? null,
9
9
  passportExpiry: input.passportExpiry ?? null,
@@ -18,7 +18,7 @@ function buildIdentityPayload(input) {
18
18
  return payload;
19
19
  }
20
20
  function buildDietaryPayload(input) {
21
- const payload = bookingParticipantDietarySchema.parse({
21
+ const payload = bookingTravelerDietarySchema.parse({
22
22
  dietaryRequirements: input.dietaryRequirements ?? null,
23
23
  });
24
24
  if (!payload.dietaryRequirements) {
@@ -26,17 +26,17 @@ function buildDietaryPayload(input) {
26
26
  }
27
27
  return payload;
28
28
  }
29
- async function loadExistingTravelDetails(db, participantId, options, keyRef) {
29
+ async function loadExistingTravelDetails(db, travelerId, options, keyRef) {
30
30
  const [row] = await db
31
31
  .select()
32
- .from(bookingParticipantTravelDetails)
33
- .where(eq(bookingParticipantTravelDetails.participantId, participantId))
32
+ .from(bookingTravelerTravelDetails)
33
+ .where(eq(bookingTravelerTravelDetails.travelerId, travelerId))
34
34
  .limit(1);
35
35
  if (!row) {
36
36
  return null;
37
37
  }
38
- const identity = await decryptOptionalJsonEnvelope(options.kms, keyRef, row.identityEncrypted, bookingParticipantIdentitySchema);
39
- const dietary = await decryptOptionalJsonEnvelope(options.kms, keyRef, row.dietaryEncrypted, bookingParticipantDietarySchema);
38
+ const identity = await decryptOptionalJsonEnvelope(options.kms, keyRef, row.identityEncrypted, bookingTravelerIdentitySchema);
39
+ const dietary = await decryptOptionalJsonEnvelope(options.kms, keyRef, row.dietaryEncrypted, bookingTravelerDietarySchema);
40
40
  return {
41
41
  nationality: identity?.nationality ?? null,
42
42
  passportNumber: identity?.passportNumber ?? null,
@@ -67,20 +67,20 @@ function mergeTravelDetailInput(existing, input) {
67
67
  export function createBookingPiiService(options) {
68
68
  const keyRef = options.keyRef ?? { keyType: "people" };
69
69
  return {
70
- async getParticipantTravelDetails(db, participantId, actorId) {
70
+ async getTravelerTravelDetails(db, travelerId, actorId) {
71
71
  const [row] = await db
72
72
  .select()
73
- .from(bookingParticipantTravelDetails)
74
- .where(eq(bookingParticipantTravelDetails.participantId, participantId))
73
+ .from(bookingTravelerTravelDetails)
74
+ .where(eq(bookingTravelerTravelDetails.travelerId, travelerId))
75
75
  .limit(1);
76
76
  if (!row) {
77
77
  return null;
78
78
  }
79
- const identity = await decryptOptionalJsonEnvelope(options.kms, keyRef, row.identityEncrypted, bookingParticipantIdentitySchema);
80
- const dietary = await decryptOptionalJsonEnvelope(options.kms, keyRef, row.dietaryEncrypted, bookingParticipantDietarySchema);
81
- await options.onAudit?.({ action: "decrypt", participantId, actorId });
79
+ const identity = await decryptOptionalJsonEnvelope(options.kms, keyRef, row.identityEncrypted, bookingTravelerIdentitySchema);
80
+ const dietary = await decryptOptionalJsonEnvelope(options.kms, keyRef, row.dietaryEncrypted, bookingTravelerDietarySchema);
81
+ await options.onAudit?.({ action: "decrypt", travelerId, actorId });
82
82
  return {
83
- participantId: row.participantId,
83
+ travelerId: row.travelerId,
84
84
  nationality: identity?.nationality ?? null,
85
85
  passportNumber: identity?.passportNumber ?? null,
86
86
  passportExpiry: identity?.passportExpiry ?? null,
@@ -91,31 +91,31 @@ export function createBookingPiiService(options) {
91
91
  updatedAt: row.updatedAt,
92
92
  };
93
93
  },
94
- async upsertParticipantTravelDetails(db, participantId, input, actorId) {
95
- const [participant] = await db
96
- .select({ id: bookingParticipants.id })
97
- .from(bookingParticipants)
98
- .where(eq(bookingParticipants.id, participantId))
94
+ async upsertTravelerTravelDetails(db, travelerId, input, actorId) {
95
+ const [traveler] = await db
96
+ .select({ id: bookingTravelers.id })
97
+ .from(bookingTravelers)
98
+ .where(eq(bookingTravelers.id, travelerId))
99
99
  .limit(1);
100
- if (!participant) {
100
+ if (!traveler) {
101
101
  return null;
102
102
  }
103
- const existing = await loadExistingTravelDetails(db, participantId, options, keyRef);
103
+ const existing = await loadExistingTravelDetails(db, travelerId, options, keyRef);
104
104
  const mergedInput = mergeTravelDetailInput(existing, input);
105
105
  const identityEncrypted = await encryptOptionalJsonEnvelope(options.kms, keyRef, buildIdentityPayload(mergedInput));
106
106
  const dietaryEncrypted = await encryptOptionalJsonEnvelope(options.kms, keyRef, buildDietaryPayload(mergedInput));
107
107
  const now = new Date();
108
108
  await db
109
- .insert(bookingParticipantTravelDetails)
109
+ .insert(bookingTravelerTravelDetails)
110
110
  .values({
111
- participantId,
111
+ travelerId,
112
112
  identityEncrypted,
113
113
  dietaryEncrypted,
114
114
  isLeadTraveler: mergedInput.isLeadTraveler ?? false,
115
115
  updatedAt: now,
116
116
  })
117
117
  .onConflictDoUpdate({
118
- target: bookingParticipantTravelDetails.participantId,
118
+ target: bookingTravelerTravelDetails.travelerId,
119
119
  set: {
120
120
  identityEncrypted,
121
121
  dietaryEncrypted,
@@ -123,16 +123,16 @@ export function createBookingPiiService(options) {
123
123
  updatedAt: now,
124
124
  },
125
125
  });
126
- await options.onAudit?.({ action: "encrypt", participantId, actorId });
127
- return this.getParticipantTravelDetails(db, participantId, actorId);
126
+ await options.onAudit?.({ action: "encrypt", travelerId, actorId });
127
+ return this.getTravelerTravelDetails(db, travelerId, actorId);
128
128
  },
129
- async deleteParticipantTravelDetails(db, participantId, actorId) {
129
+ async deleteTravelerTravelDetails(db, travelerId, actorId) {
130
130
  const [row] = await db
131
- .delete(bookingParticipantTravelDetails)
132
- .where(eq(bookingParticipantTravelDetails.participantId, participantId))
133
- .returning({ participantId: bookingParticipantTravelDetails.participantId });
131
+ .delete(bookingTravelerTravelDetails)
132
+ .where(eq(bookingTravelerTravelDetails.travelerId, travelerId))
133
+ .returning({ travelerId: bookingTravelerTravelDetails.travelerId });
134
134
  if (row) {
135
- await options.onAudit?.({ action: "delete", participantId, actorId });
135
+ await options.onAudit?.({ action: "delete", travelerId, actorId });
136
136
  }
137
137
  return row ?? null;
138
138
  },
@@ -631,6 +631,98 @@ export declare const optionUnitsRef: import("drizzle-orm/pg-core").PgTableWithCo
631
631
  };
632
632
  dialect: "pg";
633
633
  }>;
634
+ export declare const productItinerariesRef: import("drizzle-orm/pg-core").PgTableWithColumns<{
635
+ name: "product_itineraries";
636
+ schema: undefined;
637
+ columns: {
638
+ id: import("drizzle-orm/pg-core").PgColumn<{
639
+ name: string;
640
+ tableName: "product_itineraries";
641
+ dataType: "string";
642
+ columnType: "PgText";
643
+ data: string;
644
+ driverParam: string;
645
+ notNull: true;
646
+ hasDefault: true;
647
+ isPrimaryKey: true;
648
+ isAutoincrement: false;
649
+ hasRuntimeDefault: true;
650
+ enumValues: [string, ...string[]];
651
+ baseColumn: never;
652
+ identity: undefined;
653
+ generated: undefined;
654
+ }, {}, {}>;
655
+ productId: import("drizzle-orm/pg-core").PgColumn<{
656
+ name: string;
657
+ tableName: "product_itineraries";
658
+ dataType: "string";
659
+ columnType: "PgText";
660
+ data: string;
661
+ driverParam: string;
662
+ notNull: true;
663
+ hasDefault: false;
664
+ isPrimaryKey: false;
665
+ isAutoincrement: false;
666
+ hasRuntimeDefault: false;
667
+ enumValues: [string, ...string[]];
668
+ baseColumn: never;
669
+ identity: undefined;
670
+ generated: undefined;
671
+ }, {}, {}>;
672
+ name: import("drizzle-orm/pg-core").PgColumn<{
673
+ name: "name";
674
+ tableName: "product_itineraries";
675
+ dataType: "string";
676
+ columnType: "PgText";
677
+ data: string;
678
+ driverParam: string;
679
+ notNull: true;
680
+ hasDefault: false;
681
+ isPrimaryKey: false;
682
+ isAutoincrement: false;
683
+ hasRuntimeDefault: false;
684
+ enumValues: [string, ...string[]];
685
+ baseColumn: never;
686
+ identity: undefined;
687
+ generated: undefined;
688
+ }, {}, {}>;
689
+ isDefault: import("drizzle-orm/pg-core").PgColumn<{
690
+ name: "is_default";
691
+ tableName: "product_itineraries";
692
+ dataType: "boolean";
693
+ columnType: "PgBoolean";
694
+ data: boolean;
695
+ driverParam: boolean;
696
+ notNull: true;
697
+ hasDefault: true;
698
+ isPrimaryKey: false;
699
+ isAutoincrement: false;
700
+ hasRuntimeDefault: false;
701
+ enumValues: undefined;
702
+ baseColumn: never;
703
+ identity: undefined;
704
+ generated: undefined;
705
+ }, {}, {}>;
706
+ sortOrder: import("drizzle-orm/pg-core").PgColumn<{
707
+ name: "sort_order";
708
+ tableName: "product_itineraries";
709
+ dataType: "number";
710
+ columnType: "PgInteger";
711
+ data: number;
712
+ driverParam: string | number;
713
+ notNull: true;
714
+ hasDefault: true;
715
+ isPrimaryKey: false;
716
+ isAutoincrement: false;
717
+ hasRuntimeDefault: false;
718
+ enumValues: undefined;
719
+ baseColumn: never;
720
+ identity: undefined;
721
+ generated: undefined;
722
+ }, {}, {}>;
723
+ };
724
+ dialect: "pg";
725
+ }>;
634
726
  export declare const productDaysRef: import("drizzle-orm/pg-core").PgTableWithColumns<{
635
727
  name: "product_days";
636
728
  schema: undefined;
@@ -652,7 +744,7 @@ export declare const productDaysRef: import("drizzle-orm/pg-core").PgTableWithCo
652
744
  identity: undefined;
653
745
  generated: undefined;
654
746
  }, {}, {}>;
655
- productId: import("drizzle-orm/pg-core").PgColumn<{
747
+ itineraryId: import("drizzle-orm/pg-core").PgColumn<{
656
748
  name: string;
657
749
  tableName: "product_days";
658
750
  dataType: "string";
@@ -1 +1 @@
1
- {"version":3,"file":"products-ref.d.ts","sourceRoot":"","sources":["../src/products-ref.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EActB,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ5B,CAAA;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBzB,CAAA;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIzB,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAahC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMnC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMnC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQvC,CAAA"}
1
+ {"version":3,"file":"products-ref.d.ts","sourceRoot":"","sources":["../src/products-ref.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EActB,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ5B,CAAA;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBzB,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMhC,CAAA;AAMF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIzB,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAahC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMnC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMnC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQvC,CAAA"}
@@ -42,9 +42,20 @@ export const optionUnitsRef = pgTable("option_units", {
42
42
  sortOrder: integer("sort_order").notNull().default(0),
43
43
  createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
44
44
  });
45
+ export const productItinerariesRef = pgTable("product_itineraries", {
46
+ id: typeId("product_itineraries").primaryKey(),
47
+ productId: typeIdRef("product_id").notNull(),
48
+ name: text("name").notNull(),
49
+ isDefault: boolean("is_default").notNull().default(false),
50
+ sortOrder: integer("sort_order").notNull().default(0),
51
+ });
52
+ // product_days was re-parented to product_itineraries in products, so the
53
+ // historical `product_days.product_id` column no longer exists. Bookings'
54
+ // getConvertProductData joins through product_itineraries to keep the
55
+ // per-product day lookup working.
45
56
  export const productDaysRef = pgTable("product_days", {
46
57
  id: typeId("product_days").primaryKey(),
47
- productId: typeIdRef("product_id").notNull(),
58
+ itineraryId: typeIdRef("itinerary_id").notNull(),
48
59
  dayNumber: integer("day_number").notNull(),
49
60
  });
50
61
  export const productDayServicesRef = pgTable("product_day_services", {
@@ -87,6 +87,7 @@ export declare const bookingGroupRoutes: import("hono/hono-base").HonoBase<Env,
87
87
  createdAt: string;
88
88
  updatedAt: string;
89
89
  organizationId: string | null;
90
+ redeemedAt: string | null;
90
91
  startDate: string | null;
91
92
  endDate: string | null;
92
93
  bookingNumber: string;
@@ -94,6 +95,16 @@ export declare const bookingGroupRoutes: import("hono/hono-base").HonoBase<Env,
94
95
  sourceType: "internal" | "reseller" | "direct" | "manual" | "affiliate" | "ota" | "api_partner";
95
96
  externalBookingRef: string | null;
96
97
  communicationLanguage: string | null;
98
+ contactFirstName: string | null;
99
+ contactLastName: string | null;
100
+ contactEmail: string | null;
101
+ contactPhone: string | null;
102
+ contactPreferredLanguage: string | null;
103
+ contactCountry: string | null;
104
+ contactRegion: string | null;
105
+ contactCity: string | null;
106
+ contactAddressLine1: string | null;
107
+ contactPostalCode: string | null;
97
108
  sellCurrency: string;
98
109
  baseCurrency: string | null;
99
110
  sellAmountCents: number | null;
@@ -108,7 +119,6 @@ export declare const bookingGroupRoutes: import("hono/hono-base").HonoBase<Env,
108
119
  expiredAt: string | null;
109
120
  cancelledAt: string | null;
110
121
  completedAt: string | null;
111
- redeemedAt: string | null;
112
122
  } | null;
113
123
  }[];
114
124
  id: string;
@@ -213,6 +223,7 @@ export declare const bookingGroupRoutes: import("hono/hono-base").HonoBase<Env,
213
223
  createdAt: string;
214
224
  updatedAt: string;
215
225
  organizationId: string | null;
226
+ redeemedAt: string | null;
216
227
  startDate: string | null;
217
228
  endDate: string | null;
218
229
  bookingNumber: string;
@@ -220,6 +231,16 @@ export declare const bookingGroupRoutes: import("hono/hono-base").HonoBase<Env,
220
231
  sourceType: "internal" | "reseller" | "direct" | "manual" | "affiliate" | "ota" | "api_partner";
221
232
  externalBookingRef: string | null;
222
233
  communicationLanguage: string | null;
234
+ contactFirstName: string | null;
235
+ contactLastName: string | null;
236
+ contactEmail: string | null;
237
+ contactPhone: string | null;
238
+ contactPreferredLanguage: string | null;
239
+ contactCountry: string | null;
240
+ contactRegion: string | null;
241
+ contactCity: string | null;
242
+ contactAddressLine1: string | null;
243
+ contactPostalCode: string | null;
223
244
  sellCurrency: string;
224
245
  baseCurrency: string | null;
225
246
  sellAmountCents: number | null;
@@ -234,7 +255,6 @@ export declare const bookingGroupRoutes: import("hono/hono-base").HonoBase<Env,
234
255
  expiredAt: string | null;
235
256
  cancelledAt: string | null;
236
257
  completedAt: string | null;
237
- redeemedAt: string | null;
238
258
  } | null;
239
259
  }[];
240
260
  };
@@ -317,7 +337,7 @@ export declare const bookingGroupRoutes: import("hono/hono-base").HonoBase<Env,
317
337
  };
318
338
  };
319
339
  } & {
320
- "/:id/passengers": {
340
+ "/:id/travelers": {
321
341
  $get: {
322
342
  input: {
323
343
  param: {
@@ -335,7 +355,7 @@ export declare const bookingGroupRoutes: import("hono/hono-base").HonoBase<Env,
335
355
  lastName: string;
336
356
  personId: string | null;
337
357
  bookingId: string;
338
- participantType: "staff" | "other" | "traveler" | "booker" | "contact" | "occupant";
358
+ participantType: "other" | "traveler" | "occupant";
339
359
  travelerCategory: "other" | "adult" | "child" | "infant" | "senior" | null;
340
360
  phone: string | null;
341
361
  preferredLanguage: string | null;
@@ -348,7 +368,7 @@ export declare const bookingGroupRoutes: import("hono/hono-base").HonoBase<Env,
348
368
  status: import("hono/utils/http-status").ContentfulStatusCode;
349
369
  };
350
370
  };
351
- }, "/", "/:id/passengers">;
371
+ }, "/", "/:id/travelers">;
352
372
  export type BookingGroupRoutes = typeof bookingGroupRoutes;
353
373
  export {};
354
374
  //# sourceMappingURL=routes-groups.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"routes-groups.d.ts","sourceRoot":"","sources":["../src/routes-groups.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAQ1D,KAAK,GAAG,GAAG;IACT,SAAS,EAAE;QACT,EAAE,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;QAChE,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BA0E3B,CAAA;AAEJ,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAA"}
1
+ {"version":3,"file":"routes-groups.d.ts","sourceRoot":"","sources":["../src/routes-groups.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAQ1D,KAAK,GAAG,GAAG;IACT,SAAS,EAAE;QACT,EAAE,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;QAChE,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA0E3B,CAAA;AAEJ,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAA"}
@@ -56,7 +56,7 @@ export const bookingGroupRoutes = new Hono()
56
56
  return c.json({ error: "Membership not found" }, 404);
57
57
  return c.json({ success: true });
58
58
  })
59
- .get("/:id/passengers", async (c) => {
60
- const passengers = await bookingGroupsService.listGroupBookingPassengers(c.get("db"), c.req.param("id"));
61
- return c.json({ data: passengers });
59
+ .get("/:id/travelers", async (c) => {
60
+ const travelers = await bookingGroupsService.listGroupBookingTravelers(c.get("db"), c.req.param("id"));
61
+ return c.json({ data: travelers });
62
62
  });