@voyant-travel/finance 0.157.0 → 0.159.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.
@@ -34,6 +34,7 @@ export declare const bookingCreateSchema: z.ZodObject<{
34
34
  productId: z.ZodString;
35
35
  optionId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
36
36
  slotId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
37
+ availabilityHoldToken: z.ZodOptional<z.ZodString>;
37
38
  bookingNumber: z.ZodString;
38
39
  personId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
39
40
  organizationId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
@@ -240,6 +241,7 @@ export declare const bookingCreateSubSchema: z.ZodObject<{
240
241
  travelerIndexes: z.ZodNullable<z.ZodOptional<z.ZodArray<z.ZodNumber>>>;
241
242
  }, z.core.$strip>>>;
242
243
  slotId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
244
+ availabilityHoldToken: z.ZodOptional<z.ZodString>;
243
245
  sellAmountCentsOverride: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
244
246
  catalogSellAmountCents: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
245
247
  confirmedSellAmountCents: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
@@ -256,6 +256,8 @@ const bookingCreateBaseSchema = z.object({
256
256
  productId: z.string().min(1),
257
257
  optionId: z.string().optional().nullable(),
258
258
  slotId: z.string().optional().nullable(),
259
+ /** Pre-booking availability hold converted inside the create transaction. */
260
+ availabilityHoldToken: z.string().min(1).optional(),
259
261
  bookingNumber: z.string().min(1),
260
262
  personId: z.string().optional().nullable(),
261
263
  organizationId: z.string().optional().nullable(),
@@ -924,7 +926,7 @@ export async function createBooking(db, rawInput, options = {}) {
924
926
  contactAddressLine2: input.contactAddressLine2 ?? null,
925
927
  contactPostalCode: input.contactPostalCode ?? null,
926
928
  itemLines: normalizedItemLines,
927
- });
929
+ }, userId, { availabilityHoldToken: input.availabilityHoldToken });
928
930
  if (!booking) {
929
931
  // Caller gave us a product that doesn't resolve. Throw so drizzle
930
932
  // rolls back any writes the convert helper may have made.
@@ -76,6 +76,7 @@ export declare const dualCreateBookingSchema: z.ZodObject<{
76
76
  travelerIndexes: z.ZodNullable<z.ZodOptional<z.ZodArray<z.ZodNumber>>>;
77
77
  }, z.core.$strip>>>;
78
78
  slotId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
79
+ availabilityHoldToken: z.ZodOptional<z.ZodString>;
79
80
  sellAmountCentsOverride: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
80
81
  catalogSellAmountCents: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
81
82
  confirmedSellAmountCents: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
@@ -197,6 +198,7 @@ export declare const dualCreateBookingSchema: z.ZodObject<{
197
198
  travelerIndexes: z.ZodNullable<z.ZodOptional<z.ZodArray<z.ZodNumber>>>;
198
199
  }, z.core.$strip>>>;
199
200
  slotId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
201
+ availabilityHoldToken: z.ZodOptional<z.ZodString>;
200
202
  sellAmountCentsOverride: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
201
203
  catalogSellAmountCents: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
202
204
  confirmedSellAmountCents: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
@@ -0,0 +1,47 @@
1
+ /** Static admin contribution metadata used by the Finance deployment manifest. */
2
+ export declare const financeVoyantAdmin: {
3
+ readonly compositionOrder: 40;
4
+ readonly setupSteps: readonly [{
5
+ readonly id: "@voyant-travel/finance#setup.fiscal-settings";
6
+ readonly skippable: true;
7
+ }];
8
+ readonly runtime: {
9
+ readonly entry: "@voyant-travel/finance-react/admin";
10
+ readonly export: "createSelectedFinanceAdminExtension";
11
+ };
12
+ readonly copy: readonly [{
13
+ readonly id: "@voyant-travel/finance#admin.copy";
14
+ readonly namespace: "finance.admin";
15
+ readonly fallbackLocale: "en";
16
+ readonly runtime: {
17
+ readonly entry: "@voyant-travel/finance-react/i18n";
18
+ readonly export: "financeUiMessageDefinitions";
19
+ };
20
+ }];
21
+ readonly routes: {
22
+ id: string;
23
+ path: "/finance" | "/finance/invoices" | "/finance/invoices/$id" | "/finance/invoice-number-series" | "/finance/payments" | "/finance/payments/$id" | "/finance/supplier-invoices" | "/finance/supplier-invoices/$id" | "/finance/profitability";
24
+ requiredScopes: string[];
25
+ runtime: {
26
+ readonly entry: "@voyant-travel/finance-react/admin";
27
+ readonly export: "createFinanceAdminExtension";
28
+ };
29
+ }[];
30
+ readonly nav: readonly [{
31
+ readonly id: "@voyant-travel/finance#admin.nav.finance";
32
+ readonly routeId: "@voyant-travel/finance#admin.route.invoices-index";
33
+ readonly label: {
34
+ readonly namespace: "finance.admin";
35
+ readonly key: "invoicesPage.title";
36
+ };
37
+ }];
38
+ readonly contributions: {
39
+ id: string;
40
+ slotId: "booking.details.payment-controller" | "booking.details.invoices-tab" | "booking.details.finance-start" | "booking.details.finance-end" | "supplier.details.payment-policy";
41
+ requiredScopes: string[];
42
+ runtime: {
43
+ readonly entry: "@voyant-travel/finance-react/admin";
44
+ readonly export: "createFinanceAdminExtension";
45
+ };
46
+ }[];
47
+ };
@@ -0,0 +1,62 @@
1
+ const financeAdminRuntime = {
2
+ entry: "@voyant-travel/finance-react/admin",
3
+ export: "createFinanceAdminExtension",
4
+ };
5
+ /** Static admin contribution metadata used by the Finance deployment manifest. */
6
+ export const financeVoyantAdmin = {
7
+ compositionOrder: 40,
8
+ setupSteps: [{ id: "@voyant-travel/finance#setup.fiscal-settings", skippable: true }],
9
+ runtime: {
10
+ entry: "@voyant-travel/finance-react/admin",
11
+ export: "createSelectedFinanceAdminExtension",
12
+ },
13
+ copy: [
14
+ {
15
+ id: "@voyant-travel/finance#admin.copy",
16
+ namespace: "finance.admin",
17
+ fallbackLocale: "en",
18
+ runtime: {
19
+ entry: "@voyant-travel/finance-react/i18n",
20
+ export: "financeUiMessageDefinitions",
21
+ },
22
+ },
23
+ ],
24
+ routes: [
25
+ ["index", "/finance"],
26
+ ["invoices-index", "/finance/invoices"],
27
+ ["invoices-detail", "/finance/invoices/$id"],
28
+ ["invoice-number-series", "/finance/invoice-number-series"],
29
+ ["payments-index", "/finance/payments"],
30
+ ["payments-detail", "/finance/payments/$id"],
31
+ ["supplier-invoices-index", "/finance/supplier-invoices"],
32
+ ["supplier-invoices-detail", "/finance/supplier-invoices/$id"],
33
+ ["profitability", "/finance/profitability"],
34
+ ].map(([id, path]) => ({
35
+ id: `@voyant-travel/finance#admin.route.${id}`,
36
+ path,
37
+ requiredScopes: ["finance:read"],
38
+ runtime: financeAdminRuntime,
39
+ })),
40
+ nav: [
41
+ {
42
+ id: "@voyant-travel/finance#admin.nav.finance",
43
+ routeId: "@voyant-travel/finance#admin.route.invoices-index",
44
+ label: {
45
+ namespace: "finance.admin",
46
+ key: "invoicesPage.title",
47
+ },
48
+ },
49
+ ],
50
+ contributions: [
51
+ ["booking-payment-controller", "booking.details.payment-controller"],
52
+ ["booking-invoices", "booking.details.invoices-tab"],
53
+ ["booking-pending-payment-sessions", "booking.details.finance-start"],
54
+ ["booking-payment-policy", "booking.details.finance-end"],
55
+ ["supplier-payment-policy", "supplier.details.payment-policy"],
56
+ ].map(([id, slotId]) => ({
57
+ id: `@voyant-travel/finance#admin.contribution.${id}`,
58
+ slotId,
59
+ requiredScopes: ["finance:read"],
60
+ runtime: financeAdminRuntime,
61
+ })),
62
+ };