@voyantjs/checkout 0.2.0 → 0.3.1
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/README.md +4 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/routes.d.ts +64 -21
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +18 -2
- package/dist/service.d.ts +29 -1
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +67 -2
- package/dist/validation.d.ts +365 -0
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +102 -2
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -16,9 +16,12 @@ This package sits above `@voyantjs/finance` and `@voyantjs/notifications`. It do
|
|
|
16
16
|
|
|
17
17
|
- `POST /v1/checkout/bookings/:bookingId/collection-plan`
|
|
18
18
|
- `POST /v1/checkout/bookings/:bookingId/initiate-collection`
|
|
19
|
+
- `GET /v1/admin/checkout/bookings/:bookingId/reminder-runs`
|
|
19
20
|
|
|
20
21
|
## Notes
|
|
21
22
|
|
|
22
23
|
- payment-provider plugins like Netopia remain optional
|
|
23
24
|
- email-provider choice remains app-owned
|
|
24
|
-
- projects can override the default collection policy when mounting
|
|
25
|
+
- projects can override the default collection policy when mounting checkout
|
|
26
|
+
- `createCheckoutHonoModule()` now mounts checkout through Voyant's module
|
|
27
|
+
system while preserving the legacy `/v1/checkout/*` public path
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { createCheckoutRoutes } from "./routes.js";
|
|
2
|
-
export type { CheckoutCollectionPlan, CheckoutPolicyOptions, InitiatedCheckoutCollection, } from "./service.js";
|
|
3
|
-
export { initiateCheckoutCollection, previewCheckoutCollection, resolvePaymentSessionTarget, } from "./service.js";
|
|
4
|
-
export type { InitiateCheckoutCollectionInput, PreviewCheckoutCollectionInput, } from "./validation.js";
|
|
5
|
-
export { checkoutCollectionMethodSchema, checkoutCollectionStageSchema, checkoutInvoiceDocumentTypeSchema, checkoutPaymentSessionTargetSchema, initiateCheckoutCollectionSchema, previewCheckoutCollectionSchema, } from "./validation.js";
|
|
1
|
+
export { checkoutModule, createCheckoutAdminRoutes, createCheckoutHonoModule, createCheckoutRoutes, } from "./routes.js";
|
|
2
|
+
export type { CheckoutCollectionPlan, CheckoutPolicyOptions, CheckoutReminderRunList, CheckoutReminderRunSummary, InitiatedCheckoutCollection, } from "./service.js";
|
|
3
|
+
export { initiateCheckoutCollection, listBookingReminderRuns, previewCheckoutCollection, resolvePaymentSessionTarget, } from "./service.js";
|
|
4
|
+
export type { CheckoutCollectionPlanRecord, CheckoutReminderRunListQuery, CheckoutReminderRunRecord, InitiateCheckoutCollectionInput, InitiatedCheckoutCollectionRecord, PreviewCheckoutCollectionInput, } from "./validation.js";
|
|
5
|
+
export { checkoutCollectionInvoiceSchema, checkoutCollectionMethodSchema, checkoutCollectionPlanSchema, checkoutCollectionScheduleSchema, checkoutCollectionStageSchema, checkoutInvoiceDocumentTypeSchema, checkoutNotificationDeliverySchema, checkoutPaymentSessionTargetSchema, checkoutReminderRunListQuerySchema, checkoutReminderRunListResponseSchema, checkoutReminderRunSchema, initiateCheckoutCollectionSchema, initiatedCheckoutCollectionSchema, previewCheckoutCollectionSchema, } from "./validation.js";
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,aAAa,CAAA;AACpB,YAAY,EACV,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,cAAc,CAAA;AACrB,YAAY,EACV,4BAA4B,EAC5B,4BAA4B,EAC5B,yBAAyB,EACzB,+BAA+B,EAC/B,iCAAiC,EACjC,8BAA8B,GAC/B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,+BAA+B,EAC/B,8BAA8B,EAC9B,4BAA4B,EAC5B,gCAAgC,EAChC,6BAA6B,EAC7B,iCAAiC,EACjC,kCAAkC,EAClC,kCAAkC,EAClC,kCAAkC,EAClC,qCAAqC,EACrC,yBAAyB,EACzB,gCAAgC,EAChC,iCAAiC,EACjC,+BAA+B,GAChC,MAAM,iBAAiB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { createCheckoutRoutes } from "./routes.js";
|
|
2
|
-
export { initiateCheckoutCollection, previewCheckoutCollection, resolvePaymentSessionTarget, } from "./service.js";
|
|
3
|
-
export { checkoutCollectionMethodSchema, checkoutCollectionStageSchema, checkoutInvoiceDocumentTypeSchema, checkoutPaymentSessionTargetSchema, initiateCheckoutCollectionSchema, previewCheckoutCollectionSchema, } from "./validation.js";
|
|
1
|
+
export { checkoutModule, createCheckoutAdminRoutes, createCheckoutHonoModule, createCheckoutRoutes, } from "./routes.js";
|
|
2
|
+
export { initiateCheckoutCollection, listBookingReminderRuns, previewCheckoutCollection, resolvePaymentSessionTarget, } from "./service.js";
|
|
3
|
+
export { checkoutCollectionInvoiceSchema, checkoutCollectionMethodSchema, checkoutCollectionPlanSchema, checkoutCollectionScheduleSchema, checkoutCollectionStageSchema, checkoutInvoiceDocumentTypeSchema, checkoutNotificationDeliverySchema, checkoutPaymentSessionTargetSchema, checkoutReminderRunListQuerySchema, checkoutReminderRunListResponseSchema, checkoutReminderRunSchema, initiateCheckoutCollectionSchema, initiatedCheckoutCollectionSchema, previewCheckoutCollectionSchema, } from "./validation.js";
|
package/dist/routes.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { Module } from "@voyantjs/core";
|
|
2
|
+
import type { HonoModule } from "@voyantjs/hono/module";
|
|
1
3
|
import type { NotificationProvider } from "@voyantjs/notifications";
|
|
2
4
|
import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
|
|
3
5
|
import { type CheckoutPolicyOptions } from "./service.js";
|
|
@@ -41,11 +43,11 @@ export declare function createCheckoutRoutes(options?: {
|
|
|
41
43
|
willCreateDefaultPaymentPlan: boolean;
|
|
42
44
|
selectedSchedule: {
|
|
43
45
|
id: string;
|
|
44
|
-
status: "
|
|
45
|
-
notes: string | null;
|
|
46
|
+
status: "expired" | "cancelled" | "pending" | "paid" | "due" | "waived";
|
|
46
47
|
createdAt: string;
|
|
47
48
|
updatedAt: string;
|
|
48
49
|
bookingId: string;
|
|
50
|
+
notes: string | null;
|
|
49
51
|
bookingItemId: string | null;
|
|
50
52
|
currency: string;
|
|
51
53
|
dueDate: string;
|
|
@@ -55,13 +57,13 @@ export declare function createCheckoutRoutes(options?: {
|
|
|
55
57
|
selectedInvoice: {
|
|
56
58
|
id: string;
|
|
57
59
|
status: "draft" | "sent" | "partially_paid" | "paid" | "overdue" | "void";
|
|
58
|
-
notes: string | null;
|
|
59
|
-
createdAt: string;
|
|
60
|
-
updatedAt: string;
|
|
61
60
|
personId: string | null;
|
|
62
61
|
organizationId: string | null;
|
|
63
62
|
baseCurrency: string | null;
|
|
63
|
+
createdAt: string;
|
|
64
|
+
updatedAt: string;
|
|
64
65
|
bookingId: string;
|
|
66
|
+
notes: string | null;
|
|
65
67
|
invoiceNumber: string;
|
|
66
68
|
invoiceType: "invoice" | "proforma" | "credit_note";
|
|
67
69
|
seriesId: string | null;
|
|
@@ -136,11 +138,11 @@ export declare function createCheckoutRoutes(options?: {
|
|
|
136
138
|
willCreateDefaultPaymentPlan: boolean;
|
|
137
139
|
selectedSchedule: {
|
|
138
140
|
id: string;
|
|
139
|
-
status: "
|
|
140
|
-
notes: string | null;
|
|
141
|
+
status: "expired" | "cancelled" | "pending" | "paid" | "due" | "waived";
|
|
141
142
|
createdAt: string;
|
|
142
143
|
updatedAt: string;
|
|
143
144
|
bookingId: string;
|
|
145
|
+
notes: string | null;
|
|
144
146
|
bookingItemId: string | null;
|
|
145
147
|
currency: string;
|
|
146
148
|
dueDate: string;
|
|
@@ -150,13 +152,13 @@ export declare function createCheckoutRoutes(options?: {
|
|
|
150
152
|
selectedInvoice: {
|
|
151
153
|
id: string;
|
|
152
154
|
status: "draft" | "sent" | "partially_paid" | "paid" | "overdue" | "void";
|
|
153
|
-
notes: string | null;
|
|
154
|
-
createdAt: string;
|
|
155
|
-
updatedAt: string;
|
|
156
155
|
personId: string | null;
|
|
157
156
|
organizationId: string | null;
|
|
158
157
|
baseCurrency: string | null;
|
|
158
|
+
createdAt: string;
|
|
159
|
+
updatedAt: string;
|
|
159
160
|
bookingId: string;
|
|
161
|
+
notes: string | null;
|
|
160
162
|
invoiceNumber: string;
|
|
161
163
|
invoiceType: "invoice" | "proforma" | "credit_note";
|
|
162
164
|
seriesId: string | null;
|
|
@@ -188,13 +190,13 @@ export declare function createCheckoutRoutes(options?: {
|
|
|
188
190
|
invoice: {
|
|
189
191
|
id: string;
|
|
190
192
|
status: "draft" | "sent" | "partially_paid" | "paid" | "overdue" | "void";
|
|
191
|
-
notes: string | null;
|
|
192
|
-
createdAt: string;
|
|
193
|
-
updatedAt: string;
|
|
194
193
|
personId: string | null;
|
|
195
194
|
organizationId: string | null;
|
|
196
195
|
baseCurrency: string | null;
|
|
196
|
+
createdAt: string;
|
|
197
|
+
updatedAt: string;
|
|
197
198
|
bookingId: string;
|
|
199
|
+
notes: string | null;
|
|
198
200
|
invoiceNumber: string;
|
|
199
201
|
invoiceType: "invoice" | "proforma" | "credit_note";
|
|
200
202
|
seriesId: string | null;
|
|
@@ -221,14 +223,14 @@ export declare function createCheckoutRoutes(options?: {
|
|
|
221
223
|
} | null;
|
|
222
224
|
paymentSession: {
|
|
223
225
|
id: string;
|
|
224
|
-
status: "
|
|
225
|
-
notes: string | null;
|
|
226
|
-
createdAt: string;
|
|
227
|
-
updatedAt: string;
|
|
226
|
+
status: "expired" | "cancelled" | "pending" | "failed" | "paid" | "requires_redirect" | "processing" | "authorized";
|
|
228
227
|
expiredAt: string | null;
|
|
229
228
|
cancelledAt: string | null;
|
|
230
229
|
completedAt: string | null;
|
|
230
|
+
createdAt: string;
|
|
231
|
+
updatedAt: string;
|
|
231
232
|
bookingId: string | null;
|
|
233
|
+
notes: string | null;
|
|
232
234
|
metadata: {
|
|
233
235
|
[x: string]: import("hono/utils/types").JSONValue;
|
|
234
236
|
} | null;
|
|
@@ -270,10 +272,10 @@ export declare function createCheckoutRoutes(options?: {
|
|
|
270
272
|
invoiceNotification: {
|
|
271
273
|
id: string;
|
|
272
274
|
status: "cancelled" | "pending" | "failed" | "sent";
|
|
273
|
-
createdAt: string;
|
|
274
|
-
updatedAt: string;
|
|
275
275
|
personId: string | null;
|
|
276
276
|
organizationId: string | null;
|
|
277
|
+
createdAt: string;
|
|
278
|
+
updatedAt: string;
|
|
277
279
|
bookingId: string | null;
|
|
278
280
|
metadata: {
|
|
279
281
|
[x: string]: import("hono/utils/types").JSONValue;
|
|
@@ -303,10 +305,10 @@ export declare function createCheckoutRoutes(options?: {
|
|
|
303
305
|
paymentSessionNotification: {
|
|
304
306
|
id: string;
|
|
305
307
|
status: "cancelled" | "pending" | "failed" | "sent";
|
|
306
|
-
createdAt: string;
|
|
307
|
-
updatedAt: string;
|
|
308
308
|
personId: string | null;
|
|
309
309
|
organizationId: string | null;
|
|
310
|
+
createdAt: string;
|
|
311
|
+
updatedAt: string;
|
|
310
312
|
bookingId: string | null;
|
|
311
313
|
metadata: {
|
|
312
314
|
[x: string]: import("hono/utils/types").JSONValue;
|
|
@@ -351,5 +353,46 @@ export declare function createCheckoutRoutes(options?: {
|
|
|
351
353
|
};
|
|
352
354
|
};
|
|
353
355
|
}, "/", "/v1/checkout/bookings/:bookingId/initiate-collection">;
|
|
356
|
+
export declare function createCheckoutAdminRoutes(): import("hono/hono-base").HonoBase<Env, {
|
|
357
|
+
"/bookings/:bookingId/reminder-runs": {
|
|
358
|
+
$get: {
|
|
359
|
+
input: {
|
|
360
|
+
param: {
|
|
361
|
+
bookingId: string;
|
|
362
|
+
};
|
|
363
|
+
};
|
|
364
|
+
output: {
|
|
365
|
+
data: {
|
|
366
|
+
id: string;
|
|
367
|
+
reminderRuleId: string;
|
|
368
|
+
reminderRuleSlug: string | null;
|
|
369
|
+
reminderRuleName: string | null;
|
|
370
|
+
targetType: "booking_payment_schedule";
|
|
371
|
+
targetId: string;
|
|
372
|
+
bookingId: string | null;
|
|
373
|
+
paymentSessionId: string | null;
|
|
374
|
+
notificationDeliveryId: string | null;
|
|
375
|
+
status: "processing" | "sent" | "skipped" | "failed";
|
|
376
|
+
deliveryStatus: "pending" | "sent" | "failed" | "cancelled" | null;
|
|
377
|
+
channel: "email" | "sms" | null;
|
|
378
|
+
provider: string | null;
|
|
379
|
+
recipient: string | null;
|
|
380
|
+
scheduledFor: string;
|
|
381
|
+
processedAt: string;
|
|
382
|
+
errorMessage: string | null;
|
|
383
|
+
relativeDaysFromDueDate: number | null;
|
|
384
|
+
createdAt: string;
|
|
385
|
+
}[];
|
|
386
|
+
total: number;
|
|
387
|
+
limit: number;
|
|
388
|
+
offset: number;
|
|
389
|
+
};
|
|
390
|
+
outputFormat: "json";
|
|
391
|
+
status: import("hono/utils/http-status").ContentfulStatusCode;
|
|
392
|
+
};
|
|
393
|
+
};
|
|
394
|
+
}, "/", "/bookings/:bookingId/reminder-runs">;
|
|
395
|
+
export declare const checkoutModule: Module;
|
|
396
|
+
export declare function createCheckoutHonoModule(options?: Parameters<typeof createCheckoutRoutes>[0]): HonoModule;
|
|
354
397
|
export {};
|
|
355
398
|
//# sourceMappingURL=routes.d.ts.map
|
package/dist/routes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAGjE,OAAO,EACL,KAAK,qBAAqB,
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAGjE,OAAO,EACL,KAAK,qBAAqB,EAI3B,MAAM,cAAc,CAAA;AAOrB,KAAK,GAAG,GAAG;IACT,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,SAAS,EAAE;QACT,EAAE,EAAE,kBAAkB,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,wBAAgB,oBAAoB,CAClC,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B,SAAS,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAA;IAC/C,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,aAAa,CAAC,oBAAoB,CAAC,CAAA;CACzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gEAkDP;AAED,wBAAgB,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CAQxC;AAED,eAAO,MAAM,cAAc,EAAE,MAE5B,CAAA;AAED,wBAAgB,wBAAwB,CACtC,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,GACnD,UAAU,CAMZ"}
|
package/dist/routes.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createNotificationService } from "@voyantjs/notifications";
|
|
2
2
|
import { Hono } from "hono";
|
|
3
|
-
import { initiateCheckoutCollection, previewCheckoutCollection, } from "./service.js";
|
|
4
|
-
import { initiateCheckoutCollectionSchema, previewCheckoutCollectionSchema } from "./validation.js";
|
|
3
|
+
import { initiateCheckoutCollection, listBookingReminderRuns, previewCheckoutCollection, } from "./service.js";
|
|
4
|
+
import { checkoutReminderRunListQuerySchema, initiateCheckoutCollectionSchema, previewCheckoutCollectionSchema, } from "./validation.js";
|
|
5
5
|
export function createCheckoutRoutes(options = {}) {
|
|
6
6
|
return new Hono()
|
|
7
7
|
.post("/v1/checkout/bookings/:bookingId/collection-plan", async (c) => {
|
|
@@ -35,3 +35,19 @@ export function createCheckoutRoutes(options = {}) {
|
|
|
35
35
|
}
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
|
+
export function createCheckoutAdminRoutes() {
|
|
39
|
+
return new Hono().get("/bookings/:bookingId/reminder-runs", async (c) => {
|
|
40
|
+
const query = checkoutReminderRunListQuerySchema.parse(Object.fromEntries(new URL(c.req.url).searchParams));
|
|
41
|
+
return c.json(await listBookingReminderRuns(c.get("db"), c.req.param("bookingId"), query));
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
export const checkoutModule = {
|
|
45
|
+
name: "checkout",
|
|
46
|
+
};
|
|
47
|
+
export function createCheckoutHonoModule(options) {
|
|
48
|
+
return {
|
|
49
|
+
module: checkoutModule,
|
|
50
|
+
routes: createCheckoutRoutes(options),
|
|
51
|
+
adminRoutes: createCheckoutAdminRoutes(),
|
|
52
|
+
};
|
|
53
|
+
}
|
package/dist/service.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { bookingPaymentSchedules, invoices, type PaymentSession } from "@voyantjs/finance";
|
|
2
2
|
import type { NotificationDelivery, NotificationService } from "@voyantjs/notifications";
|
|
3
3
|
import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
|
|
4
|
-
import type { InitiateCheckoutCollectionInput, PreviewCheckoutCollectionInput } from "./validation.js";
|
|
4
|
+
import type { CheckoutReminderRunListQuery, InitiateCheckoutCollectionInput, PreviewCheckoutCollectionInput } from "./validation.js";
|
|
5
5
|
export interface CheckoutPolicyOptions {
|
|
6
6
|
defaultCardCollectionTarget?: "schedule" | "invoice";
|
|
7
7
|
defaultReminderCardCollectionTarget?: "schedule" | "invoice";
|
|
@@ -36,7 +36,35 @@ export interface InitiatedCheckoutCollection {
|
|
|
36
36
|
invoiceNotification: NotificationDelivery | null;
|
|
37
37
|
paymentSessionNotification: NotificationDelivery | null;
|
|
38
38
|
}
|
|
39
|
+
export interface CheckoutReminderRunSummary {
|
|
40
|
+
id: string;
|
|
41
|
+
reminderRuleId: string;
|
|
42
|
+
reminderRuleSlug: string | null;
|
|
43
|
+
reminderRuleName: string | null;
|
|
44
|
+
targetType: "booking_payment_schedule";
|
|
45
|
+
targetId: string;
|
|
46
|
+
bookingId: string | null;
|
|
47
|
+
paymentSessionId: string | null;
|
|
48
|
+
notificationDeliveryId: string | null;
|
|
49
|
+
status: "processing" | "sent" | "skipped" | "failed";
|
|
50
|
+
deliveryStatus: "pending" | "sent" | "failed" | "cancelled" | null;
|
|
51
|
+
channel: "email" | "sms" | null;
|
|
52
|
+
provider: string | null;
|
|
53
|
+
recipient: string | null;
|
|
54
|
+
scheduledFor: string;
|
|
55
|
+
processedAt: string;
|
|
56
|
+
errorMessage: string | null;
|
|
57
|
+
relativeDaysFromDueDate: number | null;
|
|
58
|
+
createdAt: string;
|
|
59
|
+
}
|
|
60
|
+
export interface CheckoutReminderRunList {
|
|
61
|
+
data: CheckoutReminderRunSummary[];
|
|
62
|
+
total: number;
|
|
63
|
+
limit: number;
|
|
64
|
+
offset: number;
|
|
65
|
+
}
|
|
39
66
|
export declare function resolvePaymentSessionTarget(method: "card" | "bank_transfer", stage: "initial" | "reminder" | "manual", override: "schedule" | "invoice" | undefined, options: CheckoutPolicyOptions): "invoice" | "schedule";
|
|
40
67
|
export declare function previewCheckoutCollection(db: PostgresJsDatabase, bookingId: string, input: PreviewCheckoutCollectionInput, options?: CheckoutPolicyOptions): Promise<CheckoutCollectionPlan | null>;
|
|
41
68
|
export declare function initiateCheckoutCollection(db: PostgresJsDatabase, bookingId: string, input: InitiateCheckoutCollectionInput, options?: CheckoutPolicyOptions, dispatcher?: NotificationService): Promise<InitiatedCheckoutCollection | null>;
|
|
69
|
+
export declare function listBookingReminderRuns(db: PostgresJsDatabase, bookingId: string, query: CheckoutReminderRunListQuery): Promise<CheckoutReminderRunList>;
|
|
42
70
|
//# sourceMappingURL=service.d.ts.map
|
package/dist/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EAIvB,QAAQ,EACR,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/dist/service.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { bookingItems, bookingParticipants, bookings } from "@voyantjs/bookings";
|
|
2
2
|
import { bookingPaymentSchedules, financeService, invoiceLineItems, invoiceNumberSeries, invoices, } from "@voyantjs/finance";
|
|
3
|
-
import { notificationsService } from "@voyantjs/notifications";
|
|
4
|
-
import { and, asc, desc, eq, gt, inArray } from "drizzle-orm";
|
|
3
|
+
import { notificationDeliveries, notificationReminderRules, notificationReminderRuns, notificationsService, } from "@voyantjs/notifications";
|
|
4
|
+
import { and, asc, desc, eq, gt, inArray, sql } from "drizzle-orm";
|
|
5
5
|
const OUTSTANDING_SCHEDULE_STATUSES = ["pending", "due"];
|
|
6
6
|
const OUTSTANDING_INVOICE_STATUSES = [
|
|
7
7
|
"draft",
|
|
@@ -9,6 +9,9 @@ const OUTSTANDING_INVOICE_STATUSES = [
|
|
|
9
9
|
"partially_paid",
|
|
10
10
|
"overdue",
|
|
11
11
|
];
|
|
12
|
+
function normalizeRequiredDateTime(value) {
|
|
13
|
+
return value instanceof Date ? value.toISOString() : value;
|
|
14
|
+
}
|
|
12
15
|
function defaultPaymentPlan(options) {
|
|
13
16
|
return {
|
|
14
17
|
depositMode: options.defaultPaymentPlan?.depositMode ?? "percentage",
|
|
@@ -281,3 +284,65 @@ export async function initiateCheckoutCollection(db, bookingId, input, options =
|
|
|
281
284
|
paymentSessionNotification,
|
|
282
285
|
};
|
|
283
286
|
}
|
|
287
|
+
export async function listBookingReminderRuns(db, bookingId, query) {
|
|
288
|
+
const where = and(eq(notificationReminderRuns.bookingId, bookingId), ...(query.status ? [eq(notificationReminderRuns.status, query.status)] : []));
|
|
289
|
+
const [rows, countResult] = await Promise.all([
|
|
290
|
+
db
|
|
291
|
+
.select({
|
|
292
|
+
id: notificationReminderRuns.id,
|
|
293
|
+
reminderRuleId: notificationReminderRuns.reminderRuleId,
|
|
294
|
+
targetType: notificationReminderRuns.targetType,
|
|
295
|
+
targetId: notificationReminderRuns.targetId,
|
|
296
|
+
bookingId: notificationReminderRuns.bookingId,
|
|
297
|
+
paymentSessionId: notificationReminderRuns.paymentSessionId,
|
|
298
|
+
notificationDeliveryId: notificationReminderRuns.notificationDeliveryId,
|
|
299
|
+
status: notificationReminderRuns.status,
|
|
300
|
+
recipient: notificationReminderRuns.recipient,
|
|
301
|
+
scheduledFor: notificationReminderRuns.scheduledFor,
|
|
302
|
+
processedAt: notificationReminderRuns.processedAt,
|
|
303
|
+
errorMessage: notificationReminderRuns.errorMessage,
|
|
304
|
+
createdAt: notificationReminderRuns.createdAt,
|
|
305
|
+
reminderRuleSlug: notificationReminderRules.slug,
|
|
306
|
+
reminderRuleName: notificationReminderRules.name,
|
|
307
|
+
relativeDaysFromDueDate: notificationReminderRules.relativeDaysFromDueDate,
|
|
308
|
+
channel: notificationReminderRules.channel,
|
|
309
|
+
ruleProvider: notificationReminderRules.provider,
|
|
310
|
+
deliveryStatus: notificationDeliveries.status,
|
|
311
|
+
deliveryProvider: notificationDeliveries.provider,
|
|
312
|
+
})
|
|
313
|
+
.from(notificationReminderRuns)
|
|
314
|
+
.leftJoin(notificationReminderRules, eq(notificationReminderRules.id, notificationReminderRuns.reminderRuleId))
|
|
315
|
+
.leftJoin(notificationDeliveries, eq(notificationDeliveries.id, notificationReminderRuns.notificationDeliveryId))
|
|
316
|
+
.where(where)
|
|
317
|
+
.orderBy(desc(notificationReminderRuns.createdAt))
|
|
318
|
+
.limit(query.limit)
|
|
319
|
+
.offset(query.offset),
|
|
320
|
+
db.select({ count: sql `count(*)::int` }).from(notificationReminderRuns).where(where),
|
|
321
|
+
]);
|
|
322
|
+
return {
|
|
323
|
+
data: rows.map((row) => ({
|
|
324
|
+
id: row.id,
|
|
325
|
+
reminderRuleId: row.reminderRuleId,
|
|
326
|
+
reminderRuleSlug: row.reminderRuleSlug ?? null,
|
|
327
|
+
reminderRuleName: row.reminderRuleName ?? null,
|
|
328
|
+
targetType: row.targetType,
|
|
329
|
+
targetId: row.targetId,
|
|
330
|
+
bookingId: row.bookingId ?? null,
|
|
331
|
+
paymentSessionId: row.paymentSessionId ?? null,
|
|
332
|
+
notificationDeliveryId: row.notificationDeliveryId ?? null,
|
|
333
|
+
status: row.status,
|
|
334
|
+
deliveryStatus: row.deliveryStatus ?? null,
|
|
335
|
+
channel: row.channel ?? null,
|
|
336
|
+
provider: row.deliveryProvider ?? row.ruleProvider ?? null,
|
|
337
|
+
recipient: row.recipient ?? null,
|
|
338
|
+
scheduledFor: normalizeRequiredDateTime(row.scheduledFor),
|
|
339
|
+
processedAt: normalizeRequiredDateTime(row.processedAt),
|
|
340
|
+
errorMessage: row.errorMessage ?? null,
|
|
341
|
+
relativeDaysFromDueDate: row.relativeDaysFromDueDate ?? null,
|
|
342
|
+
createdAt: normalizeRequiredDateTime(row.createdAt),
|
|
343
|
+
})),
|
|
344
|
+
total: countResult[0]?.count ?? 0,
|
|
345
|
+
limit: query.limit,
|
|
346
|
+
offset: query.offset,
|
|
347
|
+
};
|
|
348
|
+
}
|
package/dist/validation.d.ts
CHANGED
|
@@ -188,6 +188,371 @@ export declare const initiateCheckoutCollectionSchema: z.ZodObject<{
|
|
|
188
188
|
}, z.core.$strip>>;
|
|
189
189
|
notes: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
190
190
|
}, z.core.$strip>;
|
|
191
|
+
export declare const checkoutCollectionScheduleSchema: z.ZodObject<{
|
|
192
|
+
id: z.ZodString;
|
|
193
|
+
bookingId: z.ZodString;
|
|
194
|
+
bookingItemId: z.ZodNullable<z.ZodString>;
|
|
195
|
+
scheduleType: z.ZodString;
|
|
196
|
+
status: z.ZodString;
|
|
197
|
+
dueDate: z.ZodString;
|
|
198
|
+
currency: z.ZodString;
|
|
199
|
+
amountCents: z.ZodNumber;
|
|
200
|
+
notes: z.ZodNullable<z.ZodString>;
|
|
201
|
+
}, z.core.$strip>;
|
|
202
|
+
export declare const checkoutCollectionInvoiceSchema: z.ZodObject<{
|
|
203
|
+
id: z.ZodString;
|
|
204
|
+
invoiceNumber: z.ZodString;
|
|
205
|
+
invoiceType: z.ZodString;
|
|
206
|
+
bookingId: z.ZodString;
|
|
207
|
+
personId: z.ZodNullable<z.ZodString>;
|
|
208
|
+
organizationId: z.ZodNullable<z.ZodString>;
|
|
209
|
+
status: z.ZodString;
|
|
210
|
+
currency: z.ZodString;
|
|
211
|
+
totalCents: z.ZodNumber;
|
|
212
|
+
paidCents: z.ZodNumber;
|
|
213
|
+
balanceDueCents: z.ZodNumber;
|
|
214
|
+
issueDate: z.ZodString;
|
|
215
|
+
dueDate: z.ZodString;
|
|
216
|
+
notes: z.ZodNullable<z.ZodString>;
|
|
217
|
+
createdAt: z.ZodString;
|
|
218
|
+
updatedAt: z.ZodString;
|
|
219
|
+
}, z.core.$strip>;
|
|
220
|
+
export declare const checkoutNotificationDeliverySchema: z.ZodObject<{
|
|
221
|
+
id: z.ZodString;
|
|
222
|
+
templateSlug: z.ZodNullable<z.ZodString>;
|
|
223
|
+
channel: z.ZodEnum<{
|
|
224
|
+
email: "email";
|
|
225
|
+
sms: "sms";
|
|
226
|
+
}>;
|
|
227
|
+
provider: z.ZodString;
|
|
228
|
+
status: z.ZodEnum<{
|
|
229
|
+
cancelled: "cancelled";
|
|
230
|
+
pending: "pending";
|
|
231
|
+
failed: "failed";
|
|
232
|
+
sent: "sent";
|
|
233
|
+
}>;
|
|
234
|
+
toAddress: z.ZodString;
|
|
235
|
+
subject: z.ZodNullable<z.ZodString>;
|
|
236
|
+
sentAt: z.ZodNullable<z.ZodString>;
|
|
237
|
+
failedAt: z.ZodNullable<z.ZodString>;
|
|
238
|
+
errorMessage: z.ZodNullable<z.ZodString>;
|
|
239
|
+
}, z.core.$strip>;
|
|
240
|
+
export declare const checkoutCollectionPlanSchema: z.ZodObject<{
|
|
241
|
+
bookingId: z.ZodString;
|
|
242
|
+
method: z.ZodEnum<{
|
|
243
|
+
bank_transfer: "bank_transfer";
|
|
244
|
+
card: "card";
|
|
245
|
+
}>;
|
|
246
|
+
stage: z.ZodEnum<{
|
|
247
|
+
manual: "manual";
|
|
248
|
+
initial: "initial";
|
|
249
|
+
reminder: "reminder";
|
|
250
|
+
}>;
|
|
251
|
+
paymentSessionTarget: z.ZodNullable<z.ZodEnum<{
|
|
252
|
+
invoice: "invoice";
|
|
253
|
+
schedule: "schedule";
|
|
254
|
+
}>>;
|
|
255
|
+
documentType: z.ZodNullable<z.ZodEnum<{
|
|
256
|
+
invoice: "invoice";
|
|
257
|
+
proforma: "proforma";
|
|
258
|
+
}>>;
|
|
259
|
+
willCreateDefaultPaymentPlan: z.ZodBoolean;
|
|
260
|
+
selectedSchedule: z.ZodNullable<z.ZodObject<{
|
|
261
|
+
id: z.ZodString;
|
|
262
|
+
bookingId: z.ZodString;
|
|
263
|
+
bookingItemId: z.ZodNullable<z.ZodString>;
|
|
264
|
+
scheduleType: z.ZodString;
|
|
265
|
+
status: z.ZodString;
|
|
266
|
+
dueDate: z.ZodString;
|
|
267
|
+
currency: z.ZodString;
|
|
268
|
+
amountCents: z.ZodNumber;
|
|
269
|
+
notes: z.ZodNullable<z.ZodString>;
|
|
270
|
+
}, z.core.$strip>>;
|
|
271
|
+
selectedInvoice: z.ZodNullable<z.ZodObject<{
|
|
272
|
+
id: z.ZodString;
|
|
273
|
+
invoiceNumber: z.ZodString;
|
|
274
|
+
invoiceType: z.ZodString;
|
|
275
|
+
bookingId: z.ZodString;
|
|
276
|
+
personId: z.ZodNullable<z.ZodString>;
|
|
277
|
+
organizationId: z.ZodNullable<z.ZodString>;
|
|
278
|
+
status: z.ZodString;
|
|
279
|
+
currency: z.ZodString;
|
|
280
|
+
totalCents: z.ZodNumber;
|
|
281
|
+
paidCents: z.ZodNumber;
|
|
282
|
+
balanceDueCents: z.ZodNumber;
|
|
283
|
+
issueDate: z.ZodString;
|
|
284
|
+
dueDate: z.ZodString;
|
|
285
|
+
notes: z.ZodNullable<z.ZodString>;
|
|
286
|
+
createdAt: z.ZodString;
|
|
287
|
+
updatedAt: z.ZodString;
|
|
288
|
+
}, z.core.$strip>>;
|
|
289
|
+
amountCents: z.ZodNumber;
|
|
290
|
+
currency: z.ZodString;
|
|
291
|
+
recommendedAction: z.ZodEnum<{
|
|
292
|
+
none: "none";
|
|
293
|
+
create_bank_transfer_document: "create_bank_transfer_document";
|
|
294
|
+
create_payment_session: "create_payment_session";
|
|
295
|
+
create_invoice_then_payment_session: "create_invoice_then_payment_session";
|
|
296
|
+
}>;
|
|
297
|
+
}, z.core.$strip>;
|
|
298
|
+
export declare const initiatedCheckoutCollectionSchema: z.ZodObject<{
|
|
299
|
+
plan: z.ZodObject<{
|
|
300
|
+
bookingId: z.ZodString;
|
|
301
|
+
method: z.ZodEnum<{
|
|
302
|
+
bank_transfer: "bank_transfer";
|
|
303
|
+
card: "card";
|
|
304
|
+
}>;
|
|
305
|
+
stage: z.ZodEnum<{
|
|
306
|
+
manual: "manual";
|
|
307
|
+
initial: "initial";
|
|
308
|
+
reminder: "reminder";
|
|
309
|
+
}>;
|
|
310
|
+
paymentSessionTarget: z.ZodNullable<z.ZodEnum<{
|
|
311
|
+
invoice: "invoice";
|
|
312
|
+
schedule: "schedule";
|
|
313
|
+
}>>;
|
|
314
|
+
documentType: z.ZodNullable<z.ZodEnum<{
|
|
315
|
+
invoice: "invoice";
|
|
316
|
+
proforma: "proforma";
|
|
317
|
+
}>>;
|
|
318
|
+
willCreateDefaultPaymentPlan: z.ZodBoolean;
|
|
319
|
+
selectedSchedule: z.ZodNullable<z.ZodObject<{
|
|
320
|
+
id: z.ZodString;
|
|
321
|
+
bookingId: z.ZodString;
|
|
322
|
+
bookingItemId: z.ZodNullable<z.ZodString>;
|
|
323
|
+
scheduleType: z.ZodString;
|
|
324
|
+
status: z.ZodString;
|
|
325
|
+
dueDate: z.ZodString;
|
|
326
|
+
currency: z.ZodString;
|
|
327
|
+
amountCents: z.ZodNumber;
|
|
328
|
+
notes: z.ZodNullable<z.ZodString>;
|
|
329
|
+
}, z.core.$strip>>;
|
|
330
|
+
selectedInvoice: z.ZodNullable<z.ZodObject<{
|
|
331
|
+
id: z.ZodString;
|
|
332
|
+
invoiceNumber: z.ZodString;
|
|
333
|
+
invoiceType: z.ZodString;
|
|
334
|
+
bookingId: z.ZodString;
|
|
335
|
+
personId: z.ZodNullable<z.ZodString>;
|
|
336
|
+
organizationId: z.ZodNullable<z.ZodString>;
|
|
337
|
+
status: z.ZodString;
|
|
338
|
+
currency: z.ZodString;
|
|
339
|
+
totalCents: z.ZodNumber;
|
|
340
|
+
paidCents: z.ZodNumber;
|
|
341
|
+
balanceDueCents: z.ZodNumber;
|
|
342
|
+
issueDate: z.ZodString;
|
|
343
|
+
dueDate: z.ZodString;
|
|
344
|
+
notes: z.ZodNullable<z.ZodString>;
|
|
345
|
+
createdAt: z.ZodString;
|
|
346
|
+
updatedAt: z.ZodString;
|
|
347
|
+
}, z.core.$strip>>;
|
|
348
|
+
amountCents: z.ZodNumber;
|
|
349
|
+
currency: z.ZodString;
|
|
350
|
+
recommendedAction: z.ZodEnum<{
|
|
351
|
+
none: "none";
|
|
352
|
+
create_bank_transfer_document: "create_bank_transfer_document";
|
|
353
|
+
create_payment_session: "create_payment_session";
|
|
354
|
+
create_invoice_then_payment_session: "create_invoice_then_payment_session";
|
|
355
|
+
}>;
|
|
356
|
+
}, z.core.$strip>;
|
|
357
|
+
invoice: z.ZodNullable<z.ZodObject<{
|
|
358
|
+
id: z.ZodString;
|
|
359
|
+
invoiceNumber: z.ZodString;
|
|
360
|
+
invoiceType: z.ZodString;
|
|
361
|
+
bookingId: z.ZodString;
|
|
362
|
+
personId: z.ZodNullable<z.ZodString>;
|
|
363
|
+
organizationId: z.ZodNullable<z.ZodString>;
|
|
364
|
+
status: z.ZodString;
|
|
365
|
+
currency: z.ZodString;
|
|
366
|
+
totalCents: z.ZodNumber;
|
|
367
|
+
paidCents: z.ZodNumber;
|
|
368
|
+
balanceDueCents: z.ZodNumber;
|
|
369
|
+
issueDate: z.ZodString;
|
|
370
|
+
dueDate: z.ZodString;
|
|
371
|
+
notes: z.ZodNullable<z.ZodString>;
|
|
372
|
+
createdAt: z.ZodString;
|
|
373
|
+
updatedAt: z.ZodString;
|
|
374
|
+
}, z.core.$strip>>;
|
|
375
|
+
paymentSession: z.ZodNullable<z.ZodObject<{
|
|
376
|
+
id: z.ZodString;
|
|
377
|
+
targetType: z.ZodEnum<{
|
|
378
|
+
other: "other";
|
|
379
|
+
booking: "booking";
|
|
380
|
+
order: "order";
|
|
381
|
+
invoice: "invoice";
|
|
382
|
+
booking_payment_schedule: "booking_payment_schedule";
|
|
383
|
+
booking_guarantee: "booking_guarantee";
|
|
384
|
+
}>;
|
|
385
|
+
targetId: z.ZodNullable<z.ZodString>;
|
|
386
|
+
bookingId: z.ZodNullable<z.ZodString>;
|
|
387
|
+
invoiceId: z.ZodNullable<z.ZodString>;
|
|
388
|
+
bookingPaymentScheduleId: z.ZodNullable<z.ZodString>;
|
|
389
|
+
bookingGuaranteeId: z.ZodNullable<z.ZodString>;
|
|
390
|
+
status: z.ZodEnum<{
|
|
391
|
+
expired: "expired";
|
|
392
|
+
cancelled: "cancelled";
|
|
393
|
+
pending: "pending";
|
|
394
|
+
failed: "failed";
|
|
395
|
+
paid: "paid";
|
|
396
|
+
requires_redirect: "requires_redirect";
|
|
397
|
+
processing: "processing";
|
|
398
|
+
authorized: "authorized";
|
|
399
|
+
}>;
|
|
400
|
+
provider: z.ZodNullable<z.ZodString>;
|
|
401
|
+
providerSessionId: z.ZodNullable<z.ZodString>;
|
|
402
|
+
providerPaymentId: z.ZodNullable<z.ZodString>;
|
|
403
|
+
externalReference: z.ZodNullable<z.ZodString>;
|
|
404
|
+
clientReference: z.ZodNullable<z.ZodString>;
|
|
405
|
+
currency: z.ZodString;
|
|
406
|
+
amountCents: z.ZodNumber;
|
|
407
|
+
paymentMethod: z.ZodNullable<z.ZodEnum<{
|
|
408
|
+
other: "other";
|
|
409
|
+
voucher: "voucher";
|
|
410
|
+
wallet: "wallet";
|
|
411
|
+
bank_transfer: "bank_transfer";
|
|
412
|
+
credit_card: "credit_card";
|
|
413
|
+
debit_card: "debit_card";
|
|
414
|
+
cash: "cash";
|
|
415
|
+
cheque: "cheque";
|
|
416
|
+
direct_bill: "direct_bill";
|
|
417
|
+
}>>;
|
|
418
|
+
payerEmail: z.ZodNullable<z.ZodString>;
|
|
419
|
+
payerName: z.ZodNullable<z.ZodString>;
|
|
420
|
+
redirectUrl: z.ZodNullable<z.ZodString>;
|
|
421
|
+
returnUrl: z.ZodNullable<z.ZodString>;
|
|
422
|
+
cancelUrl: z.ZodNullable<z.ZodString>;
|
|
423
|
+
expiresAt: z.ZodNullable<z.ZodString>;
|
|
424
|
+
completedAt: z.ZodNullable<z.ZodString>;
|
|
425
|
+
failureCode: z.ZodNullable<z.ZodString>;
|
|
426
|
+
failureMessage: z.ZodNullable<z.ZodString>;
|
|
427
|
+
}, z.core.$strip>>;
|
|
428
|
+
invoiceNotification: z.ZodNullable<z.ZodObject<{
|
|
429
|
+
id: z.ZodString;
|
|
430
|
+
templateSlug: z.ZodNullable<z.ZodString>;
|
|
431
|
+
channel: z.ZodEnum<{
|
|
432
|
+
email: "email";
|
|
433
|
+
sms: "sms";
|
|
434
|
+
}>;
|
|
435
|
+
provider: z.ZodString;
|
|
436
|
+
status: z.ZodEnum<{
|
|
437
|
+
cancelled: "cancelled";
|
|
438
|
+
pending: "pending";
|
|
439
|
+
failed: "failed";
|
|
440
|
+
sent: "sent";
|
|
441
|
+
}>;
|
|
442
|
+
toAddress: z.ZodString;
|
|
443
|
+
subject: z.ZodNullable<z.ZodString>;
|
|
444
|
+
sentAt: z.ZodNullable<z.ZodString>;
|
|
445
|
+
failedAt: z.ZodNullable<z.ZodString>;
|
|
446
|
+
errorMessage: z.ZodNullable<z.ZodString>;
|
|
447
|
+
}, z.core.$strip>>;
|
|
448
|
+
paymentSessionNotification: z.ZodNullable<z.ZodObject<{
|
|
449
|
+
id: z.ZodString;
|
|
450
|
+
templateSlug: z.ZodNullable<z.ZodString>;
|
|
451
|
+
channel: z.ZodEnum<{
|
|
452
|
+
email: "email";
|
|
453
|
+
sms: "sms";
|
|
454
|
+
}>;
|
|
455
|
+
provider: z.ZodString;
|
|
456
|
+
status: z.ZodEnum<{
|
|
457
|
+
cancelled: "cancelled";
|
|
458
|
+
pending: "pending";
|
|
459
|
+
failed: "failed";
|
|
460
|
+
sent: "sent";
|
|
461
|
+
}>;
|
|
462
|
+
toAddress: z.ZodString;
|
|
463
|
+
subject: z.ZodNullable<z.ZodString>;
|
|
464
|
+
sentAt: z.ZodNullable<z.ZodString>;
|
|
465
|
+
failedAt: z.ZodNullable<z.ZodString>;
|
|
466
|
+
errorMessage: z.ZodNullable<z.ZodString>;
|
|
467
|
+
}, z.core.$strip>>;
|
|
468
|
+
}, z.core.$strip>;
|
|
469
|
+
export declare const checkoutReminderRunListQuerySchema: z.ZodObject<{
|
|
470
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
471
|
+
offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
472
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
473
|
+
failed: "failed";
|
|
474
|
+
sent: "sent";
|
|
475
|
+
processing: "processing";
|
|
476
|
+
skipped: "skipped";
|
|
477
|
+
}>>;
|
|
478
|
+
}, z.core.$strip>;
|
|
479
|
+
export declare const checkoutReminderRunSchema: z.ZodObject<{
|
|
480
|
+
id: z.ZodString;
|
|
481
|
+
reminderRuleId: z.ZodString;
|
|
482
|
+
reminderRuleSlug: z.ZodNullable<z.ZodString>;
|
|
483
|
+
reminderRuleName: z.ZodNullable<z.ZodString>;
|
|
484
|
+
targetType: z.ZodLiteral<"booking_payment_schedule">;
|
|
485
|
+
targetId: z.ZodString;
|
|
486
|
+
bookingId: z.ZodNullable<z.ZodString>;
|
|
487
|
+
paymentSessionId: z.ZodNullable<z.ZodString>;
|
|
488
|
+
notificationDeliveryId: z.ZodNullable<z.ZodString>;
|
|
489
|
+
status: z.ZodEnum<{
|
|
490
|
+
failed: "failed";
|
|
491
|
+
sent: "sent";
|
|
492
|
+
processing: "processing";
|
|
493
|
+
skipped: "skipped";
|
|
494
|
+
}>;
|
|
495
|
+
deliveryStatus: z.ZodNullable<z.ZodEnum<{
|
|
496
|
+
cancelled: "cancelled";
|
|
497
|
+
pending: "pending";
|
|
498
|
+
failed: "failed";
|
|
499
|
+
sent: "sent";
|
|
500
|
+
}>>;
|
|
501
|
+
channel: z.ZodNullable<z.ZodEnum<{
|
|
502
|
+
email: "email";
|
|
503
|
+
sms: "sms";
|
|
504
|
+
}>>;
|
|
505
|
+
provider: z.ZodNullable<z.ZodString>;
|
|
506
|
+
recipient: z.ZodNullable<z.ZodString>;
|
|
507
|
+
scheduledFor: z.ZodString;
|
|
508
|
+
processedAt: z.ZodString;
|
|
509
|
+
errorMessage: z.ZodNullable<z.ZodString>;
|
|
510
|
+
relativeDaysFromDueDate: z.ZodNullable<z.ZodNumber>;
|
|
511
|
+
createdAt: z.ZodString;
|
|
512
|
+
}, z.core.$strip>;
|
|
513
|
+
export declare const checkoutReminderRunListResponseSchema: z.ZodObject<{
|
|
514
|
+
data: z.ZodArray<z.ZodObject<{
|
|
515
|
+
id: z.ZodString;
|
|
516
|
+
reminderRuleId: z.ZodString;
|
|
517
|
+
reminderRuleSlug: z.ZodNullable<z.ZodString>;
|
|
518
|
+
reminderRuleName: z.ZodNullable<z.ZodString>;
|
|
519
|
+
targetType: z.ZodLiteral<"booking_payment_schedule">;
|
|
520
|
+
targetId: z.ZodString;
|
|
521
|
+
bookingId: z.ZodNullable<z.ZodString>;
|
|
522
|
+
paymentSessionId: z.ZodNullable<z.ZodString>;
|
|
523
|
+
notificationDeliveryId: z.ZodNullable<z.ZodString>;
|
|
524
|
+
status: z.ZodEnum<{
|
|
525
|
+
failed: "failed";
|
|
526
|
+
sent: "sent";
|
|
527
|
+
processing: "processing";
|
|
528
|
+
skipped: "skipped";
|
|
529
|
+
}>;
|
|
530
|
+
deliveryStatus: z.ZodNullable<z.ZodEnum<{
|
|
531
|
+
cancelled: "cancelled";
|
|
532
|
+
pending: "pending";
|
|
533
|
+
failed: "failed";
|
|
534
|
+
sent: "sent";
|
|
535
|
+
}>>;
|
|
536
|
+
channel: z.ZodNullable<z.ZodEnum<{
|
|
537
|
+
email: "email";
|
|
538
|
+
sms: "sms";
|
|
539
|
+
}>>;
|
|
540
|
+
provider: z.ZodNullable<z.ZodString>;
|
|
541
|
+
recipient: z.ZodNullable<z.ZodString>;
|
|
542
|
+
scheduledFor: z.ZodString;
|
|
543
|
+
processedAt: z.ZodString;
|
|
544
|
+
errorMessage: z.ZodNullable<z.ZodString>;
|
|
545
|
+
relativeDaysFromDueDate: z.ZodNullable<z.ZodNumber>;
|
|
546
|
+
createdAt: z.ZodString;
|
|
547
|
+
}, z.core.$strip>>;
|
|
548
|
+
total: z.ZodNumber;
|
|
549
|
+
limit: z.ZodNumber;
|
|
550
|
+
offset: z.ZodNumber;
|
|
551
|
+
}, z.core.$strip>;
|
|
191
552
|
export type PreviewCheckoutCollectionInput = z.infer<typeof previewCheckoutCollectionSchema>;
|
|
192
553
|
export type InitiateCheckoutCollectionInput = z.infer<typeof initiateCheckoutCollectionSchema>;
|
|
554
|
+
export type CheckoutCollectionPlanRecord = z.infer<typeof checkoutCollectionPlanSchema>;
|
|
555
|
+
export type InitiatedCheckoutCollectionRecord = z.infer<typeof initiatedCheckoutCollectionSchema>;
|
|
556
|
+
export type CheckoutReminderRunListQuery = z.infer<typeof checkoutReminderRunListQuerySchema>;
|
|
557
|
+
export type CheckoutReminderRunRecord = z.infer<typeof checkoutReminderRunSchema>;
|
|
193
558
|
//# sourceMappingURL=validation.d.ts.map
|
package/dist/validation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,8BAA8B;;;EAAoC,CAAA;AAC/E,eAAO,MAAM,6BAA6B;;;;EAA4C,CAAA;AACtF,eAAO,MAAM,kCAAkC;;;EAAkC,CAAA;AACjF,eAAO,MAAM,iCAAiC;;;EAAkC,CAAA;AAQhF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQ1C,CAAA;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO3C,CAAA;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;iBAU3C,CAAA;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;iBAiB1C,CAAA;AAEF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;iBAW7C,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiBvC,CAAA;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAM5C,CAAA;AAEF,eAAO,MAAM,kCAAkC;;;;;;;;;iBAE7C,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoBpC,CAAA;AAEF,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKhD,CAAA;AAEF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAC5F,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA;AAC9F,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AACvF,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAA;AACjG,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAA;AAC7F,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA"}
|
package/dist/validation.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import { applyDefaultBookingPaymentPlanSchema, createPaymentSessionFromInvoiceSchema, createPaymentSessionFromScheduleSchema, } from "@voyantjs/finance";
|
|
2
|
-
import { sendInvoiceNotificationSchema, sendPaymentSessionNotificationSchema, } from "@voyantjs/notifications";
|
|
1
|
+
import { applyDefaultBookingPaymentPlanSchema, createPaymentSessionFromInvoiceSchema, createPaymentSessionFromScheduleSchema, publicPaymentSessionSchema, } from "@voyantjs/finance";
|
|
2
|
+
import { notificationChannelSchema, notificationDeliveryStatusSchema, notificationReminderRunStatusSchema, sendInvoiceNotificationSchema, sendPaymentSessionNotificationSchema, } from "@voyantjs/notifications";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
export const checkoutCollectionMethodSchema = z.enum(["card", "bank_transfer"]);
|
|
5
5
|
export const checkoutCollectionStageSchema = z.enum(["initial", "reminder", "manual"]);
|
|
6
6
|
export const checkoutPaymentSessionTargetSchema = z.enum(["schedule", "invoice"]);
|
|
7
7
|
export const checkoutInvoiceDocumentTypeSchema = z.enum(["proforma", "invoice"]);
|
|
8
8
|
const planOverrideSchema = applyDefaultBookingPaymentPlanSchema.partial();
|
|
9
|
+
const paginationSchema = z.object({
|
|
10
|
+
limit: z.coerce.number().int().min(1).max(100).default(20),
|
|
11
|
+
offset: z.coerce.number().int().min(0).default(0),
|
|
12
|
+
});
|
|
9
13
|
export const previewCheckoutCollectionSchema = z.object({
|
|
10
14
|
method: checkoutCollectionMethodSchema,
|
|
11
15
|
stage: checkoutCollectionStageSchema.default("initial"),
|
|
@@ -23,3 +27,99 @@ export const initiateCheckoutCollectionSchema = previewCheckoutCollectionSchema.
|
|
|
23
27
|
invoiceNotification: sendInvoiceNotificationSchema.optional(),
|
|
24
28
|
notes: z.string().optional().nullable(),
|
|
25
29
|
});
|
|
30
|
+
export const checkoutCollectionScheduleSchema = z.object({
|
|
31
|
+
id: z.string(),
|
|
32
|
+
bookingId: z.string(),
|
|
33
|
+
bookingItemId: z.string().nullable(),
|
|
34
|
+
scheduleType: z.string(),
|
|
35
|
+
status: z.string(),
|
|
36
|
+
dueDate: z.string(),
|
|
37
|
+
currency: z.string(),
|
|
38
|
+
amountCents: z.number().int(),
|
|
39
|
+
notes: z.string().nullable(),
|
|
40
|
+
});
|
|
41
|
+
export const checkoutCollectionInvoiceSchema = z.object({
|
|
42
|
+
id: z.string(),
|
|
43
|
+
invoiceNumber: z.string(),
|
|
44
|
+
invoiceType: z.string(),
|
|
45
|
+
bookingId: z.string(),
|
|
46
|
+
personId: z.string().nullable(),
|
|
47
|
+
organizationId: z.string().nullable(),
|
|
48
|
+
status: z.string(),
|
|
49
|
+
currency: z.string(),
|
|
50
|
+
totalCents: z.number().int(),
|
|
51
|
+
paidCents: z.number().int(),
|
|
52
|
+
balanceDueCents: z.number().int(),
|
|
53
|
+
issueDate: z.string(),
|
|
54
|
+
dueDate: z.string(),
|
|
55
|
+
notes: z.string().nullable(),
|
|
56
|
+
createdAt: z.string(),
|
|
57
|
+
updatedAt: z.string(),
|
|
58
|
+
});
|
|
59
|
+
export const checkoutNotificationDeliverySchema = z.object({
|
|
60
|
+
id: z.string(),
|
|
61
|
+
templateSlug: z.string().nullable(),
|
|
62
|
+
channel: notificationChannelSchema,
|
|
63
|
+
provider: z.string(),
|
|
64
|
+
status: notificationDeliveryStatusSchema,
|
|
65
|
+
toAddress: z.string(),
|
|
66
|
+
subject: z.string().nullable(),
|
|
67
|
+
sentAt: z.string().nullable(),
|
|
68
|
+
failedAt: z.string().nullable(),
|
|
69
|
+
errorMessage: z.string().nullable(),
|
|
70
|
+
});
|
|
71
|
+
export const checkoutCollectionPlanSchema = z.object({
|
|
72
|
+
bookingId: z.string(),
|
|
73
|
+
method: checkoutCollectionMethodSchema,
|
|
74
|
+
stage: checkoutCollectionStageSchema,
|
|
75
|
+
paymentSessionTarget: checkoutPaymentSessionTargetSchema.nullable(),
|
|
76
|
+
documentType: checkoutInvoiceDocumentTypeSchema.nullable(),
|
|
77
|
+
willCreateDefaultPaymentPlan: z.boolean(),
|
|
78
|
+
selectedSchedule: checkoutCollectionScheduleSchema.nullable(),
|
|
79
|
+
selectedInvoice: checkoutCollectionInvoiceSchema.nullable(),
|
|
80
|
+
amountCents: z.number().int(),
|
|
81
|
+
currency: z.string(),
|
|
82
|
+
recommendedAction: z.enum([
|
|
83
|
+
"create_bank_transfer_document",
|
|
84
|
+
"create_payment_session",
|
|
85
|
+
"create_invoice_then_payment_session",
|
|
86
|
+
"none",
|
|
87
|
+
]),
|
|
88
|
+
});
|
|
89
|
+
export const initiatedCheckoutCollectionSchema = z.object({
|
|
90
|
+
plan: checkoutCollectionPlanSchema,
|
|
91
|
+
invoice: checkoutCollectionInvoiceSchema.nullable(),
|
|
92
|
+
paymentSession: publicPaymentSessionSchema.nullable(),
|
|
93
|
+
invoiceNotification: checkoutNotificationDeliverySchema.nullable(),
|
|
94
|
+
paymentSessionNotification: checkoutNotificationDeliverySchema.nullable(),
|
|
95
|
+
});
|
|
96
|
+
export const checkoutReminderRunListQuerySchema = paginationSchema.extend({
|
|
97
|
+
status: notificationReminderRunStatusSchema.optional(),
|
|
98
|
+
});
|
|
99
|
+
export const checkoutReminderRunSchema = z.object({
|
|
100
|
+
id: z.string(),
|
|
101
|
+
reminderRuleId: z.string(),
|
|
102
|
+
reminderRuleSlug: z.string().nullable(),
|
|
103
|
+
reminderRuleName: z.string().nullable(),
|
|
104
|
+
targetType: z.literal("booking_payment_schedule"),
|
|
105
|
+
targetId: z.string(),
|
|
106
|
+
bookingId: z.string().nullable(),
|
|
107
|
+
paymentSessionId: z.string().nullable(),
|
|
108
|
+
notificationDeliveryId: z.string().nullable(),
|
|
109
|
+
status: notificationReminderRunStatusSchema,
|
|
110
|
+
deliveryStatus: notificationDeliveryStatusSchema.nullable(),
|
|
111
|
+
channel: notificationChannelSchema.nullable(),
|
|
112
|
+
provider: z.string().nullable(),
|
|
113
|
+
recipient: z.string().nullable(),
|
|
114
|
+
scheduledFor: z.string(),
|
|
115
|
+
processedAt: z.string(),
|
|
116
|
+
errorMessage: z.string().nullable(),
|
|
117
|
+
relativeDaysFromDueDate: z.number().int().nullable(),
|
|
118
|
+
createdAt: z.string(),
|
|
119
|
+
});
|
|
120
|
+
export const checkoutReminderRunListResponseSchema = z.object({
|
|
121
|
+
data: z.array(checkoutReminderRunSchema),
|
|
122
|
+
total: z.number().int(),
|
|
123
|
+
limit: z.number().int(),
|
|
124
|
+
offset: z.number().int(),
|
|
125
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voyantjs/checkout",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"license": "FSL-1.1-Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -25,11 +25,11 @@
|
|
|
25
25
|
"drizzle-orm": "^0.45.2",
|
|
26
26
|
"hono": "^4.12.10",
|
|
27
27
|
"zod": "^4.3.6",
|
|
28
|
-
"@voyantjs/bookings": "0.
|
|
29
|
-
"@voyantjs/core": "0.
|
|
30
|
-
"@voyantjs/finance": "0.
|
|
31
|
-
"@voyantjs/hono": "0.
|
|
32
|
-
"@voyantjs/notifications": "0.
|
|
28
|
+
"@voyantjs/bookings": "0.3.1",
|
|
29
|
+
"@voyantjs/core": "0.3.1",
|
|
30
|
+
"@voyantjs/finance": "0.3.1",
|
|
31
|
+
"@voyantjs/hono": "0.3.1",
|
|
32
|
+
"@voyantjs/notifications": "0.3.1"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"typescript": "^6.0.2",
|