@voyantjs/finance 0.28.1 → 0.29.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 -1
- package/dist/routes-public.d.ts +14 -14
- package/dist/routes.d.ts +123 -35
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +18 -1
- package/dist/schema.d.ts +6 -6
- package/dist/service-aggregates.js +2 -2
- package/dist/service-bookings-dual-create.d.ts +6 -4
- package/dist/service-bookings-dual-create.d.ts.map +1 -1
- package/dist/service-bookings-quick-create.d.ts +4 -3
- package/dist/service-bookings-quick-create.d.ts.map +1 -1
- package/dist/service-bookings-quick-create.js +8 -0
- package/dist/service-public.d.ts +6 -6
- package/dist/service.d.ts +86 -42
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +321 -2
- package/dist/validation-billing.d.ts +33 -0
- package/dist/validation-billing.d.ts.map +1 -1
- package/dist/validation-billing.js +18 -0
- package/dist/validation-payments.d.ts +106 -16
- package/dist/validation-payments.d.ts.map +1 -1
- package/dist/validation-payments.js +38 -0
- package/dist/validation-public.d.ts +5 -5
- package/dist/validation-shared.d.ts +6 -6
- package/package.json +7 -7
package/dist/routes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AAkF7C,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAuuCtB,CAAA;AAEJ,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAA;AAChD,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA"}
|
package/dist/routes.js
CHANGED
|
@@ -3,7 +3,7 @@ import { Hono } from "hono";
|
|
|
3
3
|
import { FINANCE_ROUTE_RUNTIME_CONTAINER_KEY } from "./route-runtime.js";
|
|
4
4
|
import { financeService } from "./service.js";
|
|
5
5
|
import { VoucherServiceError } from "./service-vouchers.js";
|
|
6
|
-
import { agingReportQuerySchema, applyDefaultBookingPaymentPlanSchema, cancelPaymentSessionSchema, completePaymentSessionSchema, createPaymentSessionFromGuaranteeSchema, createPaymentSessionFromInvoiceSchema, createPaymentSessionFromScheduleSchema, expirePaymentSessionSchema, failPaymentSessionSchema, financeAggregatesQuerySchema, insertBookingGuaranteeSchema, insertBookingItemCommissionSchema, insertBookingItemTaxLineSchema, insertBookingPaymentScheduleSchema, insertCreditNoteLineItemSchema, insertCreditNoteSchema, insertFinanceNoteSchema, insertInvoiceExternalRefSchema, insertInvoiceLineItemSchema, insertInvoiceNumberSeriesSchema, insertInvoiceSchema, insertInvoiceTemplateSchema, insertPaymentAuthorizationSchema, insertPaymentCaptureSchema, insertPaymentInstrumentSchema, insertPaymentSchema, insertPaymentSessionSchema, insertSupplierPaymentSchema, insertTaxClassSchema, insertTaxPolicyProfileSchema, insertTaxPolicyRuleSchema, insertTaxRegimeSchema, insertVoucherSchema, invoiceFromBookingSchema, invoiceListQuerySchema, invoiceNumberSeriesListQuerySchema, invoiceTemplateListQuerySchema, markPaymentSessionRequiresRedirectSchema, paymentAuthorizationListQuerySchema, paymentCaptureListQuerySchema, paymentInstrumentListQuerySchema, paymentSessionListQuerySchema, profitabilityQuerySchema, redeemVoucherSchema, renderInvoiceInputSchema, revenueReportQuerySchema, supplierPaymentListQuerySchema, taxClassListQuerySchema, taxPolicyProfileListQuerySchema, taxPolicyRuleListQuerySchema, taxRegimeListQuerySchema, updateBookingGuaranteeSchema, updateBookingItemCommissionSchema, updateBookingItemTaxLineSchema, updateBookingPaymentScheduleSchema, updateCreditNoteSchema, updateInvoiceLineItemSchema, updateInvoiceNumberSeriesSchema, updateInvoiceSchema, updateInvoiceTemplateSchema, updatePaymentAuthorizationSchema, updatePaymentCaptureSchema, updatePaymentInstrumentSchema, updatePaymentSessionSchema, updateSupplierPaymentSchema, updateTaxClassSchema, updateTaxPolicyProfileSchema, updateTaxPolicyRuleSchema, updateTaxRegimeSchema, updateVoucherSchema, voucherListQuerySchema, } from "./validation.js";
|
|
6
|
+
import { agingReportQuerySchema, applyDefaultBookingPaymentPlanSchema, cancelPaymentSessionSchema, completePaymentSessionSchema, createPaymentSessionFromGuaranteeSchema, createPaymentSessionFromInvoiceSchema, createPaymentSessionFromScheduleSchema, expirePaymentSessionSchema, failPaymentSessionSchema, financeAggregatesQuerySchema, insertBookingGuaranteeSchema, insertBookingItemCommissionSchema, insertBookingItemTaxLineSchema, insertBookingPaymentScheduleSchema, insertCreditNoteLineItemSchema, insertCreditNoteSchema, insertFinanceNoteSchema, insertInvoiceExternalRefSchema, insertInvoiceLineItemSchema, insertInvoiceNumberSeriesSchema, insertInvoiceSchema, insertInvoiceTemplateSchema, insertPaymentAuthorizationSchema, insertPaymentCaptureSchema, insertPaymentInstrumentSchema, insertPaymentSchema, insertPaymentSessionSchema, insertSupplierPaymentSchema, insertTaxClassSchema, insertTaxPolicyProfileSchema, insertTaxPolicyRuleSchema, insertTaxRegimeSchema, insertVoucherSchema, invoiceFromBookingSchema, invoiceListQuerySchema, invoiceNumberSeriesListQuerySchema, invoiceTemplateListQuerySchema, markPaymentSessionRequiresRedirectSchema, paymentAuthorizationListQuerySchema, paymentCaptureListQuerySchema, paymentInstrumentListQuerySchema, paymentListQuerySchema, paymentSessionListQuerySchema, profitabilityQuerySchema, redeemVoucherSchema, renderInvoiceInputSchema, revenueReportQuerySchema, supplierPaymentListQuerySchema, taxClassListQuerySchema, taxPolicyProfileListQuerySchema, taxPolicyRuleListQuerySchema, taxRegimeListQuerySchema, updateBookingGuaranteeSchema, updateBookingItemCommissionSchema, updateBookingItemTaxLineSchema, updateBookingPaymentScheduleSchema, updateCreditNoteSchema, updateInvoiceLineItemSchema, updateInvoiceNumberSeriesSchema, updateInvoiceSchema, updateInvoiceTemplateSchema, updatePaymentAuthorizationSchema, updatePaymentCaptureSchema, updatePaymentInstrumentSchema, updatePaymentSessionSchema, updateSupplierPaymentSchema, updateTaxClassSchema, updateTaxPolicyProfileSchema, updateTaxPolicyRuleSchema, updateTaxRegimeSchema, updateVoucherSchema, voucherListQuerySchema, } from "./validation.js";
|
|
7
7
|
// ==========================================================================
|
|
8
8
|
// Finance Routes — method-chained for Hono RPC type inference
|
|
9
9
|
// ==========================================================================
|
|
@@ -333,6 +333,23 @@ export const financeRoutes = new Hono()
|
|
|
333
333
|
return c.json({ error: "Booking item commission not found" }, 404);
|
|
334
334
|
}
|
|
335
335
|
return c.json({ success: true }, 200);
|
|
336
|
+
})
|
|
337
|
+
// ========================================================================
|
|
338
|
+
// Unified Payments (customer + supplier)
|
|
339
|
+
// ========================================================================
|
|
340
|
+
// GET /payments — List customer + supplier payments
|
|
341
|
+
.get("/payments", async (c) => {
|
|
342
|
+
const query = parseQuery(c, paymentListQuerySchema);
|
|
343
|
+
return c.json(await financeService.listAllPayments(c.get("db"), query));
|
|
344
|
+
})
|
|
345
|
+
// GET /payments/:id — Look up a single payment (customer or supplier)
|
|
346
|
+
// Dispatches by typeid prefix: spay_* → supplier, pay_* → customer.
|
|
347
|
+
.get("/payments/:id", async (c) => {
|
|
348
|
+
const row = await financeService.getPaymentById(c.get("db"), c.req.param("id"));
|
|
349
|
+
if (!row) {
|
|
350
|
+
return c.json({ error: "Payment not found" }, 404);
|
|
351
|
+
}
|
|
352
|
+
return c.json({ data: row });
|
|
336
353
|
})
|
|
337
354
|
// ========================================================================
|
|
338
355
|
// Supplier Payments
|
package/dist/schema.d.ts
CHANGED
|
@@ -1100,7 +1100,7 @@ export declare const paymentSessions: import("drizzle-orm/pg-core").PgTableWithC
|
|
|
1100
1100
|
tableName: "payment_sessions";
|
|
1101
1101
|
dataType: "string";
|
|
1102
1102
|
columnType: "PgEnumColumn";
|
|
1103
|
-
data: "pending" | "failed" | "
|
|
1103
|
+
data: "pending" | "failed" | "cancelled" | "expired" | "paid" | "requires_redirect" | "processing" | "authorized";
|
|
1104
1104
|
driverParam: string;
|
|
1105
1105
|
notNull: true;
|
|
1106
1106
|
hasDefault: true;
|
|
@@ -2006,7 +2006,7 @@ export declare const paymentCaptures: import("drizzle-orm/pg-core").PgTableWithC
|
|
|
2006
2006
|
tableName: "payment_captures";
|
|
2007
2007
|
dataType: "string";
|
|
2008
2008
|
columnType: "PgEnumColumn";
|
|
2009
|
-
data: "pending" | "
|
|
2009
|
+
data: "pending" | "completed" | "failed" | "refunded" | "voided";
|
|
2010
2010
|
driverParam: string;
|
|
2011
2011
|
notNull: true;
|
|
2012
2012
|
hasDefault: true;
|
|
@@ -2253,7 +2253,7 @@ export declare const bookingPaymentSchedules: import("drizzle-orm/pg-core").PgTa
|
|
|
2253
2253
|
tableName: "booking_payment_schedules";
|
|
2254
2254
|
dataType: "string";
|
|
2255
2255
|
columnType: "PgEnumColumn";
|
|
2256
|
-
data: "pending" | "
|
|
2256
|
+
data: "pending" | "cancelled" | "expired" | "paid" | "due" | "waived";
|
|
2257
2257
|
driverParam: string;
|
|
2258
2258
|
notNull: true;
|
|
2259
2259
|
hasDefault: true;
|
|
@@ -2466,7 +2466,7 @@ export declare const bookingGuarantees: import("drizzle-orm/pg-core").PgTableWit
|
|
|
2466
2466
|
tableName: "booking_guarantees";
|
|
2467
2467
|
dataType: "string";
|
|
2468
2468
|
columnType: "PgEnumColumn";
|
|
2469
|
-
data: "pending" | "
|
|
2469
|
+
data: "pending" | "failed" | "cancelled" | "active" | "expired" | "released";
|
|
2470
2470
|
driverParam: string;
|
|
2471
2471
|
notNull: true;
|
|
2472
2472
|
hasDefault: true;
|
|
@@ -4126,7 +4126,7 @@ export declare const payments: import("drizzle-orm/pg-core").PgTableWithColumns<
|
|
|
4126
4126
|
tableName: "payments";
|
|
4127
4127
|
dataType: "string";
|
|
4128
4128
|
columnType: "PgEnumColumn";
|
|
4129
|
-
data: "pending" | "
|
|
4129
|
+
data: "pending" | "completed" | "failed" | "refunded";
|
|
4130
4130
|
driverParam: string;
|
|
4131
4131
|
notNull: true;
|
|
4132
4132
|
hasDefault: true;
|
|
@@ -4799,7 +4799,7 @@ export declare const supplierPayments: import("drizzle-orm/pg-core").PgTableWith
|
|
|
4799
4799
|
tableName: "supplier_payments";
|
|
4800
4800
|
dataType: "string";
|
|
4801
4801
|
columnType: "PgEnumColumn";
|
|
4802
|
-
data: "pending" | "
|
|
4802
|
+
data: "pending" | "completed" | "failed" | "refunded";
|
|
4803
4803
|
driverParam: string;
|
|
4804
4804
|
notNull: true;
|
|
4805
4805
|
hasDefault: true;
|
|
@@ -16,9 +16,9 @@ export async function getFinanceAggregates(db, options = {}) {
|
|
|
16
16
|
const toDate = options.to ? new Date(options.to) : undefined;
|
|
17
17
|
const rangeConditions = [];
|
|
18
18
|
if (fromDate)
|
|
19
|
-
rangeConditions.push(sql `${invoices.createdAt} >= ${fromDate}`);
|
|
19
|
+
rangeConditions.push(sql `${invoices.createdAt} >= ${fromDate.toISOString()}`);
|
|
20
20
|
if (toDate)
|
|
21
|
-
rangeConditions.push(sql `${invoices.createdAt} < ${toDate}`);
|
|
21
|
+
rangeConditions.push(sql `${invoices.createdAt} < ${toDate.toISOString()}`);
|
|
22
22
|
const rangeWhere = rangeConditions.length ? and(...rangeConditions) : undefined;
|
|
23
23
|
const [totalRow] = await db
|
|
24
24
|
.select({ count: sql `count(*)::int` })
|
|
@@ -23,9 +23,9 @@ export declare const dualCreateBookingSchema: z.ZodObject<{
|
|
|
23
23
|
occupant: "occupant";
|
|
24
24
|
}>>;
|
|
25
25
|
travelerCategory: z.ZodNullable<z.ZodOptional<z.ZodEnum<{
|
|
26
|
+
child: "child";
|
|
26
27
|
other: "other";
|
|
27
28
|
adult: "adult";
|
|
28
|
-
child: "child";
|
|
29
29
|
infant: "infant";
|
|
30
30
|
senior: "senior";
|
|
31
31
|
}>>>;
|
|
@@ -36,6 +36,7 @@ export declare const dualCreateBookingSchema: z.ZodObject<{
|
|
|
36
36
|
notes: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
37
37
|
}, z.core.$strip>>>;
|
|
38
38
|
slotId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
39
|
+
sellAmountCentsOverride: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
39
40
|
paymentSchedules: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
40
41
|
scheduleType: z.ZodDefault<z.ZodEnum<{
|
|
41
42
|
other: "other";
|
|
@@ -46,8 +47,8 @@ export declare const dualCreateBookingSchema: z.ZodObject<{
|
|
|
46
47
|
}>>;
|
|
47
48
|
status: z.ZodDefault<z.ZodEnum<{
|
|
48
49
|
pending: "pending";
|
|
49
|
-
expired: "expired";
|
|
50
50
|
cancelled: "cancelled";
|
|
51
|
+
expired: "expired";
|
|
51
52
|
paid: "paid";
|
|
52
53
|
due: "due";
|
|
53
54
|
waived: "waived";
|
|
@@ -81,9 +82,9 @@ export declare const dualCreateBookingSchema: z.ZodObject<{
|
|
|
81
82
|
occupant: "occupant";
|
|
82
83
|
}>>;
|
|
83
84
|
travelerCategory: z.ZodNullable<z.ZodOptional<z.ZodEnum<{
|
|
85
|
+
child: "child";
|
|
84
86
|
other: "other";
|
|
85
87
|
adult: "adult";
|
|
86
|
-
child: "child";
|
|
87
88
|
infant: "infant";
|
|
88
89
|
senior: "senior";
|
|
89
90
|
}>>>;
|
|
@@ -94,6 +95,7 @@ export declare const dualCreateBookingSchema: z.ZodObject<{
|
|
|
94
95
|
notes: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
95
96
|
}, z.core.$strip>>>;
|
|
96
97
|
slotId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
98
|
+
sellAmountCentsOverride: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
97
99
|
paymentSchedules: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
98
100
|
scheduleType: z.ZodDefault<z.ZodEnum<{
|
|
99
101
|
other: "other";
|
|
@@ -104,8 +106,8 @@ export declare const dualCreateBookingSchema: z.ZodObject<{
|
|
|
104
106
|
}>>;
|
|
105
107
|
status: z.ZodDefault<z.ZodEnum<{
|
|
106
108
|
pending: "pending";
|
|
107
|
-
expired: "expired";
|
|
108
109
|
cancelled: "cancelled";
|
|
110
|
+
expired: "expired";
|
|
109
111
|
paid: "paid";
|
|
110
112
|
due: "due";
|
|
111
113
|
waived: "waived";
|
|
@@ -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,yBAAyB,EAC9B,KAAK,wBAAwB,EAG9B,MAAM,oCAAoC,CAAA;AAkB3C,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,yBAAyB,EAC9B,KAAK,wBAAwB,EAG9B,MAAM,oCAAoC,CAAA;AAkB3C,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,wBAAwB,CAAA;IACjC,SAAS,EAAE,wBAAwB,CAAA;IACnC,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,yBAAyB,EAAE;QAAE,MAAM,EAAE,IAAI,CAAA;KAAE,CAAC,CAAA;CAC7D,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"}
|
|
@@ -15,9 +15,9 @@ declare const travelerInputSchema: z.ZodObject<{
|
|
|
15
15
|
occupant: "occupant";
|
|
16
16
|
}>>;
|
|
17
17
|
travelerCategory: z.ZodNullable<z.ZodOptional<z.ZodEnum<{
|
|
18
|
+
child: "child";
|
|
18
19
|
other: "other";
|
|
19
20
|
adult: "adult";
|
|
20
|
-
child: "child";
|
|
21
21
|
infant: "infant";
|
|
22
22
|
senior: "senior";
|
|
23
23
|
}>>>;
|
|
@@ -35,6 +35,7 @@ export declare const quickCreateBookingSchema: z.ZodObject<{
|
|
|
35
35
|
personId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
36
36
|
organizationId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
37
37
|
internalNotes: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
38
|
+
sellAmountCentsOverride: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
38
39
|
travelers: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
39
40
|
firstName: z.ZodString;
|
|
40
41
|
lastName: z.ZodString;
|
|
@@ -47,9 +48,9 @@ export declare const quickCreateBookingSchema: z.ZodObject<{
|
|
|
47
48
|
occupant: "occupant";
|
|
48
49
|
}>>;
|
|
49
50
|
travelerCategory: z.ZodNullable<z.ZodOptional<z.ZodEnum<{
|
|
51
|
+
child: "child";
|
|
50
52
|
other: "other";
|
|
51
53
|
adult: "adult";
|
|
52
|
-
child: "child";
|
|
53
54
|
infant: "infant";
|
|
54
55
|
senior: "senior";
|
|
55
56
|
}>>>;
|
|
@@ -69,8 +70,8 @@ export declare const quickCreateBookingSchema: z.ZodObject<{
|
|
|
69
70
|
}>>;
|
|
70
71
|
status: z.ZodDefault<z.ZodEnum<{
|
|
71
72
|
pending: "pending";
|
|
72
|
-
expired: "expired";
|
|
73
73
|
cancelled: "cancelled";
|
|
74
|
+
expired: "expired";
|
|
74
75
|
paid: "paid";
|
|
75
76
|
due: "due";
|
|
76
77
|
waived: "waived";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-bookings-quick-create.d.ts","sourceRoot":"","sources":["../src/service-bookings-quick-create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE7F,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,EAAE,sBAAsB,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAOrF,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;iBAoBvB,CAAA;AAyCF,eAAO,MAAM,wBAAwB
|
|
1
|
+
{"version":3,"file":"service-bookings-quick-create.d.ts","sourceRoot":"","sources":["../src/service-bookings-quick-create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE7F,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,EAAE,sBAAsB,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAOrF,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;iBAoBvB,CAAA;AAyCF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsBnC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAC9E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAI1E;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,UAAU,EAAE,IAAI,CAAA;CACjB;AAID,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,eAAe,EAAE,CAAA;IAC5B,gBAAgB,EAAE,sBAAsB,EAAE,CAAA;IAC1C,iBAAiB,EAAE;QACjB,OAAO,EAAE,OAAO,CAAA;QAChB,UAAU,EAAE,iBAAiB,CAAA;KAC9B,GAAG,IAAI,CAAA;IACR,eAAe,EAAE;QACf,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,kBAAkB,CAAA;KAC3B,GAAG,IAAI,CAAA;CACT;AAED,MAAM,MAAM,yBAAyB,GACjC;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,wBAAwB,CAAA;CAAE,GAClD;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,GAC/B;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,GAC/B;IAAE,MAAM,EAAE,kBAAkB,CAAA;CAAE,GAC9B;IAAE,MAAM,EAAE,qBAAqB,CAAA;CAAE,GACjC;IAAE,MAAM,EAAE,iBAAiB,CAAA;CAAE,GAC7B;IAAE,MAAM,EAAE,8BAA8B,CAAA;CAAE,GAC1C;IAAE,MAAM,EAAE,iBAAiB,CAAA;CAAE,GAC7B;IAAE,MAAM,EAAE,0BAA0B,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAA;AAiClE,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,kBAAkB,EACtB,QAAQ,EAAE,uBAAuB,EACjC,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,yBAAyB,CAAA;CAC/B,GACL,OAAO,CAAC,yBAAyB,CAAC,CAgNpC"}
|
|
@@ -70,6 +70,13 @@ export const quickCreateBookingSchema = z.object({
|
|
|
70
70
|
personId: z.string().optional().nullable(),
|
|
71
71
|
organizationId: z.string().optional().nullable(),
|
|
72
72
|
internalNotes: z.string().optional().nullable(),
|
|
73
|
+
/**
|
|
74
|
+
* Override the seed `sellAmountCents` on the new booking + line item.
|
|
75
|
+
* Threads through to `convertProductToBooking` so promotion-discounted
|
|
76
|
+
* quotes land at the discounted amount instead of the product's list
|
|
77
|
+
* price. Per docs/architecture/promotions-architecture.md §7.1.
|
|
78
|
+
*/
|
|
79
|
+
sellAmountCentsOverride: z.number().int().min(0).optional().nullable(),
|
|
73
80
|
// Orchestration fields
|
|
74
81
|
travelers: z.array(travelerInputSchema).optional(),
|
|
75
82
|
paymentSchedules: z.array(paymentScheduleInputSchema).optional(),
|
|
@@ -149,6 +156,7 @@ export async function quickCreateBooking(db, rawInput, options = {}) {
|
|
|
149
156
|
personId: input.personId ?? null,
|
|
150
157
|
organizationId: input.organizationId ?? null,
|
|
151
158
|
internalNotes: input.internalNotes ?? null,
|
|
159
|
+
sellAmountCentsOverride: input.sellAmountCentsOverride ?? null,
|
|
152
160
|
});
|
|
153
161
|
if (!booking) {
|
|
154
162
|
// Caller gave us a product that doesn't resolve. Throw so drizzle
|
package/dist/service-public.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export declare const publicFinanceService: {
|
|
|
23
23
|
schedules: {
|
|
24
24
|
id: string;
|
|
25
25
|
scheduleType: "other" | "deposit" | "installment" | "balance" | "hold";
|
|
26
|
-
status: "pending" | "
|
|
26
|
+
status: "pending" | "cancelled" | "expired" | "paid" | "due" | "waived";
|
|
27
27
|
dueDate: string;
|
|
28
28
|
currency: string;
|
|
29
29
|
amountCents: number;
|
|
@@ -33,7 +33,7 @@ export declare const publicFinanceService: {
|
|
|
33
33
|
id: string;
|
|
34
34
|
bookingPaymentScheduleId: string | null;
|
|
35
35
|
guaranteeType: "other" | "voucher" | "bank_transfer" | "credit_card" | "deposit" | "preauth" | "card_on_file" | "agency_letter";
|
|
36
|
-
status: "pending" | "
|
|
36
|
+
status: "pending" | "failed" | "cancelled" | "active" | "expired" | "released";
|
|
37
37
|
currency: string | null;
|
|
38
38
|
amountCents: number | null;
|
|
39
39
|
provider: string | null;
|
|
@@ -55,7 +55,7 @@ export declare const publicFinanceService: {
|
|
|
55
55
|
invoiceId: string | null;
|
|
56
56
|
bookingPaymentScheduleId: string | null;
|
|
57
57
|
bookingGuaranteeId: string | null;
|
|
58
|
-
status: "pending" | "failed" | "
|
|
58
|
+
status: "pending" | "failed" | "cancelled" | "expired" | "paid" | "requires_redirect" | "processing" | "authorized";
|
|
59
59
|
provider: string | null;
|
|
60
60
|
providerSessionId: string | null;
|
|
61
61
|
providerPaymentId: string | null;
|
|
@@ -83,7 +83,7 @@ export declare const publicFinanceService: {
|
|
|
83
83
|
invoiceId: string | null;
|
|
84
84
|
bookingPaymentScheduleId: string | null;
|
|
85
85
|
bookingGuaranteeId: string | null;
|
|
86
|
-
status: "pending" | "failed" | "
|
|
86
|
+
status: "pending" | "failed" | "cancelled" | "expired" | "paid" | "requires_redirect" | "processing" | "authorized";
|
|
87
87
|
provider: string | null;
|
|
88
88
|
providerSessionId: string | null;
|
|
89
89
|
providerPaymentId: string | null;
|
|
@@ -111,7 +111,7 @@ export declare const publicFinanceService: {
|
|
|
111
111
|
invoiceId: string | null;
|
|
112
112
|
bookingPaymentScheduleId: string | null;
|
|
113
113
|
bookingGuaranteeId: string | null;
|
|
114
|
-
status: "pending" | "failed" | "
|
|
114
|
+
status: "pending" | "failed" | "cancelled" | "expired" | "paid" | "requires_redirect" | "processing" | "authorized";
|
|
115
115
|
provider: string | null;
|
|
116
116
|
providerSessionId: string | null;
|
|
117
117
|
providerPaymentId: string | null;
|
|
@@ -139,7 +139,7 @@ export declare const publicFinanceService: {
|
|
|
139
139
|
invoiceId: string | null;
|
|
140
140
|
bookingPaymentScheduleId: string | null;
|
|
141
141
|
bookingGuaranteeId: string | null;
|
|
142
|
-
status: "pending" | "failed" | "
|
|
142
|
+
status: "pending" | "failed" | "cancelled" | "expired" | "paid" | "requires_redirect" | "processing" | "authorized";
|
|
143
143
|
provider: string | null;
|
|
144
144
|
providerSessionId: string | null;
|
|
145
145
|
providerPaymentId: string | null;
|