@voyantjs/bookings 0.116.0 → 0.117.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/routes.d.ts CHANGED
@@ -2066,12 +2066,12 @@ export declare const bookingRoutes: import("hono/hono-base").HonoBase<Env, ({
2066
2066
  id: string;
2067
2067
  status: "failed" | "pending" | "revoked" | "issued" | "reissued";
2068
2068
  createdAt: string;
2069
- updatedAt: string;
2070
- revokedAt: string | null;
2071
- bookingId: string;
2072
2069
  payload: {
2073
2070
  [x: string]: import("hono/utils/types").JSONValue;
2074
2071
  } | null;
2072
+ updatedAt: string;
2073
+ revokedAt: string | null;
2074
+ bookingId: string;
2075
2075
  travelerId: string | null;
2076
2076
  bookingItemId: string | null;
2077
2077
  fulfillmentType: "other" | "voucher" | "ticket" | "pdf" | "qr_code" | "barcode" | "mobile";
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iDA8jDa,CAAA;AAEvC,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAA;AAChD,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA;AAE5D,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;CAQpB,CAAA"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iDAqkDa,CAAA;AAEvC,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAA;AAChD,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA;AAE5D,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;CAQpB,CAAA"}
package/dist/routes.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { ACTION_LEDGER_APPROVAL_ID_HEADER, ActionApprovalDecisionConflictError, ActionLedgerIdempotencyConflictError, actionLedgerService, appendActionLedgerMutation, appendActionLedgerSensitiveRead, buildActionApprovalCommandFingerprint, buildActionLedgerApprovedExecutionFields, decideActionLedgerApproval, evaluateActionLedgerApprovalRequirement, evaluateActionLedgerCapabilityAccess, ledgerSensitiveRead, mapActionLedgerRequestContext, requestActionLedgerApproval, } from "@voyantjs/action-ledger";
2
+ import { aggregateSnapshotKey, readThroughAggregateSnapshot, } from "@voyantjs/db/aggregate-snapshots";
2
3
  import { ForbiddenApiError, handleApiError, idempotencyKey, normalizeValidationError, parseJsonBody, parseQuery, RequestValidationError, requireUserId, UnauthorizedApiError, } from "@voyantjs/hono";
3
4
  import { Hono } from "hono";
4
5
  import { z } from "zod";
@@ -122,7 +123,9 @@ const bookingActionLedgerQuerySchema = z
122
123
  const decideBookingActionApprovalBodySchema = z.object({
123
124
  status: z.enum(["approved", "denied"]),
124
125
  });
125
- const DASHBOARD_AGGREGATES_CACHE_CONTROL = "private, max-age=60";
126
+ const DASHBOARD_AGGREGATES_CACHE_CONTROL = "private, max-age=30";
127
+ /** Server-side snapshot TTL — see readThroughAggregateSnapshot (#1629). */
128
+ const DASHBOARD_AGGREGATES_TTL_SECONDS = 60;
126
129
  function cacheDashboardAggregates(c) {
127
130
  c.header("Cache-Control", DASHBOARD_AGGREGATES_CACHE_CONTROL);
128
131
  c.header("Vary", "Authorization", { append: true });
@@ -939,11 +942,18 @@ export const bookingRoutes = new Hono()
939
942
  }
940
943
  return c.json({ data: snapshot });
941
944
  })
942
- // 1b. GET /aggregates — Pre-aggregated dashboard metrics
945
+ // 1b. GET /aggregates — Pre-aggregated dashboard metrics. Served from a
946
+ // read-through TTL snapshot so a warm dashboard load is one indexed read
947
+ // instead of the full aggregate fan-out (#1629).
943
948
  .get("/aggregates", async (c) => {
944
949
  const query = parseQuery(c, bookingAggregatesQuerySchema);
945
950
  cacheDashboardAggregates(c);
946
- return c.json({ data: await bookingsService.getBookingAggregates(c.get("db"), query) });
951
+ const snapshot = await readThroughAggregateSnapshot(c.get("db"), {
952
+ key: aggregateSnapshotKey("bookings", "aggregates", query),
953
+ ttlSeconds: DASHBOARD_AGGREGATES_TTL_SECONDS,
954
+ compute: () => bookingsService.getBookingAggregates(c.get("db"), query),
955
+ });
956
+ return c.json({ data: snapshot.data });
947
957
  })
948
958
  // 1b. GET /overview — Internal/admin booking overview lookup
949
959
  .get("/overview", async (c) => {
package/dist/service.d.ts CHANGED
@@ -242,6 +242,12 @@ export interface BookingResourceCapacityViolation {
242
242
  capacity: number;
243
243
  existingAssigned: number;
244
244
  }
245
+ /**
246
+ * Exported for unit tests — production callers go through
247
+ * `assertResourceCapacityForAllocations` /
248
+ * `persistTravelDetailsWithCapacityCheck` below.
249
+ */
250
+ export declare function loadResourceCapacityViolations(db: PostgresJsDatabase, travelerId: string, allocations: Record<string, string>): Promise<BookingResourceCapacityViolation[]>;
245
251
  export interface BookingAggregateUpcomingDeparture {
246
252
  id: string;
247
253
  bookingNumber: string | null;
@@ -4891,10 +4897,10 @@ export declare const bookingsService: {
4891
4897
  id: string;
4892
4898
  status: "failed" | "pending" | "revoked" | "issued" | "reissued";
4893
4899
  createdAt: Date;
4900
+ payload: Record<string, unknown> | null;
4894
4901
  updatedAt: Date;
4895
4902
  revokedAt: Date | null;
4896
4903
  bookingId: string;
4897
- payload: Record<string, unknown> | null;
4898
4904
  travelerId: string | null;
4899
4905
  bookingItemId: string | null;
4900
4906
  fulfillmentType: "other" | "voucher" | "ticket" | "pdf" | "qr_code" | "barcode" | "mobile";
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
package/dist/service.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { appendActionLedgerMutation, } from "@voyantjs/action-ledger";
2
+ import { newId } from "@voyantjs/db/lib/typeid";
2
3
  import { authUser } from "@voyantjs/db/schema/iam";
3
4
  import { and, asc, desc, eq, exists, getTableColumns, gte, ilike, inArray, isNotNull, lte, ne, notInArray, or, sql, } from "drizzle-orm";
4
5
  import { BOOKING_STATUS_CAPABILITIES } from "./action-ledger-capabilities.js";
@@ -886,7 +887,12 @@ async function adjustSlotCapacity(db, slotId, delta, source = "booking") {
886
887
  slotChange: buildSlotChange(locked, nextRemaining, source),
887
888
  };
888
889
  }
889
- async function loadResourceCapacityViolations(db, travelerId, allocations) {
890
+ /**
891
+ * Exported for unit tests — production callers go through
892
+ * `assertResourceCapacityForAllocations` /
893
+ * `persistTravelDetailsWithCapacityCheck` below.
894
+ */
895
+ export async function loadResourceCapacityViolations(db, travelerId, allocations) {
890
896
  const entries = Object.entries(allocations ?? {}).filter(([kind, resourceId]) => kind && resourceId);
891
897
  if (entries.length === 0)
892
898
  return [];
@@ -905,6 +911,46 @@ async function loadResourceCapacityViolations(db, travelerId, allocations) {
905
911
  `);
906
912
  const resourceList = resources;
907
913
  const resourceById = new Map(resourceList.map((row) => [row.id, row]));
914
+ // Entries whose resource exists under the requested kind need a traveler
915
+ // count; the rest (missing resource / kind mismatch) are violations
916
+ // outright and never had a count in the per-resource form either.
917
+ const countedChecks = [];
918
+ for (const [kind, resourceId] of entries) {
919
+ const resource = resourceById.get(resourceId);
920
+ if (resource && resource.kind === kind) {
921
+ countedChecks.push({ kind, resourceId, slotId: resource.slot_id });
922
+ }
923
+ }
924
+ // ONE grouped count for all checked (kind, resource) pairs. `kind` varies
925
+ // per entry (it is the jsonb key inside `btd.allocations`), so a plain
926
+ // GROUP BY over a static column can't express the check — instead a
927
+ // VALUES join carries each pair's kind + resource + slot and the jsonb
928
+ // lookup joins against it. Replaces the COUNT-per-resource loop this
929
+ // function used to run (N round trips for N allocation entries).
930
+ const assignedByCheck = new Map();
931
+ if (countedChecks.length > 0) {
932
+ const checkTuples = sql.join(countedChecks.map((check) => sql `(${check.kind}::text, ${check.resourceId}::text, ${check.slotId}::text)`), sql.raw(", "));
933
+ const counts = await db.execute(sql `
934
+ SELECT checks.kind AS kind,
935
+ checks.resource_id AS resource_id,
936
+ COUNT(DISTINCT btd.traveler_id)::int AS count
937
+ FROM (VALUES ${checkTuples}) AS checks(kind, resource_id, slot_id)
938
+ JOIN booking_traveler_travel_details btd
939
+ ON btd.allocations ->> checks.kind = checks.resource_id
940
+ JOIN booking_travelers bt ON bt.id = btd.traveler_id
941
+ JOIN booking_allocations ba
942
+ ON ba.booking_id = bt.booking_id
943
+ AND ba.availability_slot_id = checks.slot_id
944
+ JOIN bookings b ON b.id = bt.booking_id
945
+ WHERE b.status IN ('draft', 'on_hold', 'confirmed', 'in_progress', 'completed')
946
+ AND ba.status IN ('held', 'confirmed', 'fulfilled')
947
+ AND btd.traveler_id <> ${travelerId}
948
+ GROUP BY checks.kind, checks.resource_id
949
+ `);
950
+ for (const row of toRows(counts)) {
951
+ assignedByCheck.set(`${row.kind}\u0000${row.resource_id}`, row.count ?? 0);
952
+ }
953
+ }
908
954
  const violations = [];
909
955
  for (const [kind, resourceId] of entries) {
910
956
  const resource = resourceById.get(resourceId);
@@ -928,19 +974,9 @@ async function loadResourceCapacityViolations(db, travelerId, allocations) {
928
974
  });
929
975
  continue;
930
976
  }
931
- const counts = await db.execute(sql `
932
- SELECT COUNT(DISTINCT btd.traveler_id)::int AS count
933
- FROM booking_traveler_travel_details btd
934
- JOIN booking_travelers bt ON bt.id = btd.traveler_id
935
- JOIN booking_allocations ba ON ba.booking_id = bt.booking_id
936
- JOIN bookings b ON b.id = bt.booking_id
937
- WHERE btd.allocations ->> ${kind} = ${resourceId}
938
- AND ba.availability_slot_id = ${resource.slot_id}
939
- AND b.status IN ('draft', 'on_hold', 'confirmed', 'in_progress', 'completed')
940
- AND ba.status IN ('held', 'confirmed', 'fulfilled')
941
- AND btd.traveler_id <> ${travelerId}
942
- `);
943
- const existingAssigned = toRows(counts)[0]?.count ?? 0;
977
+ // Pairs with no live assignments produce no group row — that is the
978
+ // zero count, same as the old per-resource COUNT returning 0.
979
+ const existingAssigned = assignedByCheck.get(`${kind}\u0000${resourceId}`) ?? 0;
944
980
  if (existingAssigned + 1 > resource.capacity) {
945
981
  violations.push({
946
982
  slotId: resource.slot_id,
@@ -2282,8 +2318,50 @@ export const bookingsService = {
2282
2318
  async reserveBooking(db, data, userId, runtime = {}) {
2283
2319
  const slotChanges = [];
2284
2320
  try {
2321
+ // Everything that doesn't need the slot locks runs BEFORE the
2322
+ // transaction opens so the `FOR UPDATE` critical section stays as
2323
+ // short as possible (T7, perf RFC): hold-policy resolution and the
2324
+ // catalog name snapshots are plain reads of catalog/policy data
2325
+ // that the slot lock doesn't protect anyway (a product rename
2326
+ // could land mid-transaction either way).
2327
+ const holdExpiresAt = await computeHoldExpiresAt(db, data, data.items);
2328
+ // Unlocked pre-read of slot -> product/option so items that omit
2329
+ // productId/optionId can still resolve their catalog snapshot
2330
+ // pre-transaction. `product_id`/`option_id` are immutable on a
2331
+ // slot, so this read cannot diverge from the locked read inside
2332
+ // the transaction. Missing table (catalog-less deployment) or a
2333
+ // missing slot just degrades the snapshot to nulls — the locked
2334
+ // read inside the transaction stays authoritative for existence
2335
+ // and mismatch checks.
2336
+ const slotIds = [...new Set(data.items.map((item) => item.availabilitySlotId))];
2337
+ const slotInfo = new Map();
2338
+ try {
2339
+ const slotRows = await db
2340
+ .select({
2341
+ id: availabilitySlotsRef.id,
2342
+ productId: availabilitySlotsRef.productId,
2343
+ optionId: availabilitySlotsRef.optionId,
2344
+ })
2345
+ .from(availabilitySlotsRef)
2346
+ .where(inArray(availabilitySlotsRef.id, slotIds));
2347
+ for (const row of slotRows) {
2348
+ slotInfo.set(row.id, { productId: row.productId, optionId: row.optionId });
2349
+ }
2350
+ }
2351
+ catch (error) {
2352
+ if (!isUndefinedTableError(error))
2353
+ throw error;
2354
+ }
2355
+ const itemSnapshots = await Promise.all(data.items.map((item) => {
2356
+ const preSlot = slotInfo.get(item.availabilitySlotId);
2357
+ return resolveBookingItemSnapshot(db, {
2358
+ productId: item.productId ?? preSlot?.productId ?? null,
2359
+ optionId: item.optionId ?? preSlot?.optionId ?? null,
2360
+ optionUnitId: item.optionUnitId ?? null,
2361
+ availabilitySlotId: item.availabilitySlotId,
2362
+ });
2363
+ }));
2285
2364
  const result = await db.transaction(async (tx) => {
2286
- const holdExpiresAt = await computeHoldExpiresAt(tx, data, data.items);
2287
2365
  const [booking] = await tx
2288
2366
  .insert(bookings)
2289
2367
  .values({
@@ -2324,7 +2402,14 @@ export const bookingsService = {
2324
2402
  if (!booking) {
2325
2403
  throw new BookingServiceError("booking_create_failed");
2326
2404
  }
2327
- for (const item of data.items) {
2405
+ // The locked critical section: per item, only the slot lock +
2406
+ // capacity adjustment runs serially (correctness — that's the
2407
+ // row the `FOR UPDATE` protects). Row payloads are accumulated
2408
+ // and written with ONE batched insert per table afterwards,
2409
+ // instead of two inserts per item while holding the locks.
2410
+ const itemRows = [];
2411
+ const allocationRows = [];
2412
+ for (const [index, item] of data.items.entries()) {
2328
2413
  const capacity = await adjustSlotCapacity(tx, item.availabilitySlotId, -item.quantity, "booking");
2329
2414
  if (capacity.status === "slot_not_found") {
2330
2415
  throw new BookingServiceError("slot_not_found");
@@ -2347,15 +2432,13 @@ export const bookingsService = {
2347
2432
  const productId = item.productId ?? slot.product_id;
2348
2433
  const optionId = item.optionId ?? slot.option_id;
2349
2434
  const optionUnitId = item.optionUnitId ?? null;
2350
- const snapshot = await resolveBookingItemSnapshot(tx, {
2351
- productId,
2352
- optionId,
2353
- optionUnitId,
2354
- availabilitySlotId: item.availabilitySlotId,
2355
- });
2356
- const [bookingItem] = await tx
2357
- .insert(bookingItems)
2358
- .values({
2435
+ const snapshot = itemSnapshots[index];
2436
+ // Ids are generated app-side (same `newId` the column default
2437
+ // uses) so allocations can reference their item without
2438
+ // depending on RETURNING order of the batched insert.
2439
+ const bookingItemId = newId("booking_items");
2440
+ itemRows.push({
2441
+ id: bookingItemId,
2359
2442
  bookingId: booking.id,
2360
2443
  title: item.title,
2361
2444
  description: item.description ?? null,
@@ -2377,23 +2460,17 @@ export const bookingsService = {
2377
2460
  optionUnitId,
2378
2461
  pricingCategoryId: item.pricingCategoryId ?? null,
2379
2462
  availabilitySlotId: item.availabilitySlotId,
2380
- productNameSnapshot: item.productNameSnapshot ?? snapshot.productName ?? null,
2381
- optionNameSnapshot: item.optionNameSnapshot ?? snapshot.optionName ?? null,
2382
- unitNameSnapshot: item.unitNameSnapshot ?? snapshot.unitName ?? null,
2383
- departureLabelSnapshot: item.departureLabelSnapshot ?? snapshot.departureLabel ?? null,
2463
+ productNameSnapshot: item.productNameSnapshot ?? snapshot?.productName ?? null,
2464
+ optionNameSnapshot: item.optionNameSnapshot ?? snapshot?.optionName ?? null,
2465
+ unitNameSnapshot: item.unitNameSnapshot ?? snapshot?.unitName ?? null,
2466
+ departureLabelSnapshot: item.departureLabelSnapshot ?? snapshot?.departureLabel ?? null,
2384
2467
  sourceSnapshotId: item.sourceSnapshotId ?? null,
2385
2468
  sourceOfferId: item.sourceOfferId ?? null,
2386
2469
  metadata: item.metadata ?? null,
2387
- })
2388
- .returning();
2389
- if (!bookingItem) {
2390
- throw new BookingServiceError("booking_item_create_failed");
2391
- }
2392
- const [allocation] = await tx
2393
- .insert(bookingAllocations)
2394
- .values({
2470
+ });
2471
+ allocationRows.push({
2395
2472
  bookingId: booking.id,
2396
- bookingItemId: bookingItem.id,
2473
+ bookingItemId,
2397
2474
  productId,
2398
2475
  optionId,
2399
2476
  optionUnitId,
@@ -2404,11 +2481,21 @@ export const bookingsService = {
2404
2481
  status: "held",
2405
2482
  holdExpiresAt,
2406
2483
  metadata: item.metadata ?? null,
2407
- })
2408
- .returning();
2409
- if (!allocation) {
2410
- throw new BookingServiceError("allocation_create_failed");
2411
- }
2484
+ });
2485
+ }
2486
+ const insertedItems = await tx
2487
+ .insert(bookingItems)
2488
+ .values(itemRows)
2489
+ .returning({ id: bookingItems.id });
2490
+ if (insertedItems.length !== itemRows.length) {
2491
+ throw new BookingServiceError("booking_item_create_failed");
2492
+ }
2493
+ const insertedAllocations = await tx
2494
+ .insert(bookingAllocations)
2495
+ .values(allocationRows)
2496
+ .returning({ id: bookingAllocations.id });
2497
+ if (insertedAllocations.length !== allocationRows.length) {
2498
+ throw new BookingServiceError("allocation_create_failed");
2412
2499
  }
2413
2500
  await tx.insert(bookingActivityLog).values({
2414
2501
  bookingId: booking.id,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voyantjs/bookings",
3
- "version": "0.116.0",
3
+ "version": "0.117.1",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "exports": {
@@ -84,16 +84,16 @@
84
84
  "drizzle-orm": "^0.45.2",
85
85
  "hono": "^4.12.10",
86
86
  "zod": "^4.3.6",
87
- "@voyantjs/action-ledger": "^0.104.5",
87
+ "@voyantjs/action-ledger": "^0.104.7",
88
88
  "@voyantjs/bookings-contracts": "^0.104.2",
89
- "@voyantjs/core": "^0.107.0",
90
- "@voyantjs/db": "^0.105.0",
91
- "@voyantjs/hono": "^0.106.0",
89
+ "@voyantjs/core": "^0.109.0",
90
+ "@voyantjs/db": "^0.107.0",
91
+ "@voyantjs/hono": "^0.108.0",
92
92
  "@voyantjs/utils": "^0.104.1"
93
93
  },
94
94
  "devDependencies": {
95
95
  "typescript": "^6.0.2",
96
- "@voyantjs/products": "^0.116.0",
96
+ "@voyantjs/products": "^0.117.1",
97
97
  "@voyantjs/voyant-typescript-config": "^0.1.0"
98
98
  },
99
99
  "files": [