@adaptic/backend-legacy 0.0.903 → 0.0.905

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 (229) hide show
  1. package/ABTest.cjs +291 -63
  2. package/Account.cjs +291 -63
  3. package/AccountLinkingRequest.cjs +291 -63
  4. package/Action.cjs +291 -63
  5. package/Alert.cjs +291 -63
  6. package/Allocation.cjs +291 -63
  7. package/AlpacaAccount.cjs +291 -63
  8. package/AnalyticsConfiguration.cjs +291 -63
  9. package/AnalyticsSnapshot.cjs +291 -63
  10. package/Asset.cjs +291 -63
  11. package/AuditLog.cjs +291 -63
  12. package/Authenticator.cjs +291 -63
  13. package/Configuration.cjs +291 -63
  14. package/ConflictEvent.cjs +291 -63
  15. package/ConnectionHealthSnapshot.cjs +291 -63
  16. package/Customer.cjs +291 -63
  17. package/DeadLetterMessage.cjs +291 -63
  18. package/EconomicEvent.cjs +291 -63
  19. package/Event.cjs +291 -63
  20. package/EventSnapshot.cjs +291 -63
  21. package/FeatureImportanceAnalysis.cjs +291 -63
  22. package/InstitutionalFlowSignal.cjs +291 -63
  23. package/InstitutionalHolding.cjs +291 -63
  24. package/InstitutionalSentimentAlerts.cjs +291 -63
  25. package/InstitutionalSentimentErrors.cjs +291 -63
  26. package/InstitutionalSentimentHistory.cjs +291 -63
  27. package/InstitutionalSentimentMetrics.cjs +291 -63
  28. package/InviteToken.cjs +291 -63
  29. package/LinkedProvider.cjs +291 -63
  30. package/MLTrainingData.cjs +291 -63
  31. package/MarketSentiment.cjs +291 -63
  32. package/ModelArtifact.cjs +291 -63
  33. package/ModelVersion.cjs +291 -63
  34. package/ModelVersionArtifact.cjs +291 -63
  35. package/NewsArticle.cjs +291 -63
  36. package/NewsArticleAssetSentiment.cjs +291 -63
  37. package/OptionsContract.cjs +291 -63
  38. package/OptionsGreeksHistory.cjs +291 -63
  39. package/OptionsPosition.cjs +291 -63
  40. package/OptionsTradeExecution.cjs +291 -63
  41. package/PortfolioGreeksHistory.cjs +291 -63
  42. package/ScheduledOptionOrder.cjs +291 -63
  43. package/Session.cjs +291 -63
  44. package/SignalGeneratorMetrics.cjs +291 -63
  45. package/SignalLineage.cjs +291 -63
  46. package/SignalOutcome.cjs +291 -63
  47. package/SignalPriorityQueue.cjs +291 -63
  48. package/SyncEvent.cjs +291 -63
  49. package/SystemAlert.cjs +291 -63
  50. package/Trade.cjs +291 -63
  51. package/TradeAuditEvent.cjs +291 -63
  52. package/TradeExecutionHistory.cjs +291 -63
  53. package/User.cjs +291 -63
  54. package/VerificationToken.cjs +291 -63
  55. package/WaitlistEntry.cjs +291 -63
  56. package/esm/ABTest.d.ts.map +1 -1
  57. package/esm/ABTest.js.map +1 -1
  58. package/esm/ABTest.mjs +255 -27
  59. package/esm/Account.d.ts.map +1 -1
  60. package/esm/Account.js.map +1 -1
  61. package/esm/Account.mjs +255 -27
  62. package/esm/AccountLinkingRequest.d.ts.map +1 -1
  63. package/esm/AccountLinkingRequest.js.map +1 -1
  64. package/esm/AccountLinkingRequest.mjs +255 -27
  65. package/esm/Action.d.ts.map +1 -1
  66. package/esm/Action.js.map +1 -1
  67. package/esm/Action.mjs +255 -27
  68. package/esm/Alert.d.ts.map +1 -1
  69. package/esm/Alert.js.map +1 -1
  70. package/esm/Alert.mjs +255 -27
  71. package/esm/Allocation.d.ts.map +1 -1
  72. package/esm/Allocation.js.map +1 -1
  73. package/esm/Allocation.mjs +255 -27
  74. package/esm/AlpacaAccount.d.ts.map +1 -1
  75. package/esm/AlpacaAccount.js.map +1 -1
  76. package/esm/AlpacaAccount.mjs +255 -27
  77. package/esm/AnalyticsConfiguration.d.ts.map +1 -1
  78. package/esm/AnalyticsConfiguration.js.map +1 -1
  79. package/esm/AnalyticsConfiguration.mjs +255 -27
  80. package/esm/AnalyticsSnapshot.d.ts.map +1 -1
  81. package/esm/AnalyticsSnapshot.js.map +1 -1
  82. package/esm/AnalyticsSnapshot.mjs +255 -27
  83. package/esm/Asset.d.ts.map +1 -1
  84. package/esm/Asset.js.map +1 -1
  85. package/esm/Asset.mjs +255 -27
  86. package/esm/AuditLog.d.ts.map +1 -1
  87. package/esm/AuditLog.js.map +1 -1
  88. package/esm/AuditLog.mjs +255 -27
  89. package/esm/Authenticator.d.ts.map +1 -1
  90. package/esm/Authenticator.js.map +1 -1
  91. package/esm/Authenticator.mjs +255 -27
  92. package/esm/Configuration.d.ts.map +1 -1
  93. package/esm/Configuration.js.map +1 -1
  94. package/esm/Configuration.mjs +255 -27
  95. package/esm/ConflictEvent.d.ts.map +1 -1
  96. package/esm/ConflictEvent.js.map +1 -1
  97. package/esm/ConflictEvent.mjs +255 -27
  98. package/esm/ConnectionHealthSnapshot.d.ts.map +1 -1
  99. package/esm/ConnectionHealthSnapshot.js.map +1 -1
  100. package/esm/ConnectionHealthSnapshot.mjs +255 -27
  101. package/esm/Customer.d.ts.map +1 -1
  102. package/esm/Customer.js.map +1 -1
  103. package/esm/Customer.mjs +255 -27
  104. package/esm/DeadLetterMessage.d.ts.map +1 -1
  105. package/esm/DeadLetterMessage.js.map +1 -1
  106. package/esm/DeadLetterMessage.mjs +255 -27
  107. package/esm/EconomicEvent.d.ts.map +1 -1
  108. package/esm/EconomicEvent.js.map +1 -1
  109. package/esm/EconomicEvent.mjs +255 -27
  110. package/esm/Event.d.ts.map +1 -1
  111. package/esm/Event.js.map +1 -1
  112. package/esm/Event.mjs +255 -27
  113. package/esm/EventSnapshot.d.ts.map +1 -1
  114. package/esm/EventSnapshot.js.map +1 -1
  115. package/esm/EventSnapshot.mjs +255 -27
  116. package/esm/FeatureImportanceAnalysis.d.ts.map +1 -1
  117. package/esm/FeatureImportanceAnalysis.js.map +1 -1
  118. package/esm/FeatureImportanceAnalysis.mjs +255 -27
  119. package/esm/InstitutionalFlowSignal.d.ts.map +1 -1
  120. package/esm/InstitutionalFlowSignal.js.map +1 -1
  121. package/esm/InstitutionalFlowSignal.mjs +255 -27
  122. package/esm/InstitutionalHolding.d.ts.map +1 -1
  123. package/esm/InstitutionalHolding.js.map +1 -1
  124. package/esm/InstitutionalHolding.mjs +255 -27
  125. package/esm/InstitutionalSentimentAlerts.d.ts.map +1 -1
  126. package/esm/InstitutionalSentimentAlerts.js.map +1 -1
  127. package/esm/InstitutionalSentimentAlerts.mjs +255 -27
  128. package/esm/InstitutionalSentimentErrors.d.ts.map +1 -1
  129. package/esm/InstitutionalSentimentErrors.js.map +1 -1
  130. package/esm/InstitutionalSentimentErrors.mjs +255 -27
  131. package/esm/InstitutionalSentimentHistory.d.ts.map +1 -1
  132. package/esm/InstitutionalSentimentHistory.js.map +1 -1
  133. package/esm/InstitutionalSentimentHistory.mjs +255 -27
  134. package/esm/InstitutionalSentimentMetrics.d.ts.map +1 -1
  135. package/esm/InstitutionalSentimentMetrics.js.map +1 -1
  136. package/esm/InstitutionalSentimentMetrics.mjs +255 -27
  137. package/esm/InviteToken.d.ts.map +1 -1
  138. package/esm/InviteToken.js.map +1 -1
  139. package/esm/InviteToken.mjs +255 -27
  140. package/esm/LinkedProvider.d.ts.map +1 -1
  141. package/esm/LinkedProvider.js.map +1 -1
  142. package/esm/LinkedProvider.mjs +255 -27
  143. package/esm/MLTrainingData.d.ts.map +1 -1
  144. package/esm/MLTrainingData.js.map +1 -1
  145. package/esm/MLTrainingData.mjs +255 -27
  146. package/esm/MarketSentiment.d.ts.map +1 -1
  147. package/esm/MarketSentiment.js.map +1 -1
  148. package/esm/MarketSentiment.mjs +255 -27
  149. package/esm/ModelArtifact.d.ts.map +1 -1
  150. package/esm/ModelArtifact.js.map +1 -1
  151. package/esm/ModelArtifact.mjs +255 -27
  152. package/esm/ModelVersion.d.ts.map +1 -1
  153. package/esm/ModelVersion.js.map +1 -1
  154. package/esm/ModelVersion.mjs +255 -27
  155. package/esm/ModelVersionArtifact.d.ts.map +1 -1
  156. package/esm/ModelVersionArtifact.js.map +1 -1
  157. package/esm/ModelVersionArtifact.mjs +255 -27
  158. package/esm/NewsArticle.d.ts.map +1 -1
  159. package/esm/NewsArticle.js.map +1 -1
  160. package/esm/NewsArticle.mjs +255 -27
  161. package/esm/NewsArticleAssetSentiment.d.ts.map +1 -1
  162. package/esm/NewsArticleAssetSentiment.js.map +1 -1
  163. package/esm/NewsArticleAssetSentiment.mjs +255 -27
  164. package/esm/OptionsContract.d.ts.map +1 -1
  165. package/esm/OptionsContract.js.map +1 -1
  166. package/esm/OptionsContract.mjs +255 -27
  167. package/esm/OptionsGreeksHistory.d.ts.map +1 -1
  168. package/esm/OptionsGreeksHistory.js.map +1 -1
  169. package/esm/OptionsGreeksHistory.mjs +255 -27
  170. package/esm/OptionsPosition.d.ts.map +1 -1
  171. package/esm/OptionsPosition.js.map +1 -1
  172. package/esm/OptionsPosition.mjs +255 -27
  173. package/esm/OptionsTradeExecution.d.ts.map +1 -1
  174. package/esm/OptionsTradeExecution.js.map +1 -1
  175. package/esm/OptionsTradeExecution.mjs +255 -27
  176. package/esm/PortfolioGreeksHistory.d.ts.map +1 -1
  177. package/esm/PortfolioGreeksHistory.js.map +1 -1
  178. package/esm/PortfolioGreeksHistory.mjs +255 -27
  179. package/esm/ScheduledOptionOrder.d.ts.map +1 -1
  180. package/esm/ScheduledOptionOrder.js.map +1 -1
  181. package/esm/ScheduledOptionOrder.mjs +255 -27
  182. package/esm/Session.d.ts.map +1 -1
  183. package/esm/Session.js.map +1 -1
  184. package/esm/Session.mjs +255 -27
  185. package/esm/SignalGeneratorMetrics.d.ts.map +1 -1
  186. package/esm/SignalGeneratorMetrics.js.map +1 -1
  187. package/esm/SignalGeneratorMetrics.mjs +255 -27
  188. package/esm/SignalLineage.d.ts.map +1 -1
  189. package/esm/SignalLineage.js.map +1 -1
  190. package/esm/SignalLineage.mjs +255 -27
  191. package/esm/SignalOutcome.d.ts.map +1 -1
  192. package/esm/SignalOutcome.js.map +1 -1
  193. package/esm/SignalOutcome.mjs +255 -27
  194. package/esm/SignalPriorityQueue.d.ts.map +1 -1
  195. package/esm/SignalPriorityQueue.js.map +1 -1
  196. package/esm/SignalPriorityQueue.mjs +255 -27
  197. package/esm/SyncEvent.d.ts.map +1 -1
  198. package/esm/SyncEvent.js.map +1 -1
  199. package/esm/SyncEvent.mjs +255 -27
  200. package/esm/SystemAlert.d.ts.map +1 -1
  201. package/esm/SystemAlert.js.map +1 -1
  202. package/esm/SystemAlert.mjs +255 -27
  203. package/esm/Trade.d.ts.map +1 -1
  204. package/esm/Trade.js.map +1 -1
  205. package/esm/Trade.mjs +255 -27
  206. package/esm/TradeAuditEvent.d.ts.map +1 -1
  207. package/esm/TradeAuditEvent.js.map +1 -1
  208. package/esm/TradeAuditEvent.mjs +255 -27
  209. package/esm/TradeExecutionHistory.d.ts.map +1 -1
  210. package/esm/TradeExecutionHistory.js.map +1 -1
  211. package/esm/TradeExecutionHistory.mjs +255 -27
  212. package/esm/User.d.ts.map +1 -1
  213. package/esm/User.js.map +1 -1
  214. package/esm/User.mjs +255 -27
  215. package/esm/VerificationToken.d.ts.map +1 -1
  216. package/esm/VerificationToken.js.map +1 -1
  217. package/esm/VerificationToken.mjs +255 -27
  218. package/esm/WaitlistEntry.d.ts.map +1 -1
  219. package/esm/WaitlistEntry.js.map +1 -1
  220. package/esm/WaitlistEntry.mjs +255 -27
  221. package/esm/middleware/audit-logger.d.ts +0 -7
  222. package/esm/middleware/audit-logger.d.ts.map +1 -1
  223. package/esm/middleware/audit-logger.js.map +1 -1
  224. package/esm/middleware/audit-logger.mjs +5 -3
  225. package/esm/prismaClient.d.ts.map +1 -1
  226. package/esm/prismaClient.js.map +1 -1
  227. package/esm/prismaClient.mjs +38 -9
  228. package/package.json +1 -1
  229. package/prismaClient.cjs +38 -9
@@ -60,7 +60,7 @@ exports.DeadLetterMessage = {
60
60
  * @returns The created DeadLetterMessage or null.
61
61
  */
62
62
  async create(props, globalClient) {
63
- var _a, _b, _c, _d, _e;
63
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
64
64
  // Maximum number of retries for database connection issues
65
65
  const MAX_RETRIES = 3;
66
66
  let retryCount = 0;
@@ -134,21 +134,52 @@ exports.DeadLetterMessage = {
134
134
  }
135
135
  catch (error) {
136
136
  lastError = error;
137
+ // Check for constraint violations FIRST - these are NEVER retryable
138
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
139
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
140
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
141
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
142
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
143
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
144
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
145
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
146
+ if (isConstraintViolation) {
147
+ const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
148
+ logger_1.logger.error("Non-retryable constraint violation in createOneDeadLetterMessage", {
149
+ operation: 'createOneDeadLetterMessage',
150
+ model: 'DeadLetterMessage',
151
+ error: String(error),
152
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
153
+ errorCategory: 'CONSTRAINT_VIOLATION',
154
+ isRetryable: false,
155
+ });
156
+ throw error;
157
+ }
137
158
  // Check if this is a database connection error that we should retry
138
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
139
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
140
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
141
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
142
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
159
+ const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
160
+ ((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
161
+ ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
162
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
163
+ (error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
143
164
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
144
165
  retryCount++;
145
166
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
146
- logger_1.logger.warn("Database connection error, retrying...");
167
+ logger_1.logger.warn("Database connection error in createOneDeadLetterMessage, retrying...", {
168
+ operation: 'createOneDeadLetterMessage',
169
+ model: 'DeadLetterMessage',
170
+ attempt: retryCount,
171
+ maxRetries: MAX_RETRIES,
172
+ });
147
173
  await new Promise(resolve => setTimeout(resolve, delay));
148
174
  continue;
149
175
  }
150
- // Log the error and rethrow
151
- logger_1.logger.error("Database error occurred", { error: String(error) });
176
+ // Log structured error details and rethrow
177
+ logger_1.logger.error("Database create operation failed", {
178
+ operation: 'createOneDeadLetterMessage',
179
+ model: 'DeadLetterMessage',
180
+ error: String(error),
181
+ isRetryable: isConnectionError,
182
+ });
152
183
  throw error;
153
184
  }
154
185
  }
@@ -163,7 +194,7 @@ exports.DeadLetterMessage = {
163
194
  * @returns The count of created records or null.
164
195
  */
165
196
  async createMany(props, globalClient) {
166
- var _a, _b, _c, _d, _e;
197
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
167
198
  // Maximum number of retries for database connection issues
168
199
  const MAX_RETRIES = 3;
169
200
  let retryCount = 0;
@@ -236,21 +267,52 @@ exports.DeadLetterMessage = {
236
267
  }
237
268
  catch (error) {
238
269
  lastError = error;
270
+ // Check for constraint violations FIRST - these are NEVER retryable
271
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
272
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
273
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
274
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
275
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
276
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
277
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
278
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
279
+ if (isConstraintViolation) {
280
+ const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
281
+ logger_1.logger.error("Non-retryable constraint violation in createManyDeadLetterMessage", {
282
+ operation: 'createManyDeadLetterMessage',
283
+ model: 'DeadLetterMessage',
284
+ error: String(error),
285
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
286
+ errorCategory: 'CONSTRAINT_VIOLATION',
287
+ isRetryable: false,
288
+ });
289
+ throw error;
290
+ }
239
291
  // Check if this is a database connection error that we should retry
240
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
241
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
242
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
243
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
244
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
292
+ const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
293
+ ((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
294
+ ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
295
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
296
+ (error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
245
297
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
246
298
  retryCount++;
247
299
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
248
- logger_1.logger.warn("Database connection error, retrying...");
300
+ logger_1.logger.warn("Database connection error in createManyDeadLetterMessage, retrying...", {
301
+ operation: 'createManyDeadLetterMessage',
302
+ model: 'DeadLetterMessage',
303
+ attempt: retryCount,
304
+ maxRetries: MAX_RETRIES,
305
+ });
249
306
  await new Promise(resolve => setTimeout(resolve, delay));
250
307
  continue;
251
308
  }
252
- // Log the error and rethrow
253
- logger_1.logger.error("Database error occurred", { error: String(error) });
309
+ // Log structured error details and rethrow
310
+ logger_1.logger.error("Database createMany operation failed", {
311
+ operation: 'createManyDeadLetterMessage',
312
+ model: 'DeadLetterMessage',
313
+ error: String(error),
314
+ isRetryable: isConnectionError,
315
+ });
254
316
  throw error;
255
317
  }
256
318
  }
@@ -265,7 +327,7 @@ exports.DeadLetterMessage = {
265
327
  * @returns The updated DeadLetterMessage or null.
266
328
  */
267
329
  async update(props, globalClient) {
268
- var _a, _b, _c, _d, _e;
330
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
269
331
  // Maximum number of retries for database connection issues
270
332
  const MAX_RETRIES = 3;
271
333
  let retryCount = 0;
@@ -416,21 +478,55 @@ exports.DeadLetterMessage = {
416
478
  }
417
479
  catch (error) {
418
480
  lastError = error;
481
+ // Check for constraint violations FIRST - these are NEVER retryable
482
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
483
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
484
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
485
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
486
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
487
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
488
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
489
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
490
+ if (isConstraintViolation) {
491
+ const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
492
+ logger_1.logger.error("Non-retryable constraint violation in updateOneDeadLetterMessage", {
493
+ operation: 'updateOneDeadLetterMessage',
494
+ model: 'DeadLetterMessage',
495
+ error: String(error),
496
+ recordId: props.id,
497
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
498
+ errorCategory: 'CONSTRAINT_VIOLATION',
499
+ isRetryable: false,
500
+ });
501
+ throw error;
502
+ }
419
503
  // Check if this is a database connection error that we should retry
420
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
421
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
422
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
423
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
424
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
504
+ const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
505
+ ((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
506
+ ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
507
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
508
+ (error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
425
509
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
426
510
  retryCount++;
427
511
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
428
- logger_1.logger.warn("Database connection error, retrying...");
512
+ logger_1.logger.warn("Database connection error in updateOneDeadLetterMessage, retrying...", {
513
+ operation: 'updateOneDeadLetterMessage',
514
+ model: 'DeadLetterMessage',
515
+ attempt: retryCount,
516
+ maxRetries: MAX_RETRIES,
517
+ recordId: props.id,
518
+ });
429
519
  await new Promise(resolve => setTimeout(resolve, delay));
430
520
  continue;
431
521
  }
432
- // Log the error and rethrow
433
- logger_1.logger.error("Database error occurred", { error: String(error) });
522
+ // Log structured error details and rethrow
523
+ logger_1.logger.error("Database update operation failed", {
524
+ operation: 'updateOneDeadLetterMessage',
525
+ model: 'DeadLetterMessage',
526
+ error: String(error),
527
+ recordId: props.id,
528
+ isRetryable: isConnectionError,
529
+ });
434
530
  throw error;
435
531
  }
436
532
  }
@@ -445,7 +541,7 @@ exports.DeadLetterMessage = {
445
541
  * @returns The updated DeadLetterMessage or null.
446
542
  */
447
543
  async upsert(props, globalClient) {
448
- var _a, _b, _c, _d, _e;
544
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
449
545
  // Maximum number of retries for database connection issues
450
546
  const MAX_RETRIES = 3;
451
547
  let retryCount = 0;
@@ -622,21 +718,55 @@ exports.DeadLetterMessage = {
622
718
  }
623
719
  catch (error) {
624
720
  lastError = error;
721
+ // Check for constraint violations FIRST - these are NEVER retryable
722
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
723
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
724
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
725
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
726
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
727
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
728
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
729
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
730
+ if (isConstraintViolation) {
731
+ const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
732
+ logger_1.logger.error("Non-retryable constraint violation in upsertOneDeadLetterMessage", {
733
+ operation: 'upsertOneDeadLetterMessage',
734
+ model: 'DeadLetterMessage',
735
+ error: String(error),
736
+ recordId: props.id,
737
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
738
+ errorCategory: 'CONSTRAINT_VIOLATION',
739
+ isRetryable: false,
740
+ });
741
+ throw error;
742
+ }
625
743
  // Check if this is a database connection error that we should retry
626
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
627
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
628
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
629
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
630
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
744
+ const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
745
+ ((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
746
+ ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
747
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
748
+ (error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
631
749
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
632
750
  retryCount++;
633
751
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
634
- logger_1.logger.warn("Database connection error, retrying...");
752
+ logger_1.logger.warn("Database connection error in upsertOneDeadLetterMessage, retrying...", {
753
+ operation: 'upsertOneDeadLetterMessage',
754
+ model: 'DeadLetterMessage',
755
+ attempt: retryCount,
756
+ maxRetries: MAX_RETRIES,
757
+ recordId: props.id,
758
+ });
635
759
  await new Promise(resolve => setTimeout(resolve, delay));
636
760
  continue;
637
761
  }
638
- // Log the error and rethrow
639
- logger_1.logger.error("Database error occurred", { error: String(error) });
762
+ // Log structured error details and rethrow
763
+ logger_1.logger.error("Database upsert operation failed", {
764
+ operation: 'upsertOneDeadLetterMessage',
765
+ model: 'DeadLetterMessage',
766
+ error: String(error),
767
+ recordId: props.id,
768
+ isRetryable: isConnectionError,
769
+ });
640
770
  throw error;
641
771
  }
642
772
  }
@@ -651,7 +781,7 @@ exports.DeadLetterMessage = {
651
781
  * @returns The count of created records or null.
652
782
  */
653
783
  async updateMany(props, globalClient) {
654
- var _a, _b, _c, _d, _e;
784
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
655
785
  // Maximum number of retries for database connection issues
656
786
  const MAX_RETRIES = 3;
657
787
  let retryCount = 0;
@@ -802,21 +932,52 @@ exports.DeadLetterMessage = {
802
932
  }
803
933
  catch (error) {
804
934
  lastError = error;
935
+ // Check for constraint violations FIRST - these are NEVER retryable
936
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
937
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
938
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
939
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
940
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
941
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
942
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
943
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
944
+ if (isConstraintViolation) {
945
+ const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
946
+ logger_1.logger.error("Non-retryable constraint violation in updateManyDeadLetterMessage", {
947
+ operation: 'updateManyDeadLetterMessage',
948
+ model: 'DeadLetterMessage',
949
+ error: String(error),
950
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
951
+ errorCategory: 'CONSTRAINT_VIOLATION',
952
+ isRetryable: false,
953
+ });
954
+ throw error;
955
+ }
805
956
  // Check if this is a database connection error that we should retry
806
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
807
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
808
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
809
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
810
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
957
+ const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
958
+ ((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
959
+ ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
960
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
961
+ (error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
811
962
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
812
963
  retryCount++;
813
964
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
814
- logger_1.logger.warn("Database connection error, retrying...");
965
+ logger_1.logger.warn("Database connection error in updateManyDeadLetterMessage, retrying...", {
966
+ operation: 'updateManyDeadLetterMessage',
967
+ model: 'DeadLetterMessage',
968
+ attempt: retryCount,
969
+ maxRetries: MAX_RETRIES,
970
+ });
815
971
  await new Promise(resolve => setTimeout(resolve, delay));
816
972
  continue;
817
973
  }
818
- // Log the error and rethrow
819
- logger_1.logger.error("Database error occurred", { error: String(error) });
974
+ // Log structured error details and rethrow
975
+ logger_1.logger.error("Database updateMany operation failed", {
976
+ operation: 'updateManyDeadLetterMessage',
977
+ model: 'DeadLetterMessage',
978
+ error: String(error),
979
+ isRetryable: isConnectionError,
980
+ });
820
981
  throw error;
821
982
  }
822
983
  }
@@ -831,7 +992,7 @@ exports.DeadLetterMessage = {
831
992
  * @returns The deleted DeadLetterMessage or null.
832
993
  */
833
994
  async delete(props, globalClient) {
834
- var _a, _b, _c, _d, _e;
995
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
835
996
  // Maximum number of retries for database connection issues
836
997
  const MAX_RETRIES = 3;
837
998
  let retryCount = 0;
@@ -875,21 +1036,58 @@ exports.DeadLetterMessage = {
875
1036
  }
876
1037
  catch (error) {
877
1038
  lastError = error;
1039
+ // Check for constraint violations FIRST - these are NEVER retryable
1040
+ // (e.g., foreign key constraints preventing deletion)
1041
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
1042
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
1043
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
1044
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
1045
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
1046
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
1047
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('23503')) ||
1048
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2002')) ||
1049
+ ((_j = error.message) === null || _j === void 0 ? void 0 : _j.includes('P2003')) ||
1050
+ ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('P2014'));
1051
+ if (isConstraintViolation) {
1052
+ const constraintMatch = (_l = error.message) === null || _l === void 0 ? void 0 : _l.match(/constraint\s+"([^"]+)"/);
1053
+ logger_1.logger.error("Non-retryable constraint violation in deleteOneDeadLetterMessage", {
1054
+ operation: 'deleteOneDeadLetterMessage',
1055
+ model: 'DeadLetterMessage',
1056
+ error: String(error),
1057
+ recordId: props.id,
1058
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
1059
+ errorCategory: 'CONSTRAINT_VIOLATION',
1060
+ isRetryable: false,
1061
+ });
1062
+ throw error;
1063
+ }
878
1064
  // Check if this is a database connection error that we should retry
879
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
880
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
881
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
882
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
883
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
1065
+ const isConnectionError = ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Server has closed the connection')) ||
1066
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Cannot reach database server')) ||
1067
+ ((_p = error.message) === null || _p === void 0 ? void 0 : _p.includes('Connection timed out')) ||
1068
+ ((_q = error.message) === null || _q === void 0 ? void 0 : _q.includes('Accelerate')) || // Prisma Accelerate proxy errors
1069
+ (error.networkError && ((_r = error.networkError.message) === null || _r === void 0 ? void 0 : _r.includes('Failed to fetch')));
884
1070
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
885
1071
  retryCount++;
886
1072
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
887
- logger_1.logger.warn("Database connection error, retrying...");
1073
+ logger_1.logger.warn("Database connection error in deleteOneDeadLetterMessage, retrying...", {
1074
+ operation: 'deleteOneDeadLetterMessage',
1075
+ model: 'DeadLetterMessage',
1076
+ attempt: retryCount,
1077
+ maxRetries: MAX_RETRIES,
1078
+ recordId: props.id,
1079
+ });
888
1080
  await new Promise(resolve => setTimeout(resolve, delay));
889
1081
  continue;
890
1082
  }
891
- // Log the error and rethrow
892
- logger_1.logger.error("Database error occurred", { error: String(error) });
1083
+ // Log structured error details and rethrow
1084
+ logger_1.logger.error("Database delete operation failed", {
1085
+ operation: 'deleteOneDeadLetterMessage',
1086
+ model: 'DeadLetterMessage',
1087
+ error: String(error),
1088
+ recordId: props.id,
1089
+ isRetryable: isConnectionError,
1090
+ });
893
1091
  throw error;
894
1092
  }
895
1093
  }
@@ -959,12 +1157,22 @@ exports.DeadLetterMessage = {
959
1157
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
960
1158
  retryCount++;
961
1159
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
962
- logger_1.logger.warn("Database connection error, retrying...");
1160
+ logger_1.logger.warn("Database connection error in getDeadLetterMessage, retrying...", {
1161
+ operation: 'getDeadLetterMessage',
1162
+ model: 'DeadLetterMessage',
1163
+ attempt: retryCount,
1164
+ maxRetries: MAX_RETRIES,
1165
+ });
963
1166
  await new Promise(resolve => setTimeout(resolve, delay));
964
1167
  continue;
965
1168
  }
966
- // Log the error and rethrow
967
- logger_1.logger.error("Database error occurred", { error: String(error) });
1169
+ // Log structured error details and rethrow
1170
+ logger_1.logger.error("Database get operation failed", {
1171
+ operation: 'getDeadLetterMessage',
1172
+ model: 'DeadLetterMessage',
1173
+ error: String(error),
1174
+ isRetryable: isConnectionError,
1175
+ });
968
1176
  throw error;
969
1177
  }
970
1178
  }
@@ -1022,12 +1230,22 @@ exports.DeadLetterMessage = {
1022
1230
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
1023
1231
  retryCount++;
1024
1232
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
1025
- logger_1.logger.warn("Database connection error, retrying...");
1233
+ logger_1.logger.warn("Database connection error in getAllDeadLetterMessage, retrying...", {
1234
+ operation: 'getAllDeadLetterMessage',
1235
+ model: 'DeadLetterMessage',
1236
+ attempt: retryCount,
1237
+ maxRetries: MAX_RETRIES,
1238
+ });
1026
1239
  await new Promise(resolve => setTimeout(resolve, delay));
1027
1240
  continue;
1028
1241
  }
1029
- // Log the error and rethrow
1030
- logger_1.logger.error("Database error occurred", { error: String(error) });
1242
+ // Log structured error details and rethrow
1243
+ logger_1.logger.error("Database getAll operation failed", {
1244
+ operation: 'getAllDeadLetterMessage',
1245
+ model: 'DeadLetterMessage',
1246
+ error: String(error),
1247
+ isRetryable: isConnectionError,
1248
+ });
1031
1249
  throw error;
1032
1250
  }
1033
1251
  }
@@ -1104,12 +1322,22 @@ exports.DeadLetterMessage = {
1104
1322
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
1105
1323
  retryCount++;
1106
1324
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
1107
- logger_1.logger.warn("Database connection error, retrying...");
1325
+ logger_1.logger.warn("Database connection error in findManyDeadLetterMessage, retrying...", {
1326
+ operation: 'findManyDeadLetterMessage',
1327
+ model: 'DeadLetterMessage',
1328
+ attempt: retryCount,
1329
+ maxRetries: MAX_RETRIES,
1330
+ });
1108
1331
  await new Promise(resolve => setTimeout(resolve, delay));
1109
1332
  continue;
1110
1333
  }
1111
- // Log the error and rethrow
1112
- logger_1.logger.error("Database error occurred", { error: String(error) });
1334
+ // Log structured error details and rethrow
1335
+ logger_1.logger.error("Database findMany operation failed", {
1336
+ operation: 'findManyDeadLetterMessage',
1337
+ model: 'DeadLetterMessage',
1338
+ error: String(error),
1339
+ isRetryable: isConnectionError,
1340
+ });
1113
1341
  throw error;
1114
1342
  }
1115
1343
  }