@voyantjs/finance 0.77.0 → 0.77.4
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.
|
@@ -35,6 +35,7 @@ export declare const bookingCreateSchema: z.ZodObject<{
|
|
|
35
35
|
bookingNumber: z.ZodString;
|
|
36
36
|
personId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
37
37
|
organizationId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
38
|
+
pax: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
38
39
|
internalNotes: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
39
40
|
sellAmountCentsOverride: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
40
41
|
catalogSellAmountCents: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
@@ -157,6 +158,7 @@ export declare const bookingCreateSubSchema: z.ZodObject<{
|
|
|
157
158
|
personId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
158
159
|
productId: z.ZodString;
|
|
159
160
|
optionId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
161
|
+
pax: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
160
162
|
bookingNumber: z.ZodString;
|
|
161
163
|
contactFirstName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
162
164
|
contactLastName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
@@ -332,6 +334,12 @@ export type BookingCreateOutcome = {
|
|
|
332
334
|
status: "booking_already_in_group";
|
|
333
335
|
currentGroupId: string;
|
|
334
336
|
};
|
|
337
|
+
export declare function deriveBookingCreatePax(input: {
|
|
338
|
+
pax?: number | null;
|
|
339
|
+
travelers?: readonly {
|
|
340
|
+
participantType?: string | null;
|
|
341
|
+
}[] | null;
|
|
342
|
+
}): number | null;
|
|
335
343
|
export declare function createBooking(db: PostgresJsDatabase, rawInput: BookingCreateInput, options?: {
|
|
336
344
|
userId?: string;
|
|
337
345
|
runtime?: BookingCreateRuntime;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-booking-create.d.ts","sourceRoot":"","sources":["../src/service-booking-create.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAG7F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EACV,sBAAsB,EACtB,OAAO,EACP,OAAO,EACP,OAAO,EACP,iBAAiB,EAClB,MAAM,aAAa,CAAA;AAGpB,OAAO,EAA2B,KAAK,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAU/F,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;iBAoBvB,CAAA;
|
|
1
|
+
{"version":3,"file":"service-booking-create.d.ts","sourceRoot":"","sources":["../src/service-booking-create.ts"],"names":[],"mappings":"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"}
|
|
@@ -184,6 +184,7 @@ const bookingCreateBaseSchema = z.object({
|
|
|
184
184
|
bookingNumber: z.string().min(1),
|
|
185
185
|
personId: z.string().optional().nullable(),
|
|
186
186
|
organizationId: z.string().optional().nullable(),
|
|
187
|
+
pax: z.number().int().positive().optional().nullable(),
|
|
187
188
|
internalNotes: z.string().optional().nullable(),
|
|
188
189
|
/**
|
|
189
190
|
* Override the seed `sellAmountCents` on the new booking + line item.
|
|
@@ -309,6 +310,13 @@ function generateInvoiceNumber(bookingNumber) {
|
|
|
309
310
|
function todayIsoDate() {
|
|
310
311
|
return new Date().toISOString().slice(0, 10);
|
|
311
312
|
}
|
|
313
|
+
export function deriveBookingCreatePax(input) {
|
|
314
|
+
if (Object.hasOwn(input, "pax")) {
|
|
315
|
+
return input.pax ?? null;
|
|
316
|
+
}
|
|
317
|
+
const pax = input.travelers?.filter((traveler) => [undefined, null, "traveler", "occupant"].includes(traveler.participantType)).length ?? 0;
|
|
318
|
+
return pax > 0 ? pax : null;
|
|
319
|
+
}
|
|
312
320
|
export async function createBooking(db, rawInput, options = {}) {
|
|
313
321
|
const { userId, runtime } = options;
|
|
314
322
|
// Parse through the schema so defaults (makeBookingPrimary, role,
|
|
@@ -319,6 +327,7 @@ export async function createBooking(db, rawInput, options = {}) {
|
|
|
319
327
|
contractDocument: false,
|
|
320
328
|
invoiceDocument: false,
|
|
321
329
|
};
|
|
330
|
+
const pax = deriveBookingCreatePax(input);
|
|
322
331
|
// Validate voucher up-front so we can short-circuit before the tx starts.
|
|
323
332
|
// This is a cheap read — the authoritative balance check still happens
|
|
324
333
|
// inside the redeem savepoint so two concurrent redemptions can't double-
|
|
@@ -354,6 +363,7 @@ export async function createBooking(db, rawInput, options = {}) {
|
|
|
354
363
|
bookingNumber: input.bookingNumber,
|
|
355
364
|
personId: input.personId ?? null,
|
|
356
365
|
organizationId: input.organizationId ?? null,
|
|
366
|
+
pax,
|
|
357
367
|
internalNotes: input.internalNotes ?? null,
|
|
358
368
|
sellAmountCentsOverride: input.sellAmountCentsOverride ?? null,
|
|
359
369
|
catalogSellAmountCents: input.catalogSellAmountCents ?? null,
|
|
@@ -9,6 +9,7 @@ export declare const dualCreateBookingSchema: z.ZodObject<{
|
|
|
9
9
|
personId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
10
10
|
productId: z.ZodString;
|
|
11
11
|
optionId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
12
|
+
pax: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
12
13
|
bookingNumber: z.ZodString;
|
|
13
14
|
contactFirstName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
14
15
|
contactLastName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
@@ -116,6 +117,7 @@ export declare const dualCreateBookingSchema: z.ZodObject<{
|
|
|
116
117
|
personId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
117
118
|
productId: z.ZodString;
|
|
118
119
|
optionId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
120
|
+
pax: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
119
121
|
bookingNumber: z.ZodString;
|
|
120
122
|
contactFirstName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
121
123
|
contactLastName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-bookings-dual-create.d.ts","sourceRoot":"","sources":["../src/service-bookings-dual-create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EAGzB,MAAM,6BAA6B,CAAA;AAkBpC,eAAO,MAAM,uBAAuB
|
|
1
|
+
{"version":3,"file":"service-bookings-dual-create.d.ts","sourceRoot":"","sources":["../src/service-bookings-dual-create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EAGzB,MAAM,6BAA6B,CAAA;AAkBpC,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIlC,CAAA;AAEF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAI5E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,MAAM,CAAA;IACxB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,UAAU,EAAE,IAAI,CAAA;CACjB;AAID,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,mBAAmB,CAAA;IAC5B,SAAS,EAAE,mBAAmB,CAAA;IAC9B,KAAK,EAAE,YAAY,CAAA;IACnB,aAAa,EAAE,kBAAkB,CAAA;IACjC,eAAe,EAAE,kBAAkB,CAAA;CACpC;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,uBAAuB,CAAA;CAAE,GACjD;IACE,MAAM,EAAE,gBAAgB,GAAG,kBAAkB,CAAA;IAC7C,MAAM,EAAE,OAAO,CAAC,oBAAoB,EAAE;QAAE,MAAM,EAAE,IAAI,CAAA;KAAE,CAAC,CAAA;CACxD,CAAA;AAqBL;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,kBAAkB,EACtB,QAAQ,EAAE,sBAAsB,EAChC,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,wBAAwB,CAAA;CAC9B,GACL,OAAO,CAAC,wBAAwB,CAAC,CAkFnC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voyantjs/finance",
|
|
3
|
-
"version": "0.77.
|
|
3
|
+
"version": "0.77.4",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -59,14 +59,14 @@
|
|
|
59
59
|
"drizzle-orm": "^0.45.2",
|
|
60
60
|
"hono": "^4.12.10",
|
|
61
61
|
"zod": "^4.3.6",
|
|
62
|
-
"@voyantjs/action-ledger": "0.77.
|
|
63
|
-
"@voyantjs/bookings": "0.77.
|
|
64
|
-
"@voyantjs/core": "0.77.
|
|
65
|
-
"@voyantjs/db": "0.77.
|
|
66
|
-
"@voyantjs/hono": "0.77.
|
|
67
|
-
"@voyantjs/products": "0.77.
|
|
68
|
-
"@voyantjs/utils": "0.77.
|
|
69
|
-
"@voyantjs/storage": "0.77.
|
|
62
|
+
"@voyantjs/action-ledger": "0.77.4",
|
|
63
|
+
"@voyantjs/bookings": "0.77.4",
|
|
64
|
+
"@voyantjs/core": "0.77.4",
|
|
65
|
+
"@voyantjs/db": "0.77.4",
|
|
66
|
+
"@voyantjs/hono": "0.77.4",
|
|
67
|
+
"@voyantjs/products": "0.77.4",
|
|
68
|
+
"@voyantjs/utils": "0.77.4",
|
|
69
|
+
"@voyantjs/storage": "0.77.4"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
72
|
"typescript": "^6.0.2",
|