@voyantjs/bookings 0.10.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/routes-groups.d.ts +4 -4
- package/dist/routes.d.ts +221 -19
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +43 -15
- package/dist/schema-groups.d.ts +3 -3
- package/dist/schema-groups.d.ts.map +1 -1
- package/dist/schema-groups.js +5 -1
- package/dist/schema-operations.d.ts +2 -2
- package/dist/schema-shared.d.ts +1 -1
- package/dist/schema-shared.d.ts.map +1 -1
- package/dist/schema-shared.js +3 -0
- package/dist/service.d.ts +177 -10
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +193 -60
- package/dist/validation.d.ts +29 -12
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +18 -5
- package/package.json +7 -7
package/dist/service.d.ts
CHANGED
|
@@ -2,18 +2,20 @@ import type { EventBus } from "@voyantjs/core";
|
|
|
2
2
|
import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
|
|
3
3
|
import type { z } from "zod";
|
|
4
4
|
import { type BookingStatus } from "./state-machine.js";
|
|
5
|
-
import type { bookingListQuerySchema, cancelBookingSchema, confirmBookingSchema, convertProductSchema, expireBookingSchema, expireStaleBookingsSchema, extendBookingHoldSchema, insertBookingDocumentSchema, insertBookingFulfillmentSchema, insertBookingItemParticipantSchema, insertBookingItemSchema, insertBookingNoteSchema, insertBookingSchema, insertTravelerRecordSchema, insertTravelerSchema, recordBookingRedemptionSchema, reserveBookingFromTransactionSchema, reserveBookingSchema, updateBookingFulfillmentSchema, updateBookingItemSchema, updateBookingSchema,
|
|
5
|
+
import type { bookingListQuerySchema, cancelBookingSchema, completeBookingSchema, confirmBookingSchema, convertProductSchema, expireBookingSchema, expireStaleBookingsSchema, extendBookingHoldSchema, insertBookingDocumentSchema, insertBookingFulfillmentSchema, insertBookingItemParticipantSchema, insertBookingItemSchema, insertBookingNoteSchema, insertBookingSchema, insertTravelerRecordSchema, insertTravelerSchema, overrideBookingStatusSchema, recordBookingRedemptionSchema, reserveBookingFromTransactionSchema, reserveBookingSchema, startBookingSchema, updateBookingFulfillmentSchema, updateBookingItemSchema, updateBookingSchema, updateTravelerRecordSchema, updateTravelerSchema } from "./validation.js";
|
|
6
6
|
type BookingListQuery = z.infer<typeof bookingListQuerySchema>;
|
|
7
7
|
type ConvertProductInput = z.infer<typeof convertProductSchema>;
|
|
8
8
|
type CreateBookingInput = z.infer<typeof insertBookingSchema>;
|
|
9
9
|
type UpdateBookingInput = z.infer<typeof updateBookingSchema>;
|
|
10
|
-
type UpdateBookingStatusInput = z.infer<typeof updateBookingStatusSchema>;
|
|
11
10
|
type ReserveBookingInput = z.infer<typeof reserveBookingSchema>;
|
|
12
11
|
type ExtendBookingHoldInput = z.infer<typeof extendBookingHoldSchema>;
|
|
13
12
|
type ConfirmBookingInput = z.infer<typeof confirmBookingSchema>;
|
|
14
13
|
type CancelBookingInput = z.infer<typeof cancelBookingSchema>;
|
|
15
14
|
type ExpireBookingInput = z.infer<typeof expireBookingSchema>;
|
|
16
15
|
type ExpireStaleBookingsInput = z.infer<typeof expireStaleBookingsSchema>;
|
|
16
|
+
type StartBookingInput = z.infer<typeof startBookingSchema>;
|
|
17
|
+
type CompleteBookingInput = z.infer<typeof completeBookingSchema>;
|
|
18
|
+
type OverrideBookingStatusInput = z.infer<typeof overrideBookingStatusSchema>;
|
|
17
19
|
type CreateTravelerInput = z.infer<typeof insertTravelerSchema>;
|
|
18
20
|
type UpdateTravelerInput = z.infer<typeof updateTravelerSchema>;
|
|
19
21
|
type CreateTravelerRecordInput = z.infer<typeof insertTravelerRecordSchema>;
|
|
@@ -113,6 +115,31 @@ export interface BookingExpiredEvent {
|
|
|
113
115
|
cause: "route" | "sweep";
|
|
114
116
|
actorId: string | null;
|
|
115
117
|
}
|
|
118
|
+
/** Payload for `booking.started` — confirmed → in_progress. */
|
|
119
|
+
export interface BookingStartedEvent {
|
|
120
|
+
bookingId: string;
|
|
121
|
+
bookingNumber: string;
|
|
122
|
+
actorId: string | null;
|
|
123
|
+
}
|
|
124
|
+
/** Payload for `booking.completed` — in_progress → completed. */
|
|
125
|
+
export interface BookingCompletedEvent {
|
|
126
|
+
bookingId: string;
|
|
127
|
+
bookingNumber: string;
|
|
128
|
+
actorId: string | null;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Payload for `booking.status_overridden`. Fires when an admin bypasses the
|
|
132
|
+
* transition graph. Subscribers should treat this as a privileged audit signal
|
|
133
|
+
* distinct from the normal lifecycle events — e.g. compliance dashboards.
|
|
134
|
+
*/
|
|
135
|
+
export interface BookingStatusOverriddenEvent {
|
|
136
|
+
bookingId: string;
|
|
137
|
+
bookingNumber: string;
|
|
138
|
+
fromStatus: BookingStatus;
|
|
139
|
+
toStatus: BookingStatus;
|
|
140
|
+
reason: string;
|
|
141
|
+
actorId: string | null;
|
|
142
|
+
}
|
|
116
143
|
export interface BookingAggregates {
|
|
117
144
|
/** Total bookings across all statuses in range. */
|
|
118
145
|
total: number;
|
|
@@ -1053,9 +1080,6 @@ export declare const bookingsService: {
|
|
|
1053
1080
|
deleteBooking(db: PostgresJsDatabase, id: string): Promise<{
|
|
1054
1081
|
id: string;
|
|
1055
1082
|
} | null>;
|
|
1056
|
-
updateBookingStatus(db: PostgresJsDatabase, id: string, data: UpdateBookingStatusInput, userId?: string, runtime?: BookingServiceRuntime): Promise<{
|
|
1057
|
-
status: Exclude<string, "ok">;
|
|
1058
|
-
}>;
|
|
1059
1083
|
confirmBooking(db: PostgresJsDatabase, id: string, data: ConfirmBookingInput, userId?: string, runtime?: BookingServiceRuntime): Promise<{
|
|
1060
1084
|
status: "ok";
|
|
1061
1085
|
booking: {
|
|
@@ -1244,6 +1268,149 @@ export declare const bookingsService: {
|
|
|
1244
1268
|
status: Exclude<string, "ok">;
|
|
1245
1269
|
booking?: undefined;
|
|
1246
1270
|
}>;
|
|
1271
|
+
startBooking(db: PostgresJsDatabase, id: string, data: StartBookingInput, userId?: string, runtime?: BookingServiceRuntime): Promise<{
|
|
1272
|
+
status: "ok";
|
|
1273
|
+
booking: {
|
|
1274
|
+
id: string;
|
|
1275
|
+
bookingNumber: string;
|
|
1276
|
+
status: "cancelled" | "draft" | "on_hold" | "confirmed" | "in_progress" | "completed" | "expired";
|
|
1277
|
+
personId: string | null;
|
|
1278
|
+
organizationId: string | null;
|
|
1279
|
+
sourceType: "internal" | "reseller" | "direct" | "manual" | "affiliate" | "ota" | "api_partner";
|
|
1280
|
+
externalBookingRef: string | null;
|
|
1281
|
+
communicationLanguage: string | null;
|
|
1282
|
+
contactFirstName: string | null;
|
|
1283
|
+
contactLastName: string | null;
|
|
1284
|
+
contactEmail: string | null;
|
|
1285
|
+
contactPhone: string | null;
|
|
1286
|
+
contactPreferredLanguage: string | null;
|
|
1287
|
+
contactCountry: string | null;
|
|
1288
|
+
contactRegion: string | null;
|
|
1289
|
+
contactCity: string | null;
|
|
1290
|
+
contactAddressLine1: string | null;
|
|
1291
|
+
contactPostalCode: string | null;
|
|
1292
|
+
sellCurrency: string;
|
|
1293
|
+
baseCurrency: string | null;
|
|
1294
|
+
fxRateSetId: string | null;
|
|
1295
|
+
sellAmountCents: number | null;
|
|
1296
|
+
baseSellAmountCents: number | null;
|
|
1297
|
+
costAmountCents: number | null;
|
|
1298
|
+
baseCostAmountCents: number | null;
|
|
1299
|
+
marginPercent: number | null;
|
|
1300
|
+
startDate: string | null;
|
|
1301
|
+
endDate: string | null;
|
|
1302
|
+
pax: number | null;
|
|
1303
|
+
internalNotes: string | null;
|
|
1304
|
+
holdExpiresAt: Date | null;
|
|
1305
|
+
confirmedAt: Date | null;
|
|
1306
|
+
expiredAt: Date | null;
|
|
1307
|
+
cancelledAt: Date | null;
|
|
1308
|
+
completedAt: Date | null;
|
|
1309
|
+
redeemedAt: Date | null;
|
|
1310
|
+
createdAt: Date;
|
|
1311
|
+
updatedAt: Date;
|
|
1312
|
+
} | null;
|
|
1313
|
+
} | {
|
|
1314
|
+
status: Exclude<string, "ok">;
|
|
1315
|
+
}>;
|
|
1316
|
+
completeBooking(db: PostgresJsDatabase, id: string, data: CompleteBookingInput, userId?: string, runtime?: BookingServiceRuntime): Promise<{
|
|
1317
|
+
status: "ok";
|
|
1318
|
+
booking: {
|
|
1319
|
+
id: string;
|
|
1320
|
+
bookingNumber: string;
|
|
1321
|
+
status: "cancelled" | "draft" | "on_hold" | "confirmed" | "in_progress" | "completed" | "expired";
|
|
1322
|
+
personId: string | null;
|
|
1323
|
+
organizationId: string | null;
|
|
1324
|
+
sourceType: "internal" | "reseller" | "direct" | "manual" | "affiliate" | "ota" | "api_partner";
|
|
1325
|
+
externalBookingRef: string | null;
|
|
1326
|
+
communicationLanguage: string | null;
|
|
1327
|
+
contactFirstName: string | null;
|
|
1328
|
+
contactLastName: string | null;
|
|
1329
|
+
contactEmail: string | null;
|
|
1330
|
+
contactPhone: string | null;
|
|
1331
|
+
contactPreferredLanguage: string | null;
|
|
1332
|
+
contactCountry: string | null;
|
|
1333
|
+
contactRegion: string | null;
|
|
1334
|
+
contactCity: string | null;
|
|
1335
|
+
contactAddressLine1: string | null;
|
|
1336
|
+
contactPostalCode: string | null;
|
|
1337
|
+
sellCurrency: string;
|
|
1338
|
+
baseCurrency: string | null;
|
|
1339
|
+
fxRateSetId: string | null;
|
|
1340
|
+
sellAmountCents: number | null;
|
|
1341
|
+
baseSellAmountCents: number | null;
|
|
1342
|
+
costAmountCents: number | null;
|
|
1343
|
+
baseCostAmountCents: number | null;
|
|
1344
|
+
marginPercent: number | null;
|
|
1345
|
+
startDate: string | null;
|
|
1346
|
+
endDate: string | null;
|
|
1347
|
+
pax: number | null;
|
|
1348
|
+
internalNotes: string | null;
|
|
1349
|
+
holdExpiresAt: Date | null;
|
|
1350
|
+
confirmedAt: Date | null;
|
|
1351
|
+
expiredAt: Date | null;
|
|
1352
|
+
cancelledAt: Date | null;
|
|
1353
|
+
completedAt: Date | null;
|
|
1354
|
+
redeemedAt: Date | null;
|
|
1355
|
+
createdAt: Date;
|
|
1356
|
+
updatedAt: Date;
|
|
1357
|
+
} | null;
|
|
1358
|
+
} | {
|
|
1359
|
+
status: Exclude<string, "ok">;
|
|
1360
|
+
}>;
|
|
1361
|
+
/**
|
|
1362
|
+
* Admin-only force: bypasses the transition graph. Updates the booking row
|
|
1363
|
+
* only — does NOT cascade to items, allocations, or fulfillments. If the
|
|
1364
|
+
* operator needs cascaded behavior (e.g. release allocations), they should
|
|
1365
|
+
* call the verb-specific method instead. The override is for data
|
|
1366
|
+
* correction; misuse leaves child state inconsistent with the parent.
|
|
1367
|
+
*/
|
|
1368
|
+
overrideBookingStatus(db: PostgresJsDatabase, id: string, data: OverrideBookingStatusInput, userId?: string, runtime?: BookingServiceRuntime): Promise<{
|
|
1369
|
+
status: "ok";
|
|
1370
|
+
booking: {
|
|
1371
|
+
id: string;
|
|
1372
|
+
bookingNumber: string;
|
|
1373
|
+
status: "cancelled" | "draft" | "on_hold" | "confirmed" | "in_progress" | "completed" | "expired";
|
|
1374
|
+
personId: string | null;
|
|
1375
|
+
organizationId: string | null;
|
|
1376
|
+
sourceType: "internal" | "reseller" | "direct" | "manual" | "affiliate" | "ota" | "api_partner";
|
|
1377
|
+
externalBookingRef: string | null;
|
|
1378
|
+
communicationLanguage: string | null;
|
|
1379
|
+
contactFirstName: string | null;
|
|
1380
|
+
contactLastName: string | null;
|
|
1381
|
+
contactEmail: string | null;
|
|
1382
|
+
contactPhone: string | null;
|
|
1383
|
+
contactPreferredLanguage: string | null;
|
|
1384
|
+
contactCountry: string | null;
|
|
1385
|
+
contactRegion: string | null;
|
|
1386
|
+
contactCity: string | null;
|
|
1387
|
+
contactAddressLine1: string | null;
|
|
1388
|
+
contactPostalCode: string | null;
|
|
1389
|
+
sellCurrency: string;
|
|
1390
|
+
baseCurrency: string | null;
|
|
1391
|
+
fxRateSetId: string | null;
|
|
1392
|
+
sellAmountCents: number | null;
|
|
1393
|
+
baseSellAmountCents: number | null;
|
|
1394
|
+
costAmountCents: number | null;
|
|
1395
|
+
baseCostAmountCents: number | null;
|
|
1396
|
+
marginPercent: number | null;
|
|
1397
|
+
startDate: string | null;
|
|
1398
|
+
endDate: string | null;
|
|
1399
|
+
pax: number | null;
|
|
1400
|
+
internalNotes: string | null;
|
|
1401
|
+
holdExpiresAt: Date | null;
|
|
1402
|
+
confirmedAt: Date | null;
|
|
1403
|
+
expiredAt: Date | null;
|
|
1404
|
+
cancelledAt: Date | null;
|
|
1405
|
+
completedAt: Date | null;
|
|
1406
|
+
redeemedAt: Date | null;
|
|
1407
|
+
createdAt: Date;
|
|
1408
|
+
updatedAt: Date;
|
|
1409
|
+
} | null;
|
|
1410
|
+
} | {
|
|
1411
|
+
status: Exclude<string, "ok">;
|
|
1412
|
+
booking?: undefined;
|
|
1413
|
+
}>;
|
|
1247
1414
|
listTravelerRecords(db: PostgresJsDatabase, bookingId: string): Omit<import("drizzle-orm/pg-core").PgSelectBase<"booking_travelers", {
|
|
1248
1415
|
id: import("drizzle-orm/pg-core").PgColumn<{
|
|
1249
1416
|
name: string;
|
|
@@ -4509,14 +4676,14 @@ export declare const bookingsService: {
|
|
|
4509
4676
|
tableName: "booking_activity_log";
|
|
4510
4677
|
dataType: "string";
|
|
4511
4678
|
columnType: "PgEnumColumn";
|
|
4512
|
-
data: "booking_created" | "booking_reserved" | "booking_converted" | "booking_confirmed" | "hold_extended" | "hold_expired" | "status_change" | "item_update" | "allocation_released" | "fulfillment_issued" | "fulfillment_updated" | "redemption_recorded" | "supplier_update" | "passenger_update" | "note_added";
|
|
4679
|
+
data: "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" | "passenger_update" | "note_added";
|
|
4513
4680
|
driverParam: string;
|
|
4514
4681
|
notNull: true;
|
|
4515
4682
|
hasDefault: false;
|
|
4516
4683
|
isPrimaryKey: false;
|
|
4517
4684
|
isAutoincrement: false;
|
|
4518
4685
|
hasRuntimeDefault: false;
|
|
4519
|
-
enumValues: ["booking_created", "booking_reserved", "booking_converted", "booking_confirmed", "hold_extended", "hold_expired", "status_change", "item_update", "allocation_released", "fulfillment_issued", "fulfillment_updated", "redemption_recorded", "supplier_update", "passenger_update", "note_added"];
|
|
4686
|
+
enumValues: ["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", "passenger_update", "note_added"];
|
|
4520
4687
|
baseColumn: never;
|
|
4521
4688
|
identity: undefined;
|
|
4522
4689
|
generated: undefined;
|
|
@@ -4578,7 +4745,7 @@ export declare const bookingsService: {
|
|
|
4578
4745
|
id: string;
|
|
4579
4746
|
bookingId: string;
|
|
4580
4747
|
actorId: string | null;
|
|
4581
|
-
activityType: "booking_created" | "booking_reserved" | "booking_converted" | "booking_confirmed" | "hold_extended" | "hold_expired" | "status_change" | "item_update" | "allocation_released" | "fulfillment_issued" | "fulfillment_updated" | "redemption_recorded" | "supplier_update" | "passenger_update" | "note_added";
|
|
4748
|
+
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" | "passenger_update" | "note_added";
|
|
4582
4749
|
description: string;
|
|
4583
4750
|
metadata: Record<string, unknown> | null;
|
|
4584
4751
|
createdAt: Date;
|
|
@@ -4639,14 +4806,14 @@ export declare const bookingsService: {
|
|
|
4639
4806
|
tableName: "booking_activity_log";
|
|
4640
4807
|
dataType: "string";
|
|
4641
4808
|
columnType: "PgEnumColumn";
|
|
4642
|
-
data: "booking_created" | "booking_reserved" | "booking_converted" | "booking_confirmed" | "hold_extended" | "hold_expired" | "status_change" | "item_update" | "allocation_released" | "fulfillment_issued" | "fulfillment_updated" | "redemption_recorded" | "supplier_update" | "passenger_update" | "note_added";
|
|
4809
|
+
data: "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" | "passenger_update" | "note_added";
|
|
4643
4810
|
driverParam: string;
|
|
4644
4811
|
notNull: true;
|
|
4645
4812
|
hasDefault: false;
|
|
4646
4813
|
isPrimaryKey: false;
|
|
4647
4814
|
isAutoincrement: false;
|
|
4648
4815
|
hasRuntimeDefault: false;
|
|
4649
|
-
enumValues: ["booking_created", "booking_reserved", "booking_converted", "booking_confirmed", "hold_extended", "hold_expired", "status_change", "item_update", "allocation_released", "fulfillment_issued", "fulfillment_updated", "redemption_recorded", "supplier_update", "passenger_update", "note_added"];
|
|
4816
|
+
enumValues: ["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", "passenger_update", "note_added"];
|
|
4650
4817
|
baseColumn: never;
|
|
4651
4818
|
identity: undefined;
|
|
4652
4819
|
generated: undefined;
|
package/dist/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/dist/service.js
CHANGED
|
@@ -4,7 +4,7 @@ import { exchangeRatesRef } from "./markets-ref.js";
|
|
|
4
4
|
import { bookingItemProductDetailsRef, bookingProductDetailsRef, optionUnitsRef, productDayServicesRef, productDaysRef, productItinerariesRef, productOptionsRef, productsRef, productTicketSettingsRef, } from "./products-ref.js";
|
|
5
5
|
import { bookingActivityLog, bookingAllocations, bookingDocuments, bookingFulfillments, bookingItems, bookingItemTravelers, bookingNotes, bookingRedemptionEvents, bookingStaffAssignments, bookingSupplierStatuses, bookings, bookingTravelers, } from "./schema.js";
|
|
6
6
|
import { cleanupGroupOnBookingCancelled } from "./service-groups.js";
|
|
7
|
-
import {
|
|
7
|
+
import { canTransitionBooking, transitionBooking } from "./state-machine.js";
|
|
8
8
|
import { bookingTransactionDetailsRef, offerItemParticipantsRef, offerItemsRef, offerParticipantsRef, offerStaffAssignmentsRef, offersRef, orderItemParticipantsRef, orderItemsRef, orderParticipantsRef, orderStaffAssignmentsRef, ordersRef, } from "./transactions-ref.js";
|
|
9
9
|
const travelerParticipantTypes = ["traveler", "occupant"];
|
|
10
10
|
class BookingServiceError extends Error {
|
|
@@ -1550,65 +1550,6 @@ export const bookingsService = {
|
|
|
1550
1550
|
.returning({ id: bookings.id });
|
|
1551
1551
|
return row ?? null;
|
|
1552
1552
|
},
|
|
1553
|
-
async updateBookingStatus(db, id, data, userId, runtime = {}) {
|
|
1554
|
-
const [current] = await db
|
|
1555
|
-
.select({ id: bookings.id, status: bookings.status })
|
|
1556
|
-
.from(bookings)
|
|
1557
|
-
.where(eq(bookings.id, id))
|
|
1558
|
-
.limit(1);
|
|
1559
|
-
if (!current) {
|
|
1560
|
-
return { status: "not_found" };
|
|
1561
|
-
}
|
|
1562
|
-
if (current.status === "on_hold" && data.status === "confirmed") {
|
|
1563
|
-
return bookingsService.confirmBooking(db, id, { note: data.note }, userId, runtime);
|
|
1564
|
-
}
|
|
1565
|
-
if (current.status === "on_hold" && data.status === "expired") {
|
|
1566
|
-
return bookingsService.expireBooking(db, id, { note: data.note }, userId, runtime);
|
|
1567
|
-
}
|
|
1568
|
-
if (data.status === "cancelled") {
|
|
1569
|
-
return bookingsService.cancelBooking(db, id, { note: data.note }, userId, runtime);
|
|
1570
|
-
}
|
|
1571
|
-
// `on_hold` is only reachable through `reserveBooking`, never via direct status PATCH.
|
|
1572
|
-
if (data.status === "on_hold") {
|
|
1573
|
-
return { status: "invalid_transition" };
|
|
1574
|
-
}
|
|
1575
|
-
let patch;
|
|
1576
|
-
try {
|
|
1577
|
-
patch = transitionBooking(current.status, data.status);
|
|
1578
|
-
}
|
|
1579
|
-
catch (error) {
|
|
1580
|
-
if (error instanceof BookingTransitionError) {
|
|
1581
|
-
return { status: "invalid_transition" };
|
|
1582
|
-
}
|
|
1583
|
-
throw error;
|
|
1584
|
-
}
|
|
1585
|
-
const [row] = await db
|
|
1586
|
-
.update(bookings)
|
|
1587
|
-
.set({
|
|
1588
|
-
...patch,
|
|
1589
|
-
updatedAt: new Date(),
|
|
1590
|
-
})
|
|
1591
|
-
.where(eq(bookings.id, id))
|
|
1592
|
-
.returning();
|
|
1593
|
-
await db.insert(bookingActivityLog).values({
|
|
1594
|
-
bookingId: id,
|
|
1595
|
-
actorId: userId ?? "system",
|
|
1596
|
-
activityType: "status_change",
|
|
1597
|
-
description: `Status changed from ${current.status} to ${data.status}`,
|
|
1598
|
-
metadata: { oldStatus: current.status, newStatus: data.status },
|
|
1599
|
-
});
|
|
1600
|
-
if (data.note) {
|
|
1601
|
-
await db.insert(bookingNotes).values({
|
|
1602
|
-
bookingId: id,
|
|
1603
|
-
authorId: userId ?? "system",
|
|
1604
|
-
content: data.note,
|
|
1605
|
-
});
|
|
1606
|
-
}
|
|
1607
|
-
if (data.status === "confirmed") {
|
|
1608
|
-
await autoIssueFulfillmentsForBooking(db, id, userId);
|
|
1609
|
-
}
|
|
1610
|
-
return { status: "ok", booking: row ?? null };
|
|
1611
|
-
},
|
|
1612
1553
|
async confirmBooking(db, id, data, userId, runtime = {}) {
|
|
1613
1554
|
try {
|
|
1614
1555
|
const result = await db.transaction(async (tx) => {
|
|
@@ -1919,6 +1860,198 @@ export const bookingsService = {
|
|
|
1919
1860
|
throw error;
|
|
1920
1861
|
}
|
|
1921
1862
|
},
|
|
1863
|
+
async startBooking(db, id, data, userId, runtime = {}) {
|
|
1864
|
+
try {
|
|
1865
|
+
const result = await db.transaction(async (tx) => {
|
|
1866
|
+
const rows = await tx.execute(sql `SELECT id, booking_number, status
|
|
1867
|
+
FROM ${bookings}
|
|
1868
|
+
WHERE ${bookings.id} = ${id}
|
|
1869
|
+
FOR UPDATE`);
|
|
1870
|
+
const booking = rows[0];
|
|
1871
|
+
if (!booking) {
|
|
1872
|
+
throw new BookingServiceError("not_found");
|
|
1873
|
+
}
|
|
1874
|
+
if (!canTransitionBooking(booking.status, "in_progress")) {
|
|
1875
|
+
throw new BookingServiceError("invalid_transition");
|
|
1876
|
+
}
|
|
1877
|
+
const patch = transitionBooking(booking.status, "in_progress");
|
|
1878
|
+
const [row] = await tx
|
|
1879
|
+
.update(bookings)
|
|
1880
|
+
.set({
|
|
1881
|
+
...patch,
|
|
1882
|
+
updatedAt: new Date(),
|
|
1883
|
+
})
|
|
1884
|
+
.where(eq(bookings.id, id))
|
|
1885
|
+
.returning();
|
|
1886
|
+
await tx.insert(bookingActivityLog).values({
|
|
1887
|
+
bookingId: id,
|
|
1888
|
+
actorId: userId ?? "system",
|
|
1889
|
+
activityType: "booking_started",
|
|
1890
|
+
description: `Booking ${booking.booking_number} started`,
|
|
1891
|
+
});
|
|
1892
|
+
if (data.note) {
|
|
1893
|
+
await tx.insert(bookingNotes).values({
|
|
1894
|
+
bookingId: id,
|
|
1895
|
+
authorId: userId ?? "system",
|
|
1896
|
+
content: data.note,
|
|
1897
|
+
});
|
|
1898
|
+
}
|
|
1899
|
+
return { status: "ok", booking: row ?? null };
|
|
1900
|
+
});
|
|
1901
|
+
if (result.status === "ok" && result.booking) {
|
|
1902
|
+
await runtime.eventBus?.emit("booking.started", {
|
|
1903
|
+
bookingId: result.booking.id,
|
|
1904
|
+
bookingNumber: result.booking.bookingNumber,
|
|
1905
|
+
actorId: userId ?? null,
|
|
1906
|
+
}, { category: "domain", source: "service" });
|
|
1907
|
+
}
|
|
1908
|
+
return result;
|
|
1909
|
+
}
|
|
1910
|
+
catch (error) {
|
|
1911
|
+
if (error instanceof BookingServiceError) {
|
|
1912
|
+
return { status: error.code };
|
|
1913
|
+
}
|
|
1914
|
+
throw error;
|
|
1915
|
+
}
|
|
1916
|
+
},
|
|
1917
|
+
async completeBooking(db, id, data, userId, runtime = {}) {
|
|
1918
|
+
try {
|
|
1919
|
+
const result = await db.transaction(async (tx) => {
|
|
1920
|
+
const rows = await tx.execute(sql `SELECT id, booking_number, status
|
|
1921
|
+
FROM ${bookings}
|
|
1922
|
+
WHERE ${bookings.id} = ${id}
|
|
1923
|
+
FOR UPDATE`);
|
|
1924
|
+
const booking = rows[0];
|
|
1925
|
+
if (!booking) {
|
|
1926
|
+
throw new BookingServiceError("not_found");
|
|
1927
|
+
}
|
|
1928
|
+
if (!canTransitionBooking(booking.status, "completed")) {
|
|
1929
|
+
throw new BookingServiceError("invalid_transition");
|
|
1930
|
+
}
|
|
1931
|
+
const patch = transitionBooking(booking.status, "completed");
|
|
1932
|
+
await tx
|
|
1933
|
+
.update(bookingAllocations)
|
|
1934
|
+
.set({ status: "fulfilled", updatedAt: new Date() })
|
|
1935
|
+
.where(and(eq(bookingAllocations.bookingId, id), eq(bookingAllocations.status, "confirmed")));
|
|
1936
|
+
await tx
|
|
1937
|
+
.update(bookingItems)
|
|
1938
|
+
.set({ status: "fulfilled", updatedAt: new Date() })
|
|
1939
|
+
.where(and(eq(bookingItems.bookingId, id), eq(bookingItems.status, "confirmed")));
|
|
1940
|
+
const [row] = await tx
|
|
1941
|
+
.update(bookings)
|
|
1942
|
+
.set({
|
|
1943
|
+
...patch,
|
|
1944
|
+
updatedAt: new Date(),
|
|
1945
|
+
})
|
|
1946
|
+
.where(eq(bookings.id, id))
|
|
1947
|
+
.returning();
|
|
1948
|
+
await tx.insert(bookingActivityLog).values({
|
|
1949
|
+
bookingId: id,
|
|
1950
|
+
actorId: userId ?? "system",
|
|
1951
|
+
activityType: "booking_completed",
|
|
1952
|
+
description: `Booking ${booking.booking_number} completed`,
|
|
1953
|
+
});
|
|
1954
|
+
if (data.note) {
|
|
1955
|
+
await tx.insert(bookingNotes).values({
|
|
1956
|
+
bookingId: id,
|
|
1957
|
+
authorId: userId ?? "system",
|
|
1958
|
+
content: data.note,
|
|
1959
|
+
});
|
|
1960
|
+
}
|
|
1961
|
+
return { status: "ok", booking: row ?? null };
|
|
1962
|
+
});
|
|
1963
|
+
if (result.status === "ok" && result.booking) {
|
|
1964
|
+
await runtime.eventBus?.emit("booking.completed", {
|
|
1965
|
+
bookingId: result.booking.id,
|
|
1966
|
+
bookingNumber: result.booking.bookingNumber,
|
|
1967
|
+
actorId: userId ?? null,
|
|
1968
|
+
}, { category: "domain", source: "service" });
|
|
1969
|
+
}
|
|
1970
|
+
return result;
|
|
1971
|
+
}
|
|
1972
|
+
catch (error) {
|
|
1973
|
+
if (error instanceof BookingServiceError) {
|
|
1974
|
+
return { status: error.code };
|
|
1975
|
+
}
|
|
1976
|
+
throw error;
|
|
1977
|
+
}
|
|
1978
|
+
},
|
|
1979
|
+
/**
|
|
1980
|
+
* Admin-only force: bypasses the transition graph. Updates the booking row
|
|
1981
|
+
* only — does NOT cascade to items, allocations, or fulfillments. If the
|
|
1982
|
+
* operator needs cascaded behavior (e.g. release allocations), they should
|
|
1983
|
+
* call the verb-specific method instead. The override is for data
|
|
1984
|
+
* correction; misuse leaves child state inconsistent with the parent.
|
|
1985
|
+
*/
|
|
1986
|
+
async overrideBookingStatus(db, id, data, userId, runtime = {}) {
|
|
1987
|
+
try {
|
|
1988
|
+
const result = await db.transaction(async (tx) => {
|
|
1989
|
+
const rows = await tx.execute(sql `SELECT id, booking_number, status
|
|
1990
|
+
FROM ${bookings}
|
|
1991
|
+
WHERE ${bookings.id} = ${id}
|
|
1992
|
+
FOR UPDATE`);
|
|
1993
|
+
const booking = rows[0];
|
|
1994
|
+
if (!booking) {
|
|
1995
|
+
throw new BookingServiceError("not_found");
|
|
1996
|
+
}
|
|
1997
|
+
const now = new Date();
|
|
1998
|
+
const updates = {
|
|
1999
|
+
status: data.status,
|
|
2000
|
+
updatedAt: now,
|
|
2001
|
+
};
|
|
2002
|
+
if (data.status === "confirmed")
|
|
2003
|
+
updates.confirmedAt = now;
|
|
2004
|
+
if (data.status === "expired")
|
|
2005
|
+
updates.expiredAt = now;
|
|
2006
|
+
if (data.status === "cancelled")
|
|
2007
|
+
updates.cancelledAt = now;
|
|
2008
|
+
if (data.status === "completed")
|
|
2009
|
+
updates.completedAt = now;
|
|
2010
|
+
const [row] = await tx.update(bookings).set(updates).where(eq(bookings.id, id)).returning();
|
|
2011
|
+
await tx.insert(bookingActivityLog).values({
|
|
2012
|
+
bookingId: id,
|
|
2013
|
+
actorId: userId ?? "system",
|
|
2014
|
+
activityType: "status_overridden",
|
|
2015
|
+
description: `Booking status overridden from ${booking.status} to ${data.status}`,
|
|
2016
|
+
metadata: {
|
|
2017
|
+
oldStatus: booking.status,
|
|
2018
|
+
newStatus: data.status,
|
|
2019
|
+
reason: data.reason,
|
|
2020
|
+
},
|
|
2021
|
+
});
|
|
2022
|
+
if (data.note) {
|
|
2023
|
+
await tx.insert(bookingNotes).values({
|
|
2024
|
+
bookingId: id,
|
|
2025
|
+
authorId: userId ?? "system",
|
|
2026
|
+
content: data.note,
|
|
2027
|
+
});
|
|
2028
|
+
}
|
|
2029
|
+
return {
|
|
2030
|
+
status: "ok",
|
|
2031
|
+
booking: row ?? null,
|
|
2032
|
+
fromStatus: booking.status,
|
|
2033
|
+
toStatus: data.status,
|
|
2034
|
+
};
|
|
2035
|
+
});
|
|
2036
|
+
if (result.status === "ok" && result.booking) {
|
|
2037
|
+
await runtime.eventBus?.emit("booking.status_overridden", {
|
|
2038
|
+
bookingId: result.booking.id,
|
|
2039
|
+
bookingNumber: result.booking.bookingNumber,
|
|
2040
|
+
fromStatus: result.fromStatus,
|
|
2041
|
+
toStatus: result.toStatus,
|
|
2042
|
+
reason: data.reason,
|
|
2043
|
+
actorId: userId ?? null,
|
|
2044
|
+
}, { category: "domain", source: "service" });
|
|
2045
|
+
}
|
|
2046
|
+
return { status: result.status, booking: result.booking };
|
|
2047
|
+
}
|
|
2048
|
+
catch (error) {
|
|
2049
|
+
if (error instanceof BookingServiceError) {
|
|
2050
|
+
return { status: error.code };
|
|
2051
|
+
}
|
|
2052
|
+
throw error;
|
|
2053
|
+
}
|
|
2054
|
+
},
|
|
1922
2055
|
listTravelerRecords(db, bookingId) {
|
|
1923
2056
|
return db
|
|
1924
2057
|
.select()
|