@develit-services/bank 0.8.19 → 0.8.20

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.
Files changed (34) hide show
  1. package/dist/database/schema.cjs +10 -10
  2. package/dist/database/schema.d.cts +1 -1
  3. package/dist/database/schema.d.mts +1 -1
  4. package/dist/database/schema.d.ts +1 -1
  5. package/dist/database/schema.mjs +2 -2
  6. package/dist/export/worker.cjs +168 -173
  7. package/dist/export/worker.d.cts +2 -2
  8. package/dist/export/worker.d.mts +2 -2
  9. package/dist/export/worker.d.ts +2 -2
  10. package/dist/export/worker.mjs +51 -56
  11. package/dist/export/workflows.cjs +31 -45
  12. package/dist/export/workflows.mjs +6 -20
  13. package/dist/shared/{bank.D8BIM2O3.d.cts → bank.BOY6AI1t.d.cts} +5 -2
  14. package/dist/shared/{bank.D8BIM2O3.d.mts → bank.BOY6AI1t.d.mts} +5 -2
  15. package/dist/shared/{bank.D8BIM2O3.d.ts → bank.BOY6AI1t.d.ts} +5 -2
  16. package/dist/shared/{bank.UJe0t85A.d.cts → bank.Bo01T_MM.d.cts} +1 -1
  17. package/dist/shared/{bank.xB9eTN77.mjs → bank.CPLR0Ul7.mjs} +2 -5
  18. package/dist/shared/{bank.B6dkPRYF.mjs → bank.Cwg6oHMM.mjs} +5 -3
  19. package/dist/shared/{bank.C75Z9vML.cjs → bank.DWsHTK_n.cjs} +5 -3
  20. package/dist/shared/{bank.C695fceV.d.ts → bank.DfTdMAi9.d.ts} +1 -1
  21. package/dist/shared/{bank.CXBeULUL.mjs → bank.ESTBT4J6.mjs} +50 -3
  22. package/dist/shared/{bank.BsIiXsFH.cjs → bank.NF8bZBy0.cjs} +0 -9
  23. package/dist/shared/{bank.vz1uqEYa.mjs → bank.XqSw509X.mjs} +1 -8
  24. package/dist/shared/{bank.DzxhtOpm.d.mts → bank.jRGa7MKk.d.mts} +1 -1
  25. package/dist/shared/{bank.BBXoZ5QU.cjs → bank.o95cOH_P.cjs} +56 -2
  26. package/dist/shared/{bank.Cev1E9sk.cjs → bank.vGCuP898.cjs} +14 -18
  27. package/dist/types.cjs +32 -29
  28. package/dist/types.d.cts +4 -4
  29. package/dist/types.d.mts +4 -4
  30. package/dist/types.d.ts +4 -4
  31. package/dist/types.mjs +4 -4
  32. package/package.json +1 -1
  33. package/dist/shared/bank.CR0UlyRi.mjs +0 -15
  34. package/dist/shared/bank.CVi6R7fr.cjs +0 -17
@@ -1,27 +1,26 @@
1
1
  'use strict';
2
2
 
3
3
  const backendSdk = require('@develit-io/backend-sdk');
4
- const drizzle = require('../shared/bank.Cev1E9sk.cjs');
4
+ const database_schema = require('../shared/bank.o95cOH_P.cjs');
5
5
  const drizzleOrm = require('drizzle-orm');
6
6
  const cloudflare_workers = require('cloudflare:workers');
7
7
  const d1 = require('drizzle-orm/d1');
8
- const mock_connector = require('../shared/bank.C75Z9vML.cjs');
8
+ const mock_connector = require('../shared/bank.DWsHTK_n.cjs');
9
9
  require('jose');
10
10
  const zod = require('zod');
11
- const paymentRequest_schema = require('../shared/bank.BBXoZ5QU.cjs');
12
11
  const generalCodes = require('@develit-io/general-codes');
13
12
  require('date-fns');
14
13
  require('node:crypto');
15
- require('../shared/bank.CVi6R7fr.cjs');
16
- require('drizzle-orm/relations');
14
+ const credentialsResolver = require('../shared/bank.vGCuP898.cjs');
17
15
  require('drizzle-orm/sqlite-core');
16
+ require('drizzle-orm/relations');
18
17
  require('drizzle-zod');
19
18
 
20
19
  const upsertAccountCommand = (db, { account }) => {
21
20
  const id = account.id || backendSdk.uuidv4();
22
21
  const { id: _id, ...accountWithoutId } = account;
23
- const command = db.insert(drizzle.tables.account).values({ ...account, id }).onConflictDoUpdate({
24
- target: drizzle.tables.account.iban,
22
+ const command = db.insert(database_schema.tables.account).values({ ...account, id }).onConflictDoUpdate({
23
+ target: database_schema.tables.account.iban,
25
24
  set: accountWithoutId
26
25
  // preserve existing id on re-auth
27
26
  }).returning();
@@ -38,7 +37,7 @@ const createOneTimeTokenCommand = (db, {
38
37
  }) => {
39
38
  const id = backendSdk.uuidv4();
40
39
  const expiresAt = new Date(Date.now() + 1e3 * 60 * 60) ;
41
- const command = db.insert(drizzle.tables.ott).values({
40
+ const command = db.insert(database_schema.tables.ott).values({
42
41
  id,
43
42
  oneTimeToken: ott,
44
43
  tokenType,
@@ -50,7 +49,7 @@ const createOneTimeTokenCommand = (db, {
50
49
 
51
50
  const updateAccountCommand = (db, { account }) => {
52
51
  return {
53
- command: db.update(drizzle.tables.account).set({ ...account }).where(drizzleOrm.eq(drizzle.tables.account.id, account.id)).returning()
52
+ command: db.update(database_schema.tables.account).set({ ...account }).where(drizzleOrm.eq(database_schema.tables.account.id, account.id)).returning()
54
53
  };
55
54
  };
56
55
 
@@ -58,16 +57,16 @@ const expireOneTimeTokenCommand = (db, {
58
57
  ott
59
58
  }) => {
60
59
  return {
61
- command: db.update(drizzle.tables.ott).set({
60
+ command: db.update(database_schema.tables.ott).set({
62
61
  expiresAt: /* @__PURE__ */ new Date()
63
- }).where(drizzleOrm.eq(drizzle.tables.ott.oneTimeToken, ott))
62
+ }).where(drizzleOrm.eq(database_schema.tables.ott.oneTimeToken, ott))
64
63
  };
65
64
  };
66
65
 
67
66
  const createAccountCredentialsCommand = async (db, encryptionKey, { credentials }) => {
68
67
  const id = credentials.id || backendSdk.uuidv4();
69
- const encryptedValue = await drizzle.encrypt(credentials.value, encryptionKey);
70
- const command = db.insert(drizzle.tables.accountCredentials).values({
68
+ const encryptedValue = await credentialsResolver.encrypt(credentials.value, encryptionKey);
69
+ const command = db.insert(database_schema.tables.accountCredentials).values({
71
70
  ...credentials,
72
71
  id,
73
72
  value: encryptedValue
@@ -79,16 +78,16 @@ const createAccountCredentialsCommand = async (db, encryptionKey, { credentials
79
78
  };
80
79
 
81
80
  const deleteAccountCredentialsCommand = (db, { accountId }) => {
82
- const command = db.delete(drizzle.tables.accountCredentials).where(drizzleOrm.eq(drizzle.tables.accountCredentials.accountId, accountId));
81
+ const command = db.delete(database_schema.tables.accountCredentials).where(drizzleOrm.eq(database_schema.tables.accountCredentials.accountId, accountId));
83
82
  return {
84
83
  command
85
84
  };
86
85
  };
87
86
 
88
87
  const deletePaymentsByAccountCommand = (db, { accountId }) => {
89
- const command = db.update(drizzle.tables.payment).set({
88
+ const command = db.update(database_schema.tables.payment).set({
90
89
  deletedAt: /* @__PURE__ */ new Date()
91
- }).where(drizzleOrm.eq(drizzle.tables.payment.accountId, accountId));
90
+ }).where(drizzleOrm.eq(database_schema.tables.payment.accountId, accountId));
92
91
  return {
93
92
  command
94
93
  };
@@ -96,7 +95,7 @@ const deletePaymentsByAccountCommand = (db, { accountId }) => {
96
95
 
97
96
  const createPaymentRequestCommand = (db, { paymentRequest }) => {
98
97
  return {
99
- command: db.insert(drizzle.tables.paymentRequest).values({
98
+ command: db.insert(database_schema.tables.paymentRequest).values({
100
99
  ...paymentRequest,
101
100
  creditorIban: paymentRequest.creditor.iban,
102
101
  debtorIban: paymentRequest.debtor.iban
@@ -107,16 +106,16 @@ const createPaymentRequestCommand = (db, { paymentRequest }) => {
107
106
  const getAccountBatchCountsQuery = async (db, { accountId }) => {
108
107
  const result = await db.select({
109
108
  totalCount: drizzleOrm.sql`COUNT(*)`.as("totalCount"),
110
- processingCount: drizzleOrm.sql`SUM(CASE WHEN ${drizzle.tables.batch.status} = 'PROCESSING' THEN 1 ELSE 0 END)`.as(
109
+ processingCount: drizzleOrm.sql`SUM(CASE WHEN ${database_schema.tables.batch.status} = 'PROCESSING' THEN 1 ELSE 0 END)`.as(
111
110
  "processingCount"
112
111
  ),
113
- readyToSignCount: drizzleOrm.sql`SUM(CASE WHEN ${drizzle.tables.batch.status} = 'READY_TO_SIGN' THEN 1 ELSE 0 END)`.as(
112
+ readyToSignCount: drizzleOrm.sql`SUM(CASE WHEN ${database_schema.tables.batch.status} = 'READY_TO_SIGN' THEN 1 ELSE 0 END)`.as(
114
113
  "readyToSignCount"
115
114
  ),
116
- failedCount: drizzleOrm.sql`SUM(CASE WHEN ${drizzle.tables.batch.status} = 'FAILED' THEN 1 ELSE 0 END)`.as(
115
+ failedCount: drizzleOrm.sql`SUM(CASE WHEN ${database_schema.tables.batch.status} = 'FAILED' THEN 1 ELSE 0 END)`.as(
117
116
  "failedCount"
118
117
  )
119
- }).from(drizzle.tables.batch).where(drizzleOrm.eq(drizzle.tables.batch.accountId, accountId)).then(backendSdk.first);
118
+ }).from(database_schema.tables.batch).where(drizzleOrm.eq(database_schema.tables.batch.accountId, accountId)).then(backendSdk.first);
120
119
  return result || {
121
120
  totalCount: 0,
122
121
  processingCount: 0,
@@ -126,18 +125,18 @@ const getAccountBatchCountsQuery = async (db, { accountId }) => {
126
125
  };
127
126
 
128
127
  const getAccountByIbanQuery = async (db, { iban }) => {
129
- return await db.select().from(drizzle.tables.account).where(drizzleOrm.eq(drizzle.tables.account.iban, iban)).get();
128
+ return await db.select().from(database_schema.tables.account).where(drizzleOrm.eq(database_schema.tables.account.iban, iban)).get();
130
129
  };
131
130
 
132
131
  const getAllAccountsQuery = async (db, filters) => {
133
132
  const whereConditions = drizzleOrm.and(
134
- backendSdk.buildMultiFilterConditions(drizzle.tables.account.iban, filters?.filterIbans),
133
+ backendSdk.buildMultiFilterConditions(database_schema.tables.account.iban, filters?.filterIbans),
135
134
  backendSdk.buildMultiFilterConditions(
136
- drizzle.tables.account.currency,
135
+ database_schema.tables.account.currency,
137
136
  filters?.filterCurrencies
138
137
  ),
139
138
  backendSdk.buildMultiFilterConditions(
140
- drizzle.tables.account.bankRefId,
139
+ database_schema.tables.account.bankRefId,
141
140
  filters?.filterBankRefIds
142
141
  )
143
142
  );
@@ -145,11 +144,11 @@ const getAllAccountsQuery = async (db, filters) => {
145
144
  const limit = filters?.limit ?? 20;
146
145
  const offset = (page - 1) * limit;
147
146
  const [accountsWithExpiration, countResult] = await Promise.all([
148
- db.select().from(drizzle.tables.account).leftJoin(
149
- drizzle.tables.accountCredentials,
150
- drizzleOrm.eq(drizzle.tables.accountCredentials.accountId, drizzle.tables.account.id)
147
+ db.select().from(database_schema.tables.account).leftJoin(
148
+ database_schema.tables.accountCredentials,
149
+ drizzleOrm.eq(database_schema.tables.accountCredentials.accountId, database_schema.tables.account.id)
151
150
  ).where(whereConditions).limit(limit).offset(offset),
152
- db.select({ count: drizzleOrm.sql`count(*)` }).from(drizzle.tables.account).where(whereConditions)
151
+ db.select({ count: drizzleOrm.sql`count(*)` }).from(database_schema.tables.account).where(whereConditions)
153
152
  ]);
154
153
  return {
155
154
  accounts: accountsWithExpiration.map(
@@ -211,42 +210,42 @@ const getPaymentsWithPaginationQuery = async (db, {
211
210
  }) => {
212
211
  const whereConditions = drizzleOrm.and(
213
212
  buildMultiFilterConditions(
214
- drizzle.tables.payment.accountId,
213
+ database_schema.tables.payment.accountId,
215
214
  filterPaymentAccountId
216
215
  ),
217
- buildMultiFilterConditions(drizzle.tables.payment.amount, filterPaymentAmount),
218
- buildMultiFilterConditions(drizzle.tables.payment.currency, filterPaymentCurrency),
216
+ buildMultiFilterConditions(database_schema.tables.payment.amount, filterPaymentAmount),
217
+ buildMultiFilterConditions(database_schema.tables.payment.currency, filterPaymentCurrency),
219
218
  buildRangeFilterConditions(
220
- drizzle.tables.payment.createdAt,
219
+ database_schema.tables.payment.createdAt,
221
220
  filterPaymentDateFrom,
222
221
  filterPaymentDateTo
223
222
  ),
224
- buildMultiFilterConditions(drizzle.tables.payment.status, filterPaymentStatus),
223
+ buildMultiFilterConditions(database_schema.tables.payment.status, filterPaymentStatus),
225
224
  buildMultiFilterConditions(
226
- drizzle.tables.payment.direction,
225
+ database_schema.tables.payment.direction,
227
226
  filterPaymentDirection
228
227
  ),
229
- buildMultiFilterConditions(drizzle.tables.payment.id, ids),
230
- buildMultiFilterConditions(drizzle.tables.payment.paymentType, filterPaymentType),
228
+ buildMultiFilterConditions(database_schema.tables.payment.id, ids),
229
+ buildMultiFilterConditions(database_schema.tables.payment.paymentType, filterPaymentType),
231
230
  buildRangeFilterConditions(
232
- drizzle.tables.payment.amount,
231
+ database_schema.tables.payment.amount,
233
232
  filterPaymentMinAmount,
234
233
  filterPaymentMaxAmount
235
234
  ),
236
- filterPaymentVariableSymbol !== void 0 ? drizzleOrm.eq(drizzle.tables.payment.vs, filterPaymentVariableSymbol) : void 0,
237
- filterPaymentSpecificSymbol !== void 0 ? drizzleOrm.eq(drizzle.tables.payment.ss, filterPaymentSpecificSymbol) : void 0,
238
- filterPaymentConstantSymbol !== void 0 ? drizzleOrm.eq(drizzle.tables.payment.ks, filterPaymentConstantSymbol) : void 0,
239
- filterPaymentMessage !== void 0 ? drizzleOrm.like(drizzle.tables.payment.message, `%${filterPaymentMessage}%`) : void 0,
240
- filterPaymentCreditorIban !== void 0 ? drizzleOrm.eq(drizzle.tables.payment.creditorIban, filterPaymentCreditorIban) : void 0,
241
- filterPaymentDebtorIban !== void 0 ? drizzleOrm.eq(drizzle.tables.payment.debtorIban, filterPaymentDebtorIban) : void 0,
242
- filterPaymentBatchId !== void 0 ? drizzleOrm.eq(drizzle.tables.payment.batchId, filterPaymentBatchId) : void 0,
243
- filterPaymentBankRefId !== void 0 ? drizzleOrm.eq(drizzle.tables.payment.bankRefId, filterPaymentBankRefId) : void 0
235
+ filterPaymentVariableSymbol !== void 0 ? drizzleOrm.eq(database_schema.tables.payment.vs, filterPaymentVariableSymbol) : void 0,
236
+ filterPaymentSpecificSymbol !== void 0 ? drizzleOrm.eq(database_schema.tables.payment.ss, filterPaymentSpecificSymbol) : void 0,
237
+ filterPaymentConstantSymbol !== void 0 ? drizzleOrm.eq(database_schema.tables.payment.ks, filterPaymentConstantSymbol) : void 0,
238
+ filterPaymentMessage !== void 0 ? drizzleOrm.like(database_schema.tables.payment.message, `%${filterPaymentMessage}%`) : void 0,
239
+ filterPaymentCreditorIban !== void 0 ? drizzleOrm.eq(database_schema.tables.payment.creditorIban, filterPaymentCreditorIban) : void 0,
240
+ filterPaymentDebtorIban !== void 0 ? drizzleOrm.eq(database_schema.tables.payment.debtorIban, filterPaymentDebtorIban) : void 0,
241
+ filterPaymentBatchId !== void 0 ? drizzleOrm.eq(database_schema.tables.payment.batchId, filterPaymentBatchId) : void 0,
242
+ filterPaymentBankRefId !== void 0 ? drizzleOrm.eq(database_schema.tables.payment.bankRefId, filterPaymentBankRefId) : void 0
244
243
  );
245
- const sortColumn = resolveColumn(drizzle.tables.payment, sort.column);
244
+ const sortColumn = resolveColumn(database_schema.tables.payment, sort.column);
246
245
  const [{ totalCount }] = await db.select({
247
246
  totalCount: drizzleOrm.sql`count(*)`
248
- }).from(drizzle.tables.payment).where(whereConditions);
249
- const payments = await db.select().from(drizzle.tables.payment).where(whereConditions).limit(limit).offset((page - 1) * limit).orderBy(sort.direction === "asc" ? drizzleOrm.asc(sortColumn) : drizzleOrm.desc(sortColumn));
247
+ }).from(database_schema.tables.payment).where(whereConditions);
248
+ const payments = await db.select().from(database_schema.tables.payment).where(whereConditions).limit(limit).offset((page - 1) * limit).orderBy(sort.direction === "asc" ? drizzleOrm.asc(sortColumn) : drizzleOrm.desc(sortColumn));
250
249
  return {
251
250
  payments,
252
251
  totalCount
@@ -261,20 +260,20 @@ const getBatchesQuery = async (db, {
261
260
  filterBatchStatus
262
261
  }) => {
263
262
  const whereConditions = drizzleOrm.and(
264
- drizzleOrm.isNull(drizzle.tables.batch.deletedAt),
265
- buildMultiFilterConditions(drizzle.tables.batch.accountId, filterBatchAccountId),
266
- buildMultiFilterConditions(drizzle.tables.batch.status, filterBatchStatus)
263
+ drizzleOrm.isNull(database_schema.tables.batch.deletedAt),
264
+ buildMultiFilterConditions(database_schema.tables.batch.accountId, filterBatchAccountId),
265
+ buildMultiFilterConditions(database_schema.tables.batch.status, filterBatchStatus)
267
266
  );
268
- const sortColumn = resolveColumn(drizzle.tables.batch, sort.column);
267
+ const sortColumn = resolveColumn(database_schema.tables.batch, sort.column);
269
268
  const [{ totalCount }] = await db.select({
270
269
  totalCount: drizzleOrm.sql`count(*)`
271
- }).from(drizzle.tables.batch).where(whereConditions);
272
- const batches = await db.select().from(drizzle.tables.batch).where(whereConditions).limit(limit).offset((page - 1) * limit).orderBy(sort.direction === "asc" ? drizzleOrm.asc(sortColumn) : drizzleOrm.desc(sortColumn));
270
+ }).from(database_schema.tables.batch).where(whereConditions);
271
+ const batches = await db.select().from(database_schema.tables.batch).where(whereConditions).limit(limit).offset((page - 1) * limit).orderBy(sort.direction === "asc" ? drizzleOrm.asc(sortColumn) : drizzleOrm.desc(sortColumn));
273
272
  const batchIds = batches.map((b) => b.id);
274
- const paymentRequests = batchIds.length > 0 ? await db.select().from(drizzle.tables.paymentRequest).where(
273
+ const paymentRequests = batchIds.length > 0 ? await db.select().from(database_schema.tables.paymentRequest).where(
275
274
  drizzleOrm.and(
276
- drizzleOrm.inArray(drizzle.tables.paymentRequest.batchId, batchIds),
277
- drizzleOrm.isNull(drizzle.tables.paymentRequest.deletedAt)
275
+ drizzleOrm.inArray(database_schema.tables.paymentRequest.batchId, batchIds),
276
+ drizzleOrm.isNull(database_schema.tables.paymentRequest.deletedAt)
278
277
  )
279
278
  ) : [];
280
279
  const paymentRequestsByBatchId = Map.groupBy(
@@ -292,14 +291,14 @@ const getBatchesQuery = async (db, {
292
291
  };
293
292
 
294
293
  const getOttQuery = async (db, { ott }) => {
295
- return await db.select().from(drizzle.tables.ott).where(drizzleOrm.eq(drizzle.tables.ott.oneTimeToken, ott)).get();
294
+ return await db.select().from(database_schema.tables.ott).where(drizzleOrm.eq(database_schema.tables.ott.oneTimeToken, ott)).get();
296
295
  };
297
296
 
298
297
  const getPaymentRequestByIdQuery = async (db, { paymentRequestId }) => {
299
- const result = await db.select().from(drizzle.tables.paymentRequest).where(
298
+ const result = await db.select().from(database_schema.tables.paymentRequest).where(
300
299
  drizzleOrm.and(
301
- drizzleOrm.eq(drizzle.tables.paymentRequest.id, paymentRequestId),
302
- drizzleOrm.isNull(drizzle.tables.paymentRequest.deletedAt)
300
+ drizzleOrm.eq(database_schema.tables.paymentRequest.id, paymentRequestId),
301
+ drizzleOrm.isNull(database_schema.tables.paymentRequest.deletedAt)
303
302
  )
304
303
  ).limit(1);
305
304
  return backendSdk.first(result);
@@ -309,53 +308,63 @@ const getPaymentRequestsQuery = async (db, params) => {
309
308
  const limit = params.limit;
310
309
  const offset = (params.page - 1) * params.limit;
311
310
  const orderDir = params.sort.direction === "asc" ? drizzleOrm.asc : drizzleOrm.desc;
312
- const orderCol = params.sort.column === "amount" ? drizzle.tables.paymentRequest.amount : params.sort.column === "updatedAt" ? drizzle.tables.paymentRequest.updatedAt : drizzle.tables.paymentRequest.createdAt;
311
+ const orderCol = params.sort.column === "amount" ? database_schema.tables.paymentRequest.amount : params.sort.column === "updatedAt" ? database_schema.tables.paymentRequest.updatedAt : database_schema.tables.paymentRequest.createdAt;
313
312
  const where = drizzleOrm.and(
314
- drizzleOrm.isNull(drizzle.tables.paymentRequest.deletedAt),
315
- params.filterAccountId ? Array.isArray(params.filterAccountId) ? drizzleOrm.inArray(drizzle.tables.paymentRequest.accountId, params.filterAccountId) : drizzleOrm.eq(drizzle.tables.paymentRequest.accountId, params.filterAccountId) : void 0,
316
- params.filterStatus ? Array.isArray(params.filterStatus) ? drizzleOrm.inArray(drizzle.tables.paymentRequest.status, params.filterStatus) : drizzleOrm.eq(drizzle.tables.paymentRequest.status, params.filterStatus) : void 0,
317
- params.filterPaymentType ? Array.isArray(params.filterPaymentType) ? drizzleOrm.inArray(drizzle.tables.paymentRequest.paymentType, params.filterPaymentType) : drizzleOrm.eq(drizzle.tables.paymentRequest.paymentType, params.filterPaymentType) : void 0,
318
- params.filterCurrency ? Array.isArray(params.filterCurrency) ? drizzleOrm.inArray(drizzle.tables.paymentRequest.currency, params.filterCurrency) : drizzleOrm.eq(drizzle.tables.paymentRequest.currency, params.filterCurrency) : void 0,
319
- params.filterBatchId ? drizzleOrm.eq(drizzle.tables.paymentRequest.batchId, params.filterBatchId) : void 0,
320
- params.filterDateFrom ? drizzleOrm.gte(drizzle.tables.paymentRequest.createdAt, params.filterDateFrom) : void 0,
321
- params.filterDateTo ? drizzleOrm.lte(drizzle.tables.paymentRequest.createdAt, params.filterDateTo) : void 0,
322
- params.filterMinAmount !== void 0 ? drizzleOrm.gte(drizzle.tables.paymentRequest.amount, params.filterMinAmount) : void 0,
323
- params.filterMaxAmount !== void 0 ? drizzleOrm.lte(drizzle.tables.paymentRequest.amount, params.filterMaxAmount) : void 0,
324
- params.filterVariableSymbol ? drizzleOrm.eq(drizzle.tables.paymentRequest.vs, params.filterVariableSymbol) : void 0,
325
- params.filterSpecificSymbol ? drizzleOrm.eq(drizzle.tables.paymentRequest.ss, params.filterSpecificSymbol) : void 0,
326
- params.filterConstantSymbol ? drizzleOrm.eq(drizzle.tables.paymentRequest.ks, params.filterConstantSymbol) : void 0,
327
- params.filterMessage ? drizzleOrm.like(drizzle.tables.paymentRequest.message, `%${params.filterMessage}%`) : void 0,
328
- params.filterBankRefId ? drizzleOrm.eq(drizzle.tables.paymentRequest.bankRefId, params.filterBankRefId) : void 0,
329
- params.filterCreditorIban ? drizzleOrm.eq(drizzle.tables.paymentRequest.creditorIban, params.filterCreditorIban) : void 0,
330
- params.filterDebtorIban ? drizzleOrm.eq(drizzle.tables.paymentRequest.debtorIban, params.filterDebtorIban) : void 0,
331
- params.ids?.length ? drizzleOrm.inArray(drizzle.tables.paymentRequest.id, params.ids) : void 0
313
+ drizzleOrm.isNull(database_schema.tables.paymentRequest.deletedAt),
314
+ params.filterAccountId ? Array.isArray(params.filterAccountId) ? drizzleOrm.inArray(database_schema.tables.paymentRequest.accountId, params.filterAccountId) : drizzleOrm.eq(database_schema.tables.paymentRequest.accountId, params.filterAccountId) : void 0,
315
+ params.filterStatus ? Array.isArray(params.filterStatus) ? drizzleOrm.inArray(database_schema.tables.paymentRequest.status, params.filterStatus) : drizzleOrm.eq(database_schema.tables.paymentRequest.status, params.filterStatus) : void 0,
316
+ params.filterPaymentType ? Array.isArray(params.filterPaymentType) ? drizzleOrm.inArray(database_schema.tables.paymentRequest.paymentType, params.filterPaymentType) : drizzleOrm.eq(database_schema.tables.paymentRequest.paymentType, params.filterPaymentType) : void 0,
317
+ params.filterCurrency ? Array.isArray(params.filterCurrency) ? drizzleOrm.inArray(database_schema.tables.paymentRequest.currency, params.filterCurrency) : drizzleOrm.eq(database_schema.tables.paymentRequest.currency, params.filterCurrency) : void 0,
318
+ params.filterBatchId ? drizzleOrm.eq(database_schema.tables.paymentRequest.batchId, params.filterBatchId) : void 0,
319
+ params.filterDateFrom ? drizzleOrm.gte(database_schema.tables.paymentRequest.createdAt, params.filterDateFrom) : void 0,
320
+ params.filterDateTo ? drizzleOrm.lte(database_schema.tables.paymentRequest.createdAt, params.filterDateTo) : void 0,
321
+ params.filterMinAmount !== void 0 ? drizzleOrm.gte(database_schema.tables.paymentRequest.amount, params.filterMinAmount) : void 0,
322
+ params.filterMaxAmount !== void 0 ? drizzleOrm.lte(database_schema.tables.paymentRequest.amount, params.filterMaxAmount) : void 0,
323
+ params.filterVariableSymbol ? drizzleOrm.eq(database_schema.tables.paymentRequest.vs, params.filterVariableSymbol) : void 0,
324
+ params.filterSpecificSymbol ? drizzleOrm.eq(database_schema.tables.paymentRequest.ss, params.filterSpecificSymbol) : void 0,
325
+ params.filterConstantSymbol ? drizzleOrm.eq(database_schema.tables.paymentRequest.ks, params.filterConstantSymbol) : void 0,
326
+ params.filterMessage ? drizzleOrm.like(database_schema.tables.paymentRequest.message, `%${params.filterMessage}%`) : void 0,
327
+ params.filterBankRefId ? drizzleOrm.eq(database_schema.tables.paymentRequest.bankRefId, params.filterBankRefId) : void 0,
328
+ params.filterCreditorIban ? drizzleOrm.eq(database_schema.tables.paymentRequest.creditorIban, params.filterCreditorIban) : void 0,
329
+ params.filterDebtorIban ? drizzleOrm.eq(database_schema.tables.paymentRequest.debtorIban, params.filterDebtorIban) : void 0,
330
+ params.ids?.length ? drizzleOrm.inArray(database_schema.tables.paymentRequest.id, params.ids) : void 0
332
331
  );
333
332
  const [paymentRequests, [{ value: totalCount }]] = await Promise.all([
334
- db.select().from(drizzle.tables.paymentRequest).where(where).orderBy(orderDir(orderCol)).limit(limit).offset(offset),
335
- db.select({ value: drizzleOrm.count() }).from(drizzle.tables.paymentRequest).where(where)
333
+ db.select().from(database_schema.tables.paymentRequest).where(where).orderBy(orderDir(orderCol)).limit(limit).offset(offset),
334
+ db.select({ value: drizzleOrm.count() }).from(database_schema.tables.paymentRequest).where(where)
336
335
  ]);
337
336
  return { paymentRequests, totalCount };
338
337
  };
339
338
 
340
- const TERMINAL_STATUSES = [
341
- "SETTLED",
342
- "REJECTED",
343
- "CLOSED"
344
- ];
345
- const getNonTerminalPaymentRequestsQuery = (db) => db.select().from(drizzle.tables.paymentRequest).where(
346
- drizzleOrm.and(
347
- drizzleOrm.not(drizzleOrm.inArray(drizzle.tables.paymentRequest.status, TERMINAL_STATUSES)),
348
- drizzleOrm.isNull(drizzle.tables.paymentRequest.deletedAt)
349
- )
350
- );
339
+ const SIGNAL_MAP = {
340
+ OPENED: "paymentRequestOpened",
341
+ AUTHORIZED: "paymentRequestAuthorized",
342
+ COMPLETED: "paymentRequestCompleted",
343
+ BOOKED: "paymentRequestBooked",
344
+ SETTLED: "paymentRequestSettled",
345
+ REJECTED: "paymentRequestRejected",
346
+ CLOSED: "paymentRequestClosed"
347
+ };
348
+ function buildPaymentRequestEvent(pr) {
349
+ return {
350
+ eventType: "BANK_PAYMENT_REQUEST",
351
+ eventSignal: SIGNAL_MAP[pr.status],
352
+ paymentRequest: pr,
353
+ metadata: {
354
+ correlationId: pr.correlationId,
355
+ entityId: pr.id,
356
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
357
+ }
358
+ };
359
+ }
351
360
 
352
361
  const sendPaymentInputSchema = zod.z.object({
353
362
  correlationId: zod.z.string().min(1),
354
363
  refId: zod.z.string().optional(),
355
364
  amount: zod.z.number().positive(),
356
- paymentType: zod.z.enum(paymentRequest_schema.PAYMENT_TYPES),
357
- chargeBearer: zod.z.enum(paymentRequest_schema.CHARGE_BEARERS).optional(),
358
- instructionPriority: zod.z.enum(paymentRequest_schema.INSTRUCTION_PRIORITIES).optional(),
365
+ paymentType: zod.z.enum(database_schema.PAYMENT_TYPES),
366
+ chargeBearer: zod.z.enum(database_schema.CHARGE_BEARERS).optional(),
367
+ instructionPriority: zod.z.enum(database_schema.INSTRUCTION_PRIORITIES).optional(),
359
368
  currency: zod.z.enum(generalCodes.CURRENCY_CODES),
360
369
  vs: zod.z.string().optional(),
361
370
  ss: zod.z.string().optional(),
@@ -371,7 +380,7 @@ const sendBatchInputSchema = zod.z.object({
371
380
  });
372
381
 
373
382
  const getAuthUriInputSchema = zod.z.object({
374
- connectorKey: zod.z.enum(paymentRequest_schema.CONNECTOR_KEYS)
383
+ connectorKey: zod.z.enum(database_schema.CONNECTOR_KEYS)
375
384
  });
376
385
 
377
386
  const authorizeAccountInputSchema = zod.z.object({
@@ -392,7 +401,7 @@ const simulateDepositInputSchema = zod.z.object({
392
401
  message: zod.z.string(),
393
402
  creditor: backendSdk.bankAccountMetadataSchema,
394
403
  debtor: backendSdk.bankAccountMetadataSchema,
395
- connectorKey: zod.z.enum(paymentRequest_schema.CONNECTOR_KEYS)
404
+ connectorKey: zod.z.enum(database_schema.CONNECTOR_KEYS)
396
405
  });
397
406
 
398
407
  const ALLOWED_BATCH_FILTERS = {
@@ -407,7 +416,7 @@ const getBatchesInputSchema = zod.z.object({
407
416
  direction: zod.z.enum(["asc", "desc"])
408
417
  }),
409
418
  [ALLOWED_BATCH_FILTERS.ACCOUNT_ID]: zod.z.union([zod.z.uuid(), zod.z.uuid().array()]).optional(),
410
- [ALLOWED_BATCH_FILTERS.STATUS]: zod.z.union([zod.z.enum(paymentRequest_schema.BATCH_STATUSES), zod.z.enum(paymentRequest_schema.BATCH_STATUSES).array()]).optional()
419
+ [ALLOWED_BATCH_FILTERS.STATUS]: zod.z.union([zod.z.enum(database_schema.BATCH_STATUSES), zod.z.enum(database_schema.BATCH_STATUSES).array()]).optional()
411
420
  });
412
421
 
413
422
  const processBatchInputSchema = zod.z.object({
@@ -465,11 +474,11 @@ const getPaymentsInputSchema = zod.z.object({
465
474
  [ALLOWED_PAYMENT_FILTERS.ACCOUNT_ID]: zod.z.union([zod.z.uuid(), zod.z.uuid().array()]).optional(),
466
475
  [ALLOWED_PAYMENT_FILTERS.AMOUNT]: zod.z.union([zod.z.number(), zod.z.number().array()]).optional(),
467
476
  [ALLOWED_PAYMENT_FILTERS.CURRENCY]: zod.z.union([zod.z.enum(generalCodes.CURRENCY_CODES), zod.z.enum(generalCodes.CURRENCY_CODES).array()]).optional(),
468
- [ALLOWED_PAYMENT_FILTERS.DIRECTION]: zod.z.union([zod.z.enum(paymentRequest_schema.PAYMENT_DIRECTIONS), zod.z.enum(paymentRequest_schema.PAYMENT_DIRECTIONS).array()]).optional(),
477
+ [ALLOWED_PAYMENT_FILTERS.DIRECTION]: zod.z.union([zod.z.enum(database_schema.PAYMENT_DIRECTIONS), zod.z.enum(database_schema.PAYMENT_DIRECTIONS).array()]).optional(),
469
478
  [ALLOWED_PAYMENT_FILTERS.FROM]: zod.z.date().optional(),
470
479
  [ALLOWED_PAYMENT_FILTERS.TO]: zod.z.date().optional(),
471
- [ALLOWED_PAYMENT_FILTERS.STATUS]: zod.z.union([zod.z.enum(paymentRequest_schema.PAYMENT_STATUSES), zod.z.enum(paymentRequest_schema.PAYMENT_STATUSES).array()]).optional(),
472
- [ALLOWED_PAYMENT_FILTERS.PAYMENT_TYPE]: zod.z.union([zod.z.enum(paymentRequest_schema.PAYMENT_TYPES), zod.z.enum(paymentRequest_schema.PAYMENT_TYPES).array()]).optional(),
480
+ [ALLOWED_PAYMENT_FILTERS.STATUS]: zod.z.union([zod.z.enum(database_schema.PAYMENT_STATUSES), zod.z.enum(database_schema.PAYMENT_STATUSES).array()]).optional(),
481
+ [ALLOWED_PAYMENT_FILTERS.PAYMENT_TYPE]: zod.z.union([zod.z.enum(database_schema.PAYMENT_TYPES), zod.z.enum(database_schema.PAYMENT_TYPES).array()]).optional(),
473
482
  [ALLOWED_PAYMENT_FILTERS.MIN_AMOUNT]: zod.z.number().positive().optional(),
474
483
  [ALLOWED_PAYMENT_FILTERS.MAX_AMOUNT]: zod.z.number().positive().optional(),
475
484
  [ALLOWED_PAYMENT_FILTERS.VARIABLE_SYMBOL]: zod.z.string().regex(/^\d{1,10}$/).optional(),
@@ -514,7 +523,7 @@ zod.z.object({
514
523
  });
515
524
 
516
525
  const updateAccountInputSchema = zod.z.object({
517
- account: paymentRequest_schema.accountInsertSchema
526
+ account: database_schema.accountInsertSchema
518
527
  });
519
528
 
520
529
  const getBankAccountsInputSchema = zod.z.object({
@@ -545,10 +554,10 @@ const getPaymentRequestsInputSchema = zod.z.object({
545
554
  }),
546
555
  filterAccountId: zod.z.union([zod.z.uuid(), zod.z.uuid().array()]).optional(),
547
556
  filterStatus: zod.z.union([
548
- zod.z.enum(paymentRequest_schema.PAYMENT_REQUEST_STATUSES),
549
- zod.z.enum(paymentRequest_schema.PAYMENT_REQUEST_STATUSES).array()
557
+ zod.z.enum(database_schema.PAYMENT_REQUEST_STATUSES),
558
+ zod.z.enum(database_schema.PAYMENT_REQUEST_STATUSES).array()
550
559
  ]).optional(),
551
- filterPaymentType: zod.z.union([zod.z.enum(paymentRequest_schema.PAYMENT_TYPES), zod.z.enum(paymentRequest_schema.PAYMENT_TYPES).array()]).optional(),
560
+ filterPaymentType: zod.z.union([zod.z.enum(database_schema.PAYMENT_TYPES), zod.z.enum(database_schema.PAYMENT_TYPES).array()]).optional(),
552
561
  filterCurrency: zod.z.union([zod.z.enum(generalCodes.CURRENCY_CODES), zod.z.enum(generalCodes.CURRENCY_CODES).array()]).optional(),
553
562
  filterMinAmount: zod.z.number().positive().optional(),
554
563
  filterMaxAmount: zod.z.number().positive().optional(),
@@ -586,7 +595,7 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
586
595
  // 14 days
587
596
  this.COMPLETED_POLLING_WINDOW_MS = 7 * 24 * 60 * 60 * 1e3;
588
597
  this.allowedProviders = config.allowedProviders;
589
- this.db = d1.drizzle(this.env.BANK_D1, { schema: drizzle.tables });
598
+ this.db = d1.drizzle(this.env.BANK_D1, { schema: database_schema.tables });
590
599
  }
591
600
  async _getAccounts(filters) {
592
601
  return await getAllAccountsQuery(this.db, filters);
@@ -619,7 +628,7 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
619
628
  connectorKey: acc.connectorKey,
620
629
  bankRefId: acc.bankRefId
621
630
  }));
622
- resolveCredentials = await drizzle.createCredentialsResolver(this.db, this.env);
631
+ resolveCredentials = await credentialsResolver.createCredentialsResolver(this.db, this.env);
623
632
  }
624
633
  return mock_connector.initiateConnector({
625
634
  bank: connectorKey,
@@ -760,31 +769,15 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
760
769
  const paymentId = pr.bankRefId ?? pr.id;
761
770
  const newStatus = await connector.getPaymentStatus({ paymentId });
762
771
  if (newStatus !== pr.status) {
763
- await drizzle.updatePaymentRequestStatusCommand(this.db, {
772
+ await credentialsResolver.updatePaymentRequestStatusCommand(this.db, {
764
773
  id: pr.id,
765
774
  status: newStatus,
766
- processedAt: newStatus === "COMPLETED" ? /* @__PURE__ */ new Date() : void 0
775
+ processedAt: database_schema.isProcessedStatus(newStatus) ? /* @__PURE__ */ new Date() : void 0
767
776
  }).command.execute();
768
777
  statusChanged++;
769
- const signalMap = {
770
- OPENED: "paymentRequestOpened",
771
- AUTHORIZED: "paymentRequestAuthorized",
772
- COMPLETED: "paymentRequestCompleted",
773
- BOOKED: "paymentRequestBooked",
774
- SETTLED: "paymentRequestSettled",
775
- REJECTED: "paymentRequestRejected",
776
- CLOSED: "paymentRequestClosed"
777
- };
778
- eventsToEmit.push({
779
- eventType: "BANK_PAYMENT_REQUEST",
780
- eventSignal: signalMap[newStatus],
781
- paymentRequest: { ...pr, status: newStatus },
782
- metadata: {
783
- correlationId: pr.correlationId,
784
- entityId: pr.id,
785
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
786
- }
787
- });
778
+ eventsToEmit.push(
779
+ buildPaymentRequestEvent({ ...pr, status: newStatus })
780
+ );
788
781
  }
789
782
  processed++;
790
783
  } catch (err) {
@@ -815,40 +808,25 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
815
808
  */
816
809
  async _deriveBatchStatus(batchId) {
817
810
  const [allPRs, batch] = await Promise.all([
818
- drizzle.getPaymentRequestsByBatchIdQuery(this.db, { batchId }),
819
- drizzle.getBatchByIdQuery(this.db, { batchId })
811
+ credentialsResolver.getPaymentRequestsByBatchIdQuery(this.db, { batchId }),
812
+ credentialsResolver.getBatchByIdQuery(this.db, { batchId })
820
813
  ]);
821
814
  if (!batch || batch.status === "COMPLETED" || batch.status === "FAILED")
822
815
  return;
823
816
  if (allPRs.length === 0) return;
824
- const terminalStatuses = [
825
- "SETTLED",
826
- "REJECTED",
827
- "CLOSED"
828
- ];
829
- const authorizedOrHigher = [
830
- "AUTHORIZED",
831
- "COMPLETED",
832
- "BOOKED",
833
- "SETTLED"
834
- ];
835
817
  const allTerminal = allPRs.every(
836
- (pr) => terminalStatuses.includes(pr.status)
837
- );
838
- const allAuthorizedOrHigher = allPRs.every(
839
- (pr) => [...authorizedOrHigher, ...terminalStatuses].includes(
840
- pr.status
841
- )
818
+ (pr) => database_schema.isTerminalStatus(pr.status)
842
819
  );
820
+ const allAuthorizedOrHigher = allPRs.every((pr) => pr.status !== "OPENED");
843
821
  if (allTerminal) {
844
822
  const hasFailed = allPRs.some(
845
823
  (pr) => pr.status === "REJECTED" || pr.status === "CLOSED"
846
824
  );
847
- await drizzle.upsertBatchCommand(this.db, {
825
+ await credentialsResolver.upsertBatchCommand(this.db, {
848
826
  batch: { ...batch, status: hasFailed ? "FAILED" : "COMPLETED" }
849
827
  }).command.execute();
850
828
  } else if (allAuthorizedOrHigher && batch.status !== "AUTHORIZED") {
851
- await drizzle.upsertBatchCommand(this.db, {
829
+ await credentialsResolver.upsertBatchCommand(this.db, {
852
830
  batch: { ...batch, status: "AUTHORIZED" }
853
831
  }).command.execute();
854
832
  }
@@ -858,7 +836,7 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
858
836
  null,
859
837
  { successMessage: "Payment request statuses updated" },
860
838
  async () => {
861
- const nonTerminalPRs = await getNonTerminalPaymentRequestsQuery(this.db);
839
+ const nonTerminalPRs = await database_schema.getNonTerminalPaymentRequestsQuery(this.db);
862
840
  if (nonTerminalPRs.length === 0) {
863
841
  return { processed: 0, statusChanged: 0 };
864
842
  }
@@ -868,7 +846,7 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
868
846
  const status = pr.status;
869
847
  if (status === "OPENED" || status === "AUTHORIZED") {
870
848
  if (pr.createdAt != null && now - pr.createdAt.getTime() > this.POLLING_TIMEOUT_MS) {
871
- await drizzle.updatePaymentRequestStatusCommand(this.db, {
849
+ await credentialsResolver.updatePaymentRequestStatusCommand(this.db, {
872
850
  id: pr.id,
873
851
  status: "CLOSED",
874
852
  statusReason: "Polling timeout: no final status received after 14 days",
@@ -910,7 +888,7 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
910
888
  });
911
889
  if (pr) connectorKey = pr.connectorKey;
912
890
  } else if (batchId) {
913
- const batchPrs = await drizzle.getPaymentRequestsByBatchIdQuery(this.db, {
891
+ const batchPrs = await credentialsResolver.getPaymentRequestsByBatchIdQuery(this.db, {
914
892
  batchId
915
893
  });
916
894
  if (batchPrs.length > 0) connectorKey = batchPrs[0].connectorKey;
@@ -939,7 +917,7 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
939
917
  prIds.push(result.paymentRequestId);
940
918
  }
941
919
  if (result.type === "batch") {
942
- const batchPayments = await drizzle.getPaymentRequestsByBatchIdQuery(
920
+ const batchPayments = await credentialsResolver.getPaymentRequestsByBatchIdQuery(
943
921
  this.db,
944
922
  { batchId: result.batchId }
945
923
  );
@@ -1090,7 +1068,7 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
1090
1068
  accountId: acc.id
1091
1069
  }).command
1092
1070
  );
1093
- const encryptionKey = await drizzle.importAesKey(
1071
+ const encryptionKey = await credentialsResolver.importAesKey(
1094
1072
  (await this.env.SECRETS_STORE.get({
1095
1073
  secretName: "BANK_SERVICE_ENCRYPTION_KEY"
1096
1074
  })).data?.secretValue || ""
@@ -1201,7 +1179,7 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
1201
1179
  debtor,
1202
1180
  debtorIban: debtor.iban
1203
1181
  };
1204
- const { command } = drizzle.createPaymentCommand(this.db, { payment });
1182
+ const { command } = credentialsResolver.createPaymentCommand(this.db, { payment });
1205
1183
  const createdPayment = await command.execute().then(backendSdk.first);
1206
1184
  this.logQueuePush({ payment, isPaymentExecuted: true });
1207
1185
  await this.pushToQueue(this.env.QUEUE_BUS_QUEUE, {
@@ -1291,17 +1269,19 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
1291
1269
  try {
1292
1270
  initiated = await initiate();
1293
1271
  } catch (err) {
1294
- await drizzle.updatePaymentRequestStatusCommand(this.db, {
1272
+ await credentialsResolver.updatePaymentRequestStatusCommand(this.db, {
1295
1273
  id: incomingPayment.id,
1296
1274
  deletedAt: /* @__PURE__ */ new Date()
1297
1275
  }).command.execute();
1298
1276
  throw err;
1299
1277
  }
1300
- await drizzle.updatePaymentRequestStatusCommand(this.db, {
1278
+ await credentialsResolver.updatePaymentRequestStatusCommand(this.db, {
1301
1279
  id: incomingPayment.id,
1280
+ status: initiated.payment.status,
1302
1281
  bankRefId: initiated.payment.bankRefId,
1303
1282
  initiatedAt: initiated.payment.initiatedAt,
1304
- authorizationUrl: initiated.authorizationUrl
1283
+ authorizationUrl: initiated.authorizationUrl,
1284
+ processedAt: database_schema.isProcessedStatus(initiated.payment.status) ? /* @__PURE__ */ new Date() : void 0
1305
1285
  }).command.execute();
1306
1286
  const paymentRequest = await getPaymentRequestByIdQuery(this.db, {
1307
1287
  paymentRequestId: incomingPayment.id
@@ -1313,6 +1293,12 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
1313
1293
  status: 500
1314
1294
  });
1315
1295
  }
1296
+ if (initiated.payment.status !== "OPENED") {
1297
+ await this.pushToQueue(
1298
+ this.env.QUEUE_BUS_QUEUE,
1299
+ buildPaymentRequestEvent(paymentRequest)
1300
+ );
1301
+ }
1316
1302
  return {
1317
1303
  paymentRequest,
1318
1304
  authorizationUrl: initiated.authorizationUrl
@@ -1405,7 +1391,7 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
1405
1391
  );
1406
1392
  const batchId = backendSdk.uuidv4();
1407
1393
  const batchMode = connector.supportsBatch(paymentType) ? "NATIVE" : "SINGLE";
1408
- const batchCmd = drizzle.upsertBatchCommand(this.db, {
1394
+ const batchCmd = credentialsResolver.upsertBatchCommand(this.db, {
1409
1395
  batch: {
1410
1396
  id: batchId,
1411
1397
  authorizationUrls: [],
@@ -1442,12 +1428,12 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
1442
1428
  result = await initiateBatch();
1443
1429
  } catch (err) {
1444
1430
  const deletePrCmds = incomingPayments.map(
1445
- (p) => drizzle.updatePaymentRequestStatusCommand(this.db, {
1431
+ (p) => credentialsResolver.updatePaymentRequestStatusCommand(this.db, {
1446
1432
  id: p.id,
1447
1433
  deletedAt: /* @__PURE__ */ new Date()
1448
1434
  }).command
1449
1435
  );
1450
- const deleteBatchCmd = drizzle.upsertBatchCommand(this.db, {
1436
+ const deleteBatchCmd = credentialsResolver.upsertBatchCommand(this.db, {
1451
1437
  batch: {
1452
1438
  id: batchId,
1453
1439
  accountId: account.id,
@@ -1462,14 +1448,16 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
1462
1448
  const { authorizationUrls, payments: preparedPayments } = result;
1463
1449
  const isPerPaymentFallback = authorizationUrls.length === preparedPayments.length;
1464
1450
  const updatePrCmds = preparedPayments.map(
1465
- (pp, i) => drizzle.updatePaymentRequestStatusCommand(this.db, {
1451
+ (pp, i) => credentialsResolver.updatePaymentRequestStatusCommand(this.db, {
1466
1452
  id: pp.id,
1453
+ status: pp.status,
1467
1454
  bankRefId: pp.bankRefId,
1468
1455
  initiatedAt: pp.initiatedAt,
1469
- authorizationUrl: isPerPaymentFallback ? authorizationUrls[i] : authorizationUrls[0]
1456
+ authorizationUrl: isPerPaymentFallback ? authorizationUrls[i] : authorizationUrls[0],
1457
+ processedAt: database_schema.isProcessedStatus(pp.status) ? /* @__PURE__ */ new Date() : void 0
1470
1458
  }).command
1471
1459
  );
1472
- const updateBatchCmd = drizzle.upsertBatchCommand(this.db, {
1460
+ const updateBatchCmd = credentialsResolver.upsertBatchCommand(this.db, {
1473
1461
  batch: {
1474
1462
  id: batchId,
1475
1463
  accountId: account.id,
@@ -1482,8 +1470,8 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
1482
1470
  }).command;
1483
1471
  await this.db.batch([updateBatchCmd, ...updatePrCmds]);
1484
1472
  const [updatedBatch, paymentRequests] = await Promise.all([
1485
- drizzle.getBatchByIdQuery(this.db, { batchId }),
1486
- drizzle.getPaymentRequestsByBatchIdQuery(this.db, { batchId })
1473
+ credentialsResolver.getBatchByIdQuery(this.db, { batchId }),
1474
+ credentialsResolver.getPaymentRequestsByBatchIdQuery(this.db, { batchId })
1487
1475
  ]);
1488
1476
  if (!updatedBatch) {
1489
1477
  throw backendSdk.createInternalError(null, {
@@ -1492,6 +1480,13 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
1492
1480
  status: 500
1493
1481
  });
1494
1482
  }
1483
+ const prEvents = paymentRequests.filter((pr) => pr.status !== "OPENED").map((pr) => buildPaymentRequestEvent(pr));
1484
+ if (prEvents.length > 0) {
1485
+ await this.pushToQueue(
1486
+ this.env.QUEUE_BUS_QUEUE,
1487
+ prEvents
1488
+ );
1489
+ }
1495
1490
  return { ...updatedBatch, paymentRequests };
1496
1491
  }
1497
1492
  );
@@ -1548,11 +1543,11 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
1548
1543
  if (includePendingPaymentRequestCount) {
1549
1544
  const [row] = await this.db.select({
1550
1545
  count: drizzleOrm.sql`count(*)`
1551
- }).from(drizzle.tables.paymentRequest).where(
1546
+ }).from(database_schema.tables.paymentRequest).where(
1552
1547
  drizzleOrm.and(
1553
- drizzleOrm.eq(drizzle.tables.paymentRequest.accountId, a.id),
1554
- drizzleOrm.eq(drizzle.tables.paymentRequest.status, "OPENED"),
1555
- drizzleOrm.isNull(drizzle.tables.paymentRequest.deletedAt)
1548
+ drizzleOrm.eq(database_schema.tables.paymentRequest.accountId, a.id),
1549
+ drizzleOrm.eq(database_schema.tables.paymentRequest.status, "OPENED"),
1550
+ drizzleOrm.isNull(database_schema.tables.paymentRequest.deletedAt)
1556
1551
  )
1557
1552
  );
1558
1553
  result.pendingPaymentRequestCount = row?.count ?? 0;
@@ -1594,7 +1589,7 @@ let BankServiceBase = class extends backendSdk.develitWorker(cloudflare_workers.
1594
1589
  { data: input, schema: disconnectAccountInputSchema },
1595
1590
  { successMessage: "Account disconnected successfully" },
1596
1591
  async ({ accountId }) => {
1597
- const account = await drizzle.getAccountByIdQuery(this.db, { accountId });
1592
+ const account = await credentialsResolver.getAccountByIdQuery(this.db, { accountId });
1598
1593
  if (!account) {
1599
1594
  throw backendSdk.createInternalError(null, {
1600
1595
  message: "Account not found",