@voyantjs/finance 0.5.0 → 0.6.2
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 +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -6
- package/dist/route-runtime.d.ts +13 -0
- package/dist/route-runtime.d.ts.map +1 -0
- package/dist/route-runtime.js +8 -0
- package/dist/routes-documents.d.ts +45 -8
- package/dist/routes-documents.d.ts.map +1 -1
- package/dist/routes-documents.js +45 -8
- package/dist/routes-public.d.ts +564 -9
- package/dist/routes-public.d.ts.map +1 -1
- package/dist/routes-public.js +65 -54
- package/dist/routes-settlement.d.ts +3 -2
- package/dist/routes-settlement.d.ts.map +1 -1
- package/dist/routes-settlement.js +9 -8
- package/dist/routes.d.ts +123 -134
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +59 -61
- package/dist/schema.d.ts +9 -9
- package/dist/service-documents.d.ts +0 -1
- package/dist/service-documents.d.ts.map +1 -1
- package/dist/service-documents.js +3 -5
- package/dist/service-public.d.ts +11 -8
- package/dist/service-public.d.ts.map +1 -1
- package/dist/service-public.js +10 -38
- package/dist/service-settlement.d.ts.map +1 -1
- package/dist/service-settlement.js +3 -0
- package/dist/service.d.ts +126 -126
- package/dist/validation-billing.d.ts +6 -6
- package/dist/validation-payments.d.ts +18 -18
- package/dist/validation-public.d.ts +8 -8
- package/dist/validation-shared.d.ts +8 -8
- 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":"
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AAkE7C,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAk+BtB,CAAA;AAEJ,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAA;AAChD,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA"}
|
package/dist/routes.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { parseJsonBody, parseQuery, requireUserId } from "@voyantjs/hono";
|
|
1
2
|
import { Hono } from "hono";
|
|
2
3
|
import { financeService } from "./service.js";
|
|
3
4
|
import { agingReportQuerySchema, applyDefaultBookingPaymentPlanSchema, cancelPaymentSessionSchema, completePaymentSessionSchema, createPaymentSessionFromGuaranteeSchema, createPaymentSessionFromInvoiceSchema, createPaymentSessionFromScheduleSchema, expirePaymentSessionSchema, failPaymentSessionSchema, insertBookingGuaranteeSchema, insertBookingItemCommissionSchema, insertBookingItemTaxLineSchema, insertBookingPaymentScheduleSchema, insertCreditNoteLineItemSchema, insertCreditNoteSchema, insertFinanceNoteSchema, insertInvoiceExternalRefSchema, insertInvoiceLineItemSchema, insertInvoiceNumberSeriesSchema, insertInvoiceSchema, insertInvoiceTemplateSchema, insertPaymentAuthorizationSchema, insertPaymentCaptureSchema, insertPaymentInstrumentSchema, insertPaymentSchema, insertPaymentSessionSchema, insertSupplierPaymentSchema, insertTaxRegimeSchema, invoiceFromBookingSchema, invoiceListQuerySchema, invoiceNumberSeriesListQuerySchema, invoiceTemplateListQuerySchema, markPaymentSessionRequiresRedirectSchema, paymentAuthorizationListQuerySchema, paymentCaptureListQuerySchema, paymentInstrumentListQuerySchema, paymentSessionListQuerySchema, profitabilityQuerySchema, renderInvoiceInputSchema, revenueReportQuerySchema, supplierPaymentListQuerySchema, taxRegimeListQuerySchema, updateBookingGuaranteeSchema, updateBookingItemCommissionSchema, updateBookingItemTaxLineSchema, updateBookingPaymentScheduleSchema, updateCreditNoteSchema, updateInvoiceLineItemSchema, updateInvoiceNumberSeriesSchema, updateInvoiceSchema, updateInvoiceTemplateSchema, updatePaymentAuthorizationSchema, updatePaymentCaptureSchema, updatePaymentInstrumentSchema, updatePaymentSessionSchema, updateSupplierPaymentSchema, updateTaxRegimeSchema, } from "./validation.js";
|
|
@@ -9,12 +10,12 @@ export const financeRoutes = new Hono()
|
|
|
9
10
|
// Payment Sessions
|
|
10
11
|
// ========================================================================
|
|
11
12
|
.get("/payment-sessions", async (c) => {
|
|
12
|
-
const query =
|
|
13
|
+
const query = parseQuery(c, paymentSessionListQuerySchema);
|
|
13
14
|
return c.json(await financeService.listPaymentSessions(c.get("db"), query));
|
|
14
15
|
})
|
|
15
16
|
.post("/payment-sessions", async (c) => {
|
|
16
17
|
return c.json({
|
|
17
|
-
data: await financeService.createPaymentSession(c.get("db"),
|
|
18
|
+
data: await financeService.createPaymentSession(c.get("db"), await parseJsonBody(c, insertPaymentSessionSchema)),
|
|
18
19
|
}, 201);
|
|
19
20
|
})
|
|
20
21
|
.get("/payment-sessions/:id", async (c) => {
|
|
@@ -24,37 +25,37 @@ export const financeRoutes = new Hono()
|
|
|
24
25
|
return c.json({ data: row });
|
|
25
26
|
})
|
|
26
27
|
.patch("/payment-sessions/:id", async (c) => {
|
|
27
|
-
const row = await financeService.updatePaymentSession(c.get("db"), c.req.param("id"),
|
|
28
|
+
const row = await financeService.updatePaymentSession(c.get("db"), c.req.param("id"), await parseJsonBody(c, updatePaymentSessionSchema));
|
|
28
29
|
if (!row)
|
|
29
30
|
return c.json({ error: "Payment session not found" }, 404);
|
|
30
31
|
return c.json({ data: row });
|
|
31
32
|
})
|
|
32
33
|
.post("/payment-sessions/:id/requires-redirect", async (c) => {
|
|
33
|
-
const row = await financeService.markPaymentSessionRequiresRedirect(c.get("db"), c.req.param("id"),
|
|
34
|
+
const row = await financeService.markPaymentSessionRequiresRedirect(c.get("db"), c.req.param("id"), await parseJsonBody(c, markPaymentSessionRequiresRedirectSchema));
|
|
34
35
|
if (!row)
|
|
35
36
|
return c.json({ error: "Payment session not found" }, 404);
|
|
36
37
|
return c.json({ data: row });
|
|
37
38
|
})
|
|
38
39
|
.post("/payment-sessions/:id/complete", async (c) => {
|
|
39
|
-
const row = await financeService.completePaymentSession(c.get("db"), c.req.param("id"),
|
|
40
|
+
const row = await financeService.completePaymentSession(c.get("db"), c.req.param("id"), await parseJsonBody(c, completePaymentSessionSchema));
|
|
40
41
|
if (!row)
|
|
41
42
|
return c.json({ error: "Payment session not found" }, 404);
|
|
42
43
|
return c.json({ data: row });
|
|
43
44
|
})
|
|
44
45
|
.post("/payment-sessions/:id/fail", async (c) => {
|
|
45
|
-
const row = await financeService.failPaymentSession(c.get("db"), c.req.param("id"),
|
|
46
|
+
const row = await financeService.failPaymentSession(c.get("db"), c.req.param("id"), await parseJsonBody(c, failPaymentSessionSchema));
|
|
46
47
|
if (!row)
|
|
47
48
|
return c.json({ error: "Payment session not found" }, 404);
|
|
48
49
|
return c.json({ data: row });
|
|
49
50
|
})
|
|
50
51
|
.post("/payment-sessions/:id/cancel", async (c) => {
|
|
51
|
-
const row = await financeService.cancelPaymentSession(c.get("db"), c.req.param("id"),
|
|
52
|
+
const row = await financeService.cancelPaymentSession(c.get("db"), c.req.param("id"), await parseJsonBody(c, cancelPaymentSessionSchema));
|
|
52
53
|
if (!row)
|
|
53
54
|
return c.json({ error: "Payment session not found" }, 404);
|
|
54
55
|
return c.json({ data: row });
|
|
55
56
|
})
|
|
56
57
|
.post("/payment-sessions/:id/expire", async (c) => {
|
|
57
|
-
const row = await financeService.expirePaymentSession(c.get("db"), c.req.param("id"),
|
|
58
|
+
const row = await financeService.expirePaymentSession(c.get("db"), c.req.param("id"), await parseJsonBody(c, expirePaymentSessionSchema));
|
|
58
59
|
if (!row)
|
|
59
60
|
return c.json({ error: "Payment session not found" }, 404);
|
|
60
61
|
return c.json({ data: row });
|
|
@@ -63,12 +64,12 @@ export const financeRoutes = new Hono()
|
|
|
63
64
|
// Payment Instruments
|
|
64
65
|
// ========================================================================
|
|
65
66
|
.get("/payment-instruments", async (c) => {
|
|
66
|
-
const query =
|
|
67
|
+
const query = parseQuery(c, paymentInstrumentListQuerySchema);
|
|
67
68
|
return c.json(await financeService.listPaymentInstruments(c.get("db"), query));
|
|
68
69
|
})
|
|
69
70
|
.post("/payment-instruments", async (c) => {
|
|
70
71
|
return c.json({
|
|
71
|
-
data: await financeService.createPaymentInstrument(c.get("db"),
|
|
72
|
+
data: await financeService.createPaymentInstrument(c.get("db"), await parseJsonBody(c, insertPaymentInstrumentSchema)),
|
|
72
73
|
}, 201);
|
|
73
74
|
})
|
|
74
75
|
.get("/payment-instruments/:id", async (c) => {
|
|
@@ -78,7 +79,7 @@ export const financeRoutes = new Hono()
|
|
|
78
79
|
return c.json({ data: row });
|
|
79
80
|
})
|
|
80
81
|
.patch("/payment-instruments/:id", async (c) => {
|
|
81
|
-
const row = await financeService.updatePaymentInstrument(c.get("db"), c.req.param("id"),
|
|
82
|
+
const row = await financeService.updatePaymentInstrument(c.get("db"), c.req.param("id"), await parseJsonBody(c, updatePaymentInstrumentSchema));
|
|
82
83
|
if (!row)
|
|
83
84
|
return c.json({ error: "Payment instrument not found" }, 404);
|
|
84
85
|
return c.json({ data: row });
|
|
@@ -93,12 +94,12 @@ export const financeRoutes = new Hono()
|
|
|
93
94
|
// Payment Authorizations
|
|
94
95
|
// ========================================================================
|
|
95
96
|
.get("/payment-authorizations", async (c) => {
|
|
96
|
-
const query =
|
|
97
|
+
const query = parseQuery(c, paymentAuthorizationListQuerySchema);
|
|
97
98
|
return c.json(await financeService.listPaymentAuthorizations(c.get("db"), query));
|
|
98
99
|
})
|
|
99
100
|
.post("/payment-authorizations", async (c) => {
|
|
100
101
|
return c.json({
|
|
101
|
-
data: await financeService.createPaymentAuthorization(c.get("db"),
|
|
102
|
+
data: await financeService.createPaymentAuthorization(c.get("db"), await parseJsonBody(c, insertPaymentAuthorizationSchema)),
|
|
102
103
|
}, 201);
|
|
103
104
|
})
|
|
104
105
|
.get("/payment-authorizations/:id", async (c) => {
|
|
@@ -108,7 +109,7 @@ export const financeRoutes = new Hono()
|
|
|
108
109
|
return c.json({ data: row });
|
|
109
110
|
})
|
|
110
111
|
.patch("/payment-authorizations/:id", async (c) => {
|
|
111
|
-
const row = await financeService.updatePaymentAuthorization(c.get("db"), c.req.param("id"),
|
|
112
|
+
const row = await financeService.updatePaymentAuthorization(c.get("db"), c.req.param("id"), await parseJsonBody(c, updatePaymentAuthorizationSchema));
|
|
112
113
|
if (!row)
|
|
113
114
|
return c.json({ error: "Payment authorization not found" }, 404);
|
|
114
115
|
return c.json({ data: row });
|
|
@@ -123,12 +124,12 @@ export const financeRoutes = new Hono()
|
|
|
123
124
|
// Payment Captures
|
|
124
125
|
// ========================================================================
|
|
125
126
|
.get("/payment-captures", async (c) => {
|
|
126
|
-
const query =
|
|
127
|
+
const query = parseQuery(c, paymentCaptureListQuerySchema);
|
|
127
128
|
return c.json(await financeService.listPaymentCaptures(c.get("db"), query));
|
|
128
129
|
})
|
|
129
130
|
.post("/payment-captures", async (c) => {
|
|
130
131
|
return c.json({
|
|
131
|
-
data: await financeService.createPaymentCapture(c.get("db"),
|
|
132
|
+
data: await financeService.createPaymentCapture(c.get("db"), await parseJsonBody(c, insertPaymentCaptureSchema)),
|
|
132
133
|
}, 201);
|
|
133
134
|
})
|
|
134
135
|
.get("/payment-captures/:id", async (c) => {
|
|
@@ -138,7 +139,7 @@ export const financeRoutes = new Hono()
|
|
|
138
139
|
return c.json({ data: row });
|
|
139
140
|
})
|
|
140
141
|
.patch("/payment-captures/:id", async (c) => {
|
|
141
|
-
const row = await financeService.updatePaymentCapture(c.get("db"), c.req.param("id"),
|
|
142
|
+
const row = await financeService.updatePaymentCapture(c.get("db"), c.req.param("id"), await parseJsonBody(c, updatePaymentCaptureSchema));
|
|
142
143
|
if (!row)
|
|
143
144
|
return c.json({ error: "Payment capture not found" }, 404);
|
|
144
145
|
return c.json({ data: row });
|
|
@@ -154,17 +155,17 @@ export const financeRoutes = new Hono()
|
|
|
154
155
|
// ========================================================================
|
|
155
156
|
// GET /reports/revenue — Revenue by month
|
|
156
157
|
.get("/reports/revenue", async (c) => {
|
|
157
|
-
const query =
|
|
158
|
+
const query = parseQuery(c, revenueReportQuerySchema);
|
|
158
159
|
return c.json({ data: await financeService.getRevenueReport(c.get("db"), query) });
|
|
159
160
|
})
|
|
160
161
|
// GET /reports/aging — Outstanding invoices by age buckets
|
|
161
162
|
.get("/reports/aging", async (c) => {
|
|
162
|
-
const query =
|
|
163
|
+
const query = parseQuery(c, agingReportQuerySchema);
|
|
163
164
|
return c.json({ data: await financeService.getAgingReport(c.get("db"), query) });
|
|
164
165
|
})
|
|
165
166
|
// GET /reports/profitability — Per-booking margin summary
|
|
166
167
|
.get("/reports/profitability", async (c) => {
|
|
167
|
-
const query =
|
|
168
|
+
const query = parseQuery(c, profitabilityQuerySchema);
|
|
168
169
|
return c.json({ data: await financeService.getProfitabilityReport(c.get("db"), query) });
|
|
169
170
|
})
|
|
170
171
|
// ========================================================================
|
|
@@ -176,21 +177,21 @@ export const financeRoutes = new Hono()
|
|
|
176
177
|
});
|
|
177
178
|
})
|
|
178
179
|
.post("/bookings/:bookingId/payment-schedules", async (c) => {
|
|
179
|
-
const row = await financeService.createBookingPaymentSchedule(c.get("db"), c.req.param("bookingId"),
|
|
180
|
+
const row = await financeService.createBookingPaymentSchedule(c.get("db"), c.req.param("bookingId"), await parseJsonBody(c, insertBookingPaymentScheduleSchema));
|
|
180
181
|
if (!row) {
|
|
181
182
|
return c.json({ error: "Booking not found" }, 404);
|
|
182
183
|
}
|
|
183
184
|
return c.json({ data: row }, 201);
|
|
184
185
|
})
|
|
185
186
|
.post("/bookings/:bookingId/payment-schedules/default-plan", async (c) => {
|
|
186
|
-
const rows = await financeService.applyDefaultBookingPaymentPlan(c.get("db"), c.req.param("bookingId"),
|
|
187
|
+
const rows = await financeService.applyDefaultBookingPaymentPlan(c.get("db"), c.req.param("bookingId"), await parseJsonBody(c, applyDefaultBookingPaymentPlanSchema));
|
|
187
188
|
if (!rows) {
|
|
188
189
|
return c.json({ error: "Booking not found" }, 404);
|
|
189
190
|
}
|
|
190
191
|
return c.json({ data: rows }, 201);
|
|
191
192
|
})
|
|
192
193
|
.patch("/bookings/:bookingId/payment-schedules/:scheduleId", async (c) => {
|
|
193
|
-
const row = await financeService.updateBookingPaymentSchedule(c.get("db"), c.req.param("scheduleId"),
|
|
194
|
+
const row = await financeService.updateBookingPaymentSchedule(c.get("db"), c.req.param("scheduleId"), await parseJsonBody(c, updateBookingPaymentScheduleSchema));
|
|
194
195
|
if (!row) {
|
|
195
196
|
return c.json({ error: "Payment schedule not found" }, 404);
|
|
196
197
|
}
|
|
@@ -198,7 +199,7 @@ export const financeRoutes = new Hono()
|
|
|
198
199
|
})
|
|
199
200
|
.post("/bookings/:bookingId/payment-schedules/:scheduleId/payment-session", async (c) => {
|
|
200
201
|
try {
|
|
201
|
-
const row = await financeService.createPaymentSessionFromBookingSchedule(c.get("db"), c.req.param("scheduleId"),
|
|
202
|
+
const row = await financeService.createPaymentSessionFromBookingSchedule(c.get("db"), c.req.param("scheduleId"), await parseJsonBody(c, createPaymentSessionFromScheduleSchema));
|
|
202
203
|
if (!row) {
|
|
203
204
|
return c.json({ error: "Payment schedule not found" }, 404);
|
|
204
205
|
}
|
|
@@ -225,7 +226,7 @@ export const financeRoutes = new Hono()
|
|
|
225
226
|
});
|
|
226
227
|
})
|
|
227
228
|
.post("/bookings/:bookingId/guarantees", async (c) => {
|
|
228
|
-
const row = await financeService.createBookingGuarantee(c.get("db"), c.req.param("bookingId"),
|
|
229
|
+
const row = await financeService.createBookingGuarantee(c.get("db"), c.req.param("bookingId"), await parseJsonBody(c, insertBookingGuaranteeSchema));
|
|
229
230
|
if (!row) {
|
|
230
231
|
return c.json({ error: "Booking not found" }, 404);
|
|
231
232
|
}
|
|
@@ -233,7 +234,7 @@ export const financeRoutes = new Hono()
|
|
|
233
234
|
})
|
|
234
235
|
.post("/bookings/:bookingId/guarantees/:guaranteeId/payment-session", async (c) => {
|
|
235
236
|
try {
|
|
236
|
-
const row = await financeService.createPaymentSessionFromBookingGuarantee(c.get("db"), c.req.param("guaranteeId"),
|
|
237
|
+
const row = await financeService.createPaymentSessionFromBookingGuarantee(c.get("db"), c.req.param("guaranteeId"), await parseJsonBody(c, createPaymentSessionFromGuaranteeSchema));
|
|
237
238
|
if (!row) {
|
|
238
239
|
return c.json({ error: "Booking guarantee not found" }, 404);
|
|
239
240
|
}
|
|
@@ -245,7 +246,7 @@ export const financeRoutes = new Hono()
|
|
|
245
246
|
}
|
|
246
247
|
})
|
|
247
248
|
.patch("/bookings/:bookingId/guarantees/:guaranteeId", async (c) => {
|
|
248
|
-
const row = await financeService.updateBookingGuarantee(c.get("db"), c.req.param("guaranteeId"),
|
|
249
|
+
const row = await financeService.updateBookingGuarantee(c.get("db"), c.req.param("guaranteeId"), await parseJsonBody(c, updateBookingGuaranteeSchema));
|
|
249
250
|
if (!row) {
|
|
250
251
|
return c.json({ error: "Booking guarantee not found" }, 404);
|
|
251
252
|
}
|
|
@@ -267,14 +268,14 @@ export const financeRoutes = new Hono()
|
|
|
267
268
|
});
|
|
268
269
|
})
|
|
269
270
|
.post("/booking-items/:bookingItemId/tax-lines", async (c) => {
|
|
270
|
-
const row = await financeService.createBookingItemTaxLine(c.get("db"), c.req.param("bookingItemId"),
|
|
271
|
+
const row = await financeService.createBookingItemTaxLine(c.get("db"), c.req.param("bookingItemId"), await parseJsonBody(c, insertBookingItemTaxLineSchema));
|
|
271
272
|
if (!row) {
|
|
272
273
|
return c.json({ error: "Booking item not found" }, 404);
|
|
273
274
|
}
|
|
274
275
|
return c.json({ data: row }, 201);
|
|
275
276
|
})
|
|
276
277
|
.patch("/booking-items/:bookingItemId/tax-lines/:taxLineId", async (c) => {
|
|
277
|
-
const row = await financeService.updateBookingItemTaxLine(c.get("db"), c.req.param("taxLineId"),
|
|
278
|
+
const row = await financeService.updateBookingItemTaxLine(c.get("db"), c.req.param("taxLineId"), await parseJsonBody(c, updateBookingItemTaxLineSchema));
|
|
278
279
|
if (!row) {
|
|
279
280
|
return c.json({ error: "Booking item tax line not found" }, 404);
|
|
280
281
|
}
|
|
@@ -296,14 +297,14 @@ export const financeRoutes = new Hono()
|
|
|
296
297
|
});
|
|
297
298
|
})
|
|
298
299
|
.post("/booking-items/:bookingItemId/commissions", async (c) => {
|
|
299
|
-
const row = await financeService.createBookingItemCommission(c.get("db"), c.req.param("bookingItemId"),
|
|
300
|
+
const row = await financeService.createBookingItemCommission(c.get("db"), c.req.param("bookingItemId"), await parseJsonBody(c, insertBookingItemCommissionSchema));
|
|
300
301
|
if (!row) {
|
|
301
302
|
return c.json({ error: "Booking item not found" }, 404);
|
|
302
303
|
}
|
|
303
304
|
return c.json({ data: row }, 201);
|
|
304
305
|
})
|
|
305
306
|
.patch("/booking-items/:bookingItemId/commissions/:commissionId", async (c) => {
|
|
306
|
-
const row = await financeService.updateBookingItemCommission(c.get("db"), c.req.param("commissionId"),
|
|
307
|
+
const row = await financeService.updateBookingItemCommission(c.get("db"), c.req.param("commissionId"), await parseJsonBody(c, updateBookingItemCommissionSchema));
|
|
307
308
|
if (!row) {
|
|
308
309
|
return c.json({ error: "Booking item commission not found" }, 404);
|
|
309
310
|
}
|
|
@@ -321,18 +322,18 @@ export const financeRoutes = new Hono()
|
|
|
321
322
|
// ========================================================================
|
|
322
323
|
// GET /supplier-payments — List supplier payments
|
|
323
324
|
.get("/supplier-payments", async (c) => {
|
|
324
|
-
const query =
|
|
325
|
+
const query = parseQuery(c, supplierPaymentListQuerySchema);
|
|
325
326
|
return c.json(await financeService.listSupplierPayments(c.get("db"), query));
|
|
326
327
|
})
|
|
327
328
|
// POST /supplier-payments — Record supplier payment
|
|
328
329
|
.post("/supplier-payments", async (c) => {
|
|
329
330
|
return c.json({
|
|
330
|
-
data: await financeService.createSupplierPayment(c.get("db"),
|
|
331
|
+
data: await financeService.createSupplierPayment(c.get("db"), await parseJsonBody(c, insertSupplierPaymentSchema)),
|
|
331
332
|
}, 201);
|
|
332
333
|
})
|
|
333
334
|
// PATCH /supplier-payments/:id — Update supplier payment
|
|
334
335
|
.patch("/supplier-payments/:id", async (c) => {
|
|
335
|
-
const row = await financeService.updateSupplierPayment(c.get("db"), c.req.param("id"),
|
|
336
|
+
const row = await financeService.updateSupplierPayment(c.get("db"), c.req.param("id"), await parseJsonBody(c, updateSupplierPaymentSchema));
|
|
336
337
|
if (!row) {
|
|
337
338
|
return c.json({ error: "Supplier payment not found" }, 404);
|
|
338
339
|
}
|
|
@@ -343,18 +344,18 @@ export const financeRoutes = new Hono()
|
|
|
343
344
|
// ========================================================================
|
|
344
345
|
// GET /invoices — List invoices
|
|
345
346
|
.get("/invoices", async (c) => {
|
|
346
|
-
const query =
|
|
347
|
+
const query = parseQuery(c, invoiceListQuerySchema);
|
|
347
348
|
return c.json(await financeService.listInvoices(c.get("db"), query));
|
|
348
349
|
})
|
|
349
350
|
// POST /invoices — Create invoice
|
|
350
351
|
.post("/invoices", async (c) => {
|
|
351
352
|
return c.json({
|
|
352
|
-
data: await financeService.createInvoice(c.get("db"),
|
|
353
|
+
data: await financeService.createInvoice(c.get("db"), await parseJsonBody(c, insertInvoiceSchema)),
|
|
353
354
|
}, 201);
|
|
354
355
|
})
|
|
355
356
|
// POST /invoices/from-booking — Create draft invoice from booking + booking items
|
|
356
357
|
.post("/invoices/from-booking", async (c) => {
|
|
357
|
-
const input =
|
|
358
|
+
const input = await parseJsonBody(c, invoiceFromBookingSchema);
|
|
358
359
|
const db = c.get("db");
|
|
359
360
|
const [{ bookingItems, bookings }, { eq }] = await Promise.all([
|
|
360
361
|
import("@voyantjs/bookings/schema"),
|
|
@@ -401,7 +402,7 @@ export const financeRoutes = new Hono()
|
|
|
401
402
|
})
|
|
402
403
|
// PATCH /invoices/:id — Update invoice
|
|
403
404
|
.patch("/invoices/:id", async (c) => {
|
|
404
|
-
const row = await financeService.updateInvoice(c.get("db"), c.req.param("id"),
|
|
405
|
+
const row = await financeService.updateInvoice(c.get("db"), c.req.param("id"), await parseJsonBody(c, updateInvoiceSchema));
|
|
405
406
|
if (!row) {
|
|
406
407
|
return c.json({ error: "Invoice not found" }, 404);
|
|
407
408
|
}
|
|
@@ -420,7 +421,7 @@ export const financeRoutes = new Hono()
|
|
|
420
421
|
})
|
|
421
422
|
.post("/invoices/:id/payment-session", async (c) => {
|
|
422
423
|
try {
|
|
423
|
-
const row = await financeService.createPaymentSessionFromInvoice(c.get("db"), c.req.param("id"),
|
|
424
|
+
const row = await financeService.createPaymentSessionFromInvoice(c.get("db"), c.req.param("id"), await parseJsonBody(c, createPaymentSessionFromInvoiceSchema));
|
|
424
425
|
if (!row) {
|
|
425
426
|
return c.json({ error: "Invoice not found" }, 404);
|
|
426
427
|
}
|
|
@@ -442,7 +443,7 @@ export const financeRoutes = new Hono()
|
|
|
442
443
|
})
|
|
443
444
|
// POST /invoices/:id/line-items — Add line item
|
|
444
445
|
.post("/invoices/:id/line-items", async (c) => {
|
|
445
|
-
const row = await financeService.createInvoiceLineItem(c.get("db"), c.req.param("id"),
|
|
446
|
+
const row = await financeService.createInvoiceLineItem(c.get("db"), c.req.param("id"), await parseJsonBody(c, insertInvoiceLineItemSchema));
|
|
446
447
|
if (!row) {
|
|
447
448
|
return c.json({ error: "Invoice not found" }, 404);
|
|
448
449
|
}
|
|
@@ -450,7 +451,7 @@ export const financeRoutes = new Hono()
|
|
|
450
451
|
})
|
|
451
452
|
// PATCH /invoices/:id/line-items/:lineId — Update line item
|
|
452
453
|
.patch("/invoices/:id/line-items/:lineId", async (c) => {
|
|
453
|
-
const row = await financeService.updateInvoiceLineItem(c.get("db"), c.req.param("lineId"),
|
|
454
|
+
const row = await financeService.updateInvoiceLineItem(c.get("db"), c.req.param("lineId"), await parseJsonBody(c, updateInvoiceLineItemSchema));
|
|
454
455
|
if (!row) {
|
|
455
456
|
return c.json({ error: "Line item not found" }, 404);
|
|
456
457
|
}
|
|
@@ -473,7 +474,7 @@ export const financeRoutes = new Hono()
|
|
|
473
474
|
})
|
|
474
475
|
// POST /invoices/:id/payments — Record payment (transaction)
|
|
475
476
|
.post("/invoices/:id/payments", async (c) => {
|
|
476
|
-
const row = await financeService.createPayment(c.get("db"), c.req.param("id"),
|
|
477
|
+
const row = await financeService.createPayment(c.get("db"), c.req.param("id"), await parseJsonBody(c, insertPaymentSchema));
|
|
477
478
|
if (!row) {
|
|
478
479
|
return c.json({ error: "Invoice not found" }, 404);
|
|
479
480
|
}
|
|
@@ -490,7 +491,7 @@ export const financeRoutes = new Hono()
|
|
|
490
491
|
})
|
|
491
492
|
// POST /invoices/:id/credit-notes — Create credit note
|
|
492
493
|
.post("/invoices/:id/credit-notes", async (c) => {
|
|
493
|
-
const row = await financeService.createCreditNote(c.get("db"), c.req.param("id"),
|
|
494
|
+
const row = await financeService.createCreditNote(c.get("db"), c.req.param("id"), await parseJsonBody(c, insertCreditNoteSchema));
|
|
494
495
|
if (!row) {
|
|
495
496
|
return c.json({ error: "Invoice not found" }, 404);
|
|
496
497
|
}
|
|
@@ -498,7 +499,7 @@ export const financeRoutes = new Hono()
|
|
|
498
499
|
})
|
|
499
500
|
// PATCH /invoices/:id/credit-notes/:creditNoteId — Update credit note
|
|
500
501
|
.patch("/invoices/:id/credit-notes/:creditNoteId", async (c) => {
|
|
501
|
-
const row = await financeService.updateCreditNote(c.get("db"), c.req.param("creditNoteId"),
|
|
502
|
+
const row = await financeService.updateCreditNote(c.get("db"), c.req.param("creditNoteId"), await parseJsonBody(c, updateCreditNoteSchema));
|
|
502
503
|
if (!row) {
|
|
503
504
|
return c.json({ error: "Credit note not found" }, 404);
|
|
504
505
|
}
|
|
@@ -515,7 +516,7 @@ export const financeRoutes = new Hono()
|
|
|
515
516
|
})
|
|
516
517
|
// POST /invoices/:id/credit-notes/:creditNoteId/line-items — Add credit note line item
|
|
517
518
|
.post("/invoices/:id/credit-notes/:creditNoteId/line-items", async (c) => {
|
|
518
|
-
const row = await financeService.createCreditNoteLineItem(c.get("db"), c.req.param("creditNoteId"),
|
|
519
|
+
const row = await financeService.createCreditNoteLineItem(c.get("db"), c.req.param("creditNoteId"), await parseJsonBody(c, insertCreditNoteLineItemSchema));
|
|
519
520
|
if (!row) {
|
|
520
521
|
return c.json({ error: "Credit note not found" }, 404);
|
|
521
522
|
}
|
|
@@ -530,11 +531,8 @@ export const financeRoutes = new Hono()
|
|
|
530
531
|
})
|
|
531
532
|
// POST /invoices/:id/notes — Add note
|
|
532
533
|
.post("/invoices/:id/notes", async (c) => {
|
|
533
|
-
const userId = c
|
|
534
|
-
|
|
535
|
-
return c.json({ error: "User ID required to create notes" }, 400);
|
|
536
|
-
}
|
|
537
|
-
const row = await financeService.createNote(c.get("db"), c.req.param("id"), userId, insertFinanceNoteSchema.parse(await c.req.json()));
|
|
534
|
+
const userId = requireUserId(c);
|
|
535
|
+
const row = await financeService.createNote(c.get("db"), c.req.param("id"), userId, await parseJsonBody(c, insertFinanceNoteSchema));
|
|
538
536
|
if (!row) {
|
|
539
537
|
return c.json({ error: "Invoice not found" }, 404);
|
|
540
538
|
}
|
|
@@ -544,11 +542,11 @@ export const financeRoutes = new Hono()
|
|
|
544
542
|
// Invoice Number Series
|
|
545
543
|
// ========================================================================
|
|
546
544
|
.get("/invoice-number-series", async (c) => {
|
|
547
|
-
const query =
|
|
545
|
+
const query = parseQuery(c, invoiceNumberSeriesListQuerySchema);
|
|
548
546
|
return c.json(await financeService.listInvoiceNumberSeries(c.get("db"), query));
|
|
549
547
|
})
|
|
550
548
|
.post("/invoice-number-series", async (c) => {
|
|
551
|
-
const row = await financeService.createInvoiceNumberSeries(c.get("db"),
|
|
549
|
+
const row = await financeService.createInvoiceNumberSeries(c.get("db"), await parseJsonBody(c, insertInvoiceNumberSeriesSchema));
|
|
552
550
|
return c.json({ data: row }, 201);
|
|
553
551
|
})
|
|
554
552
|
.get("/invoice-number-series/:id", async (c) => {
|
|
@@ -558,7 +556,7 @@ export const financeRoutes = new Hono()
|
|
|
558
556
|
return c.json({ data: row });
|
|
559
557
|
})
|
|
560
558
|
.patch("/invoice-number-series/:id", async (c) => {
|
|
561
|
-
const row = await financeService.updateInvoiceNumberSeries(c.get("db"), c.req.param("id"),
|
|
559
|
+
const row = await financeService.updateInvoiceNumberSeries(c.get("db"), c.req.param("id"), await parseJsonBody(c, updateInvoiceNumberSeriesSchema));
|
|
562
560
|
if (!row)
|
|
563
561
|
return c.json({ error: "Invoice number series not found" }, 404);
|
|
564
562
|
return c.json({ data: row });
|
|
@@ -585,11 +583,11 @@ export const financeRoutes = new Hono()
|
|
|
585
583
|
// Invoice Templates
|
|
586
584
|
// ========================================================================
|
|
587
585
|
.get("/invoice-templates", async (c) => {
|
|
588
|
-
const query =
|
|
586
|
+
const query = parseQuery(c, invoiceTemplateListQuerySchema);
|
|
589
587
|
return c.json(await financeService.listInvoiceTemplates(c.get("db"), query));
|
|
590
588
|
})
|
|
591
589
|
.post("/invoice-templates", async (c) => {
|
|
592
|
-
const row = await financeService.createInvoiceTemplate(c.get("db"),
|
|
590
|
+
const row = await financeService.createInvoiceTemplate(c.get("db"), await parseJsonBody(c, insertInvoiceTemplateSchema));
|
|
593
591
|
return c.json({ data: row }, 201);
|
|
594
592
|
})
|
|
595
593
|
.get("/invoice-templates/:id", async (c) => {
|
|
@@ -599,7 +597,7 @@ export const financeRoutes = new Hono()
|
|
|
599
597
|
return c.json({ data: row });
|
|
600
598
|
})
|
|
601
599
|
.patch("/invoice-templates/:id", async (c) => {
|
|
602
|
-
const row = await financeService.updateInvoiceTemplate(c.get("db"), c.req.param("id"),
|
|
600
|
+
const row = await financeService.updateInvoiceTemplate(c.get("db"), c.req.param("id"), await parseJsonBody(c, updateInvoiceTemplateSchema));
|
|
603
601
|
if (!row)
|
|
604
602
|
return c.json({ error: "Invoice template not found" }, 404);
|
|
605
603
|
return c.json({ data: row });
|
|
@@ -614,11 +612,11 @@ export const financeRoutes = new Hono()
|
|
|
614
612
|
// Tax Regimes
|
|
615
613
|
// ========================================================================
|
|
616
614
|
.get("/tax-regimes", async (c) => {
|
|
617
|
-
const query =
|
|
615
|
+
const query = parseQuery(c, taxRegimeListQuerySchema);
|
|
618
616
|
return c.json(await financeService.listTaxRegimes(c.get("db"), query));
|
|
619
617
|
})
|
|
620
618
|
.post("/tax-regimes", async (c) => {
|
|
621
|
-
const row = await financeService.createTaxRegime(c.get("db"),
|
|
619
|
+
const row = await financeService.createTaxRegime(c.get("db"), await parseJsonBody(c, insertTaxRegimeSchema));
|
|
622
620
|
return c.json({ data: row }, 201);
|
|
623
621
|
})
|
|
624
622
|
.get("/tax-regimes/:id", async (c) => {
|
|
@@ -628,7 +626,7 @@ export const financeRoutes = new Hono()
|
|
|
628
626
|
return c.json({ data: row });
|
|
629
627
|
})
|
|
630
628
|
.patch("/tax-regimes/:id", async (c) => {
|
|
631
|
-
const row = await financeService.updateTaxRegime(c.get("db"), c.req.param("id"),
|
|
629
|
+
const row = await financeService.updateTaxRegime(c.get("db"), c.req.param("id"), await parseJsonBody(c, updateTaxRegimeSchema));
|
|
632
630
|
if (!row)
|
|
633
631
|
return c.json({ error: "Tax regime not found" }, 404);
|
|
634
632
|
return c.json({ data: row });
|
|
@@ -647,7 +645,7 @@ export const financeRoutes = new Hono()
|
|
|
647
645
|
return c.json({ data: rows });
|
|
648
646
|
})
|
|
649
647
|
.post("/invoices/:id/render", async (c) => {
|
|
650
|
-
const input =
|
|
648
|
+
const input = await parseJsonBody(c, renderInvoiceInputSchema);
|
|
651
649
|
const result = await financeService.renderInvoice(c.get("db"), c.req.param("id"), input);
|
|
652
650
|
if (result.status === "not_found")
|
|
653
651
|
return c.json({ error: "Invoice not found" }, 404);
|
|
@@ -658,7 +656,7 @@ export const financeRoutes = new Hono()
|
|
|
658
656
|
return c.json({ data: rows });
|
|
659
657
|
})
|
|
660
658
|
.post("/invoices/:id/external-refs", async (c) => {
|
|
661
|
-
const row = await financeService.registerInvoiceExternalRef(c.get("db"), c.req.param("id"),
|
|
659
|
+
const row = await financeService.registerInvoiceExternalRef(c.get("db"), c.req.param("id"), await parseJsonBody(c, insertInvoiceExternalRefSchema));
|
|
662
660
|
if (!row)
|
|
663
661
|
return c.json({ error: "Invoice not found" }, 404);
|
|
664
662
|
return c.json({ data: row }, 201);
|
package/dist/schema.d.ts
CHANGED
|
@@ -655,7 +655,7 @@ export declare const paymentSessions: import("drizzle-orm/pg-core").PgTableWithC
|
|
|
655
655
|
tableName: "payment_sessions";
|
|
656
656
|
dataType: "string";
|
|
657
657
|
columnType: "PgEnumColumn";
|
|
658
|
-
data: "
|
|
658
|
+
data: "pending" | "expired" | "cancelled" | "failed" | "paid" | "requires_redirect" | "processing" | "authorized";
|
|
659
659
|
driverParam: string;
|
|
660
660
|
notNull: true;
|
|
661
661
|
hasDefault: true;
|
|
@@ -1280,7 +1280,7 @@ export declare const paymentAuthorizations: import("drizzle-orm/pg-core").PgTabl
|
|
|
1280
1280
|
tableName: "payment_authorizations";
|
|
1281
1281
|
dataType: "string";
|
|
1282
1282
|
columnType: "PgEnumColumn";
|
|
1283
|
-
data: "
|
|
1283
|
+
data: "pending" | "expired" | "failed" | "authorized" | "partially_captured" | "captured" | "voided";
|
|
1284
1284
|
driverParam: string;
|
|
1285
1285
|
notNull: true;
|
|
1286
1286
|
hasDefault: true;
|
|
@@ -1561,7 +1561,7 @@ export declare const paymentCaptures: import("drizzle-orm/pg-core").PgTableWithC
|
|
|
1561
1561
|
tableName: "payment_captures";
|
|
1562
1562
|
dataType: "string";
|
|
1563
1563
|
columnType: "PgEnumColumn";
|
|
1564
|
-
data: "
|
|
1564
|
+
data: "pending" | "completed" | "failed" | "refunded" | "voided";
|
|
1565
1565
|
driverParam: string;
|
|
1566
1566
|
notNull: true;
|
|
1567
1567
|
hasDefault: true;
|
|
@@ -1808,7 +1808,7 @@ export declare const bookingPaymentSchedules: import("drizzle-orm/pg-core").PgTa
|
|
|
1808
1808
|
tableName: "booking_payment_schedules";
|
|
1809
1809
|
dataType: "string";
|
|
1810
1810
|
columnType: "PgEnumColumn";
|
|
1811
|
-
data: "
|
|
1811
|
+
data: "pending" | "expired" | "cancelled" | "paid" | "due" | "waived";
|
|
1812
1812
|
driverParam: string;
|
|
1813
1813
|
notNull: true;
|
|
1814
1814
|
hasDefault: true;
|
|
@@ -2021,7 +2021,7 @@ export declare const bookingGuarantees: import("drizzle-orm/pg-core").PgTableWit
|
|
|
2021
2021
|
tableName: "booking_guarantees";
|
|
2022
2022
|
dataType: "string";
|
|
2023
2023
|
columnType: "PgEnumColumn";
|
|
2024
|
-
data: "
|
|
2024
|
+
data: "pending" | "expired" | "cancelled" | "released" | "failed" | "active";
|
|
2025
2025
|
driverParam: string;
|
|
2026
2026
|
notNull: true;
|
|
2027
2027
|
hasDefault: true;
|
|
@@ -2634,7 +2634,7 @@ export declare const bookingItemCommissions: import("drizzle-orm/pg-core").PgTab
|
|
|
2634
2634
|
tableName: "booking_item_commissions";
|
|
2635
2635
|
dataType: "string";
|
|
2636
2636
|
columnType: "PgEnumColumn";
|
|
2637
|
-
data: "pending" | "
|
|
2637
|
+
data: "pending" | "void" | "paid" | "accrued" | "payable";
|
|
2638
2638
|
driverParam: string;
|
|
2639
2639
|
notNull: true;
|
|
2640
2640
|
hasDefault: true;
|
|
@@ -2932,7 +2932,7 @@ export declare const invoices: import("drizzle-orm/pg-core").PgTableWithColumns<
|
|
|
2932
2932
|
tableName: "invoices";
|
|
2933
2933
|
dataType: "string";
|
|
2934
2934
|
columnType: "PgEnumColumn";
|
|
2935
|
-
data: "draft" | "sent" | "partially_paid" | "paid" | "overdue"
|
|
2935
|
+
data: "void" | "draft" | "sent" | "partially_paid" | "paid" | "overdue";
|
|
2936
2936
|
driverParam: string;
|
|
2937
2937
|
notNull: true;
|
|
2938
2938
|
hasDefault: true;
|
|
@@ -3664,7 +3664,7 @@ export declare const payments: import("drizzle-orm/pg-core").PgTableWithColumns<
|
|
|
3664
3664
|
tableName: "payments";
|
|
3665
3665
|
dataType: "string";
|
|
3666
3666
|
columnType: "PgEnumColumn";
|
|
3667
|
-
data: "
|
|
3667
|
+
data: "pending" | "completed" | "failed" | "refunded";
|
|
3668
3668
|
driverParam: string;
|
|
3669
3669
|
notNull: true;
|
|
3670
3670
|
hasDefault: true;
|
|
@@ -4337,7 +4337,7 @@ export declare const supplierPayments: import("drizzle-orm/pg-core").PgTableWith
|
|
|
4337
4337
|
tableName: "supplier_payments";
|
|
4338
4338
|
dataType: "string";
|
|
4339
4339
|
columnType: "PgEnumColumn";
|
|
4340
|
-
data: "
|
|
4340
|
+
data: "pending" | "completed" | "failed" | "refunded";
|
|
4341
4341
|
driverParam: string;
|
|
4342
4342
|
notNull: true;
|
|
4343
4343
|
hasDefault: true;
|
|
@@ -42,7 +42,6 @@ export interface StorageBackedInvoiceDocumentGeneratorOptions {
|
|
|
42
42
|
storage: StorageProvider;
|
|
43
43
|
keyPrefix?: string | ((context: InvoiceDocumentGeneratorContext) => Promise<string> | string);
|
|
44
44
|
serializer?: StorageBackedInvoiceDocumentSerializer;
|
|
45
|
-
signedUrlExpiresIn?: number;
|
|
46
45
|
}
|
|
47
46
|
export interface GeneratedInvoiceDocumentRecord {
|
|
48
47
|
invoiceId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-documents.d.ts","sourceRoot":"","sources":["../src/service-documents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE9C,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAElF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAEjE,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,gBAAgB,EAChB,KAAK,QAAQ,EACd,MAAM,aAAa,CAAA;AAEpB,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAA;AAEnE,MAAM,WAAW,iCAAiC;IAChD,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAA;IACxC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CAC1C;AAED,MAAM,WAAW,+BAA+B;IAC9C,EAAE,EAAE,kBAAkB,CAAA;IACtB,OAAO,EAAE,OAAO,QAAQ,CAAC,YAAY,CAAA;IACrC,QAAQ,EAAE,OAAO,gBAAgB,CAAC,YAAY,GAAG,IAAI,CAAA;IACrD,SAAS,EAAE,KAAK,CAAC,OAAO,gBAAgB,CAAC,YAAY,CAAC,CAAA;IACtD,QAAQ,EAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAA;IAC7C,YAAY,EAAE,MAAM,CAAA;IACpB,kBAAkB,EAAE,MAAM,GAAG,UAAU,GAAG,cAAc,CAAA;IACxD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,YAAY,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAA;IAC7C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAED,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,EAAE,+BAA+B,KACrC,OAAO,CAAC,iCAAiC,CAAC,CAAA;AAE/C,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,SAAS,EAAE,wBAAwB,CAAA;IACnC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,WAAW,kCAAkC;IACjD,IAAI,EAAE,iBAAiB,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAA;IACxC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IACzC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,MAAM,sCAAsC,GAAG,CACnD,OAAO,EAAE,+BAA+B,KACrC,OAAO,CAAC,kCAAkC,CAAC,GAAG,kCAAkC,CAAA;AAErF,MAAM,WAAW,4CAA4C;IAC3D,OAAO,EAAE,eAAe,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,+BAA+B,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAA;IAC7F,UAAU,CAAC,EAAE,sCAAsC,CAAA;
|
|
1
|
+
{"version":3,"file":"service-documents.d.ts","sourceRoot":"","sources":["../src/service-documents.ts"],"names":[],"mappings":"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"}
|
|
@@ -95,10 +95,6 @@ export function createStorageBackedInvoiceDocumentGenerator(options) {
|
|
|
95
95
|
contentType: defaultInvoiceDocumentMimeType(format),
|
|
96
96
|
metadata: toUploadMetadata(upload.metadata),
|
|
97
97
|
});
|
|
98
|
-
const downloadUrl = uploaded.url ||
|
|
99
|
-
(options.signedUrlExpiresIn
|
|
100
|
-
? await options.storage.signedUrl(uploaded.key, options.signedUrlExpiresIn)
|
|
101
|
-
: "");
|
|
102
98
|
return {
|
|
103
99
|
format,
|
|
104
100
|
storageKey: uploaded.key,
|
|
@@ -108,7 +104,6 @@ export function createStorageBackedInvoiceDocumentGenerator(options) {
|
|
|
108
104
|
...(upload.metadata ?? {}),
|
|
109
105
|
storageProvider: options.storage.name,
|
|
110
106
|
...(uploaded.url ? { url: uploaded.url } : {}),
|
|
111
|
-
...(downloadUrl ? { downloadUrl } : {}),
|
|
112
107
|
},
|
|
113
108
|
};
|
|
114
109
|
};
|
|
@@ -220,6 +215,9 @@ export const financeDocumentsService = {
|
|
|
220
215
|
format: rendition.format,
|
|
221
216
|
renderedBodyFormat: prepared.renderedBodyFormat,
|
|
222
217
|
regenerated: options.regenerated ?? false,
|
|
218
|
+
}, {
|
|
219
|
+
category: "internal",
|
|
220
|
+
source: "service",
|
|
223
221
|
});
|
|
224
222
|
return {
|
|
225
223
|
status: "generated",
|