@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
@@ -77,7 +77,7 @@ exports.MLTrainingData = {
77
77
  * @returns The created MLTrainingData or null.
78
78
  */
79
79
  async create(props, globalClient) {
80
- var _a, _b, _c, _d, _e;
80
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
81
81
  // Maximum number of retries for database connection issues
82
82
  const MAX_RETRIES = 3;
83
83
  let retryCount = 0;
@@ -169,21 +169,52 @@ exports.MLTrainingData = {
169
169
  }
170
170
  catch (error) {
171
171
  lastError = error;
172
+ // Check for constraint violations FIRST - these are NEVER retryable
173
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
174
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
175
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
176
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
177
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
178
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
179
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
180
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
181
+ if (isConstraintViolation) {
182
+ const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
183
+ logger_1.logger.error("Non-retryable constraint violation in createOneMLTrainingData", {
184
+ operation: 'createOneMLTrainingData',
185
+ model: 'MLTrainingData',
186
+ error: String(error),
187
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
188
+ errorCategory: 'CONSTRAINT_VIOLATION',
189
+ isRetryable: false,
190
+ });
191
+ throw error;
192
+ }
172
193
  // Check if this is a database connection error that we should retry
173
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
174
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
175
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
176
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
177
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
194
+ const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
195
+ ((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
196
+ ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
197
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
198
+ (error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
178
199
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
179
200
  retryCount++;
180
201
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
181
- logger_1.logger.warn("Database connection error, retrying...");
202
+ logger_1.logger.warn("Database connection error in createOneMLTrainingData, retrying...", {
203
+ operation: 'createOneMLTrainingData',
204
+ model: 'MLTrainingData',
205
+ attempt: retryCount,
206
+ maxRetries: MAX_RETRIES,
207
+ });
182
208
  await new Promise(resolve => setTimeout(resolve, delay));
183
209
  continue;
184
210
  }
185
- // Log the error and rethrow
186
- logger_1.logger.error("Database error occurred", { error: String(error) });
211
+ // Log structured error details and rethrow
212
+ logger_1.logger.error("Database create operation failed", {
213
+ operation: 'createOneMLTrainingData',
214
+ model: 'MLTrainingData',
215
+ error: String(error),
216
+ isRetryable: isConnectionError,
217
+ });
187
218
  throw error;
188
219
  }
189
220
  }
@@ -198,7 +229,7 @@ exports.MLTrainingData = {
198
229
  * @returns The count of created records or null.
199
230
  */
200
231
  async createMany(props, globalClient) {
201
- var _a, _b, _c, _d, _e;
232
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
202
233
  // Maximum number of retries for database connection issues
203
234
  const MAX_RETRIES = 3;
204
235
  let retryCount = 0;
@@ -289,21 +320,52 @@ exports.MLTrainingData = {
289
320
  }
290
321
  catch (error) {
291
322
  lastError = error;
323
+ // Check for constraint violations FIRST - these are NEVER retryable
324
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
325
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
326
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
327
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
328
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
329
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
330
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
331
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
332
+ if (isConstraintViolation) {
333
+ const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
334
+ logger_1.logger.error("Non-retryable constraint violation in createManyMLTrainingData", {
335
+ operation: 'createManyMLTrainingData',
336
+ model: 'MLTrainingData',
337
+ error: String(error),
338
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
339
+ errorCategory: 'CONSTRAINT_VIOLATION',
340
+ isRetryable: false,
341
+ });
342
+ throw error;
343
+ }
292
344
  // Check if this is a database connection error that we should retry
293
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
294
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
295
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
296
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
297
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
345
+ const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
346
+ ((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
347
+ ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
348
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
349
+ (error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
298
350
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
299
351
  retryCount++;
300
352
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
301
- logger_1.logger.warn("Database connection error, retrying...");
353
+ logger_1.logger.warn("Database connection error in createManyMLTrainingData, retrying...", {
354
+ operation: 'createManyMLTrainingData',
355
+ model: 'MLTrainingData',
356
+ attempt: retryCount,
357
+ maxRetries: MAX_RETRIES,
358
+ });
302
359
  await new Promise(resolve => setTimeout(resolve, delay));
303
360
  continue;
304
361
  }
305
- // Log the error and rethrow
306
- logger_1.logger.error("Database error occurred", { error: String(error) });
362
+ // Log structured error details and rethrow
363
+ logger_1.logger.error("Database createMany operation failed", {
364
+ operation: 'createManyMLTrainingData',
365
+ model: 'MLTrainingData',
366
+ error: String(error),
367
+ isRetryable: isConnectionError,
368
+ });
307
369
  throw error;
308
370
  }
309
371
  }
@@ -318,7 +380,7 @@ exports.MLTrainingData = {
318
380
  * @returns The updated MLTrainingData or null.
319
381
  */
320
382
  async update(props, globalClient) {
321
- var _a, _b, _c, _d, _e;
383
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
322
384
  // Maximum number of retries for database connection issues
323
385
  const MAX_RETRIES = 3;
324
386
  let retryCount = 0;
@@ -523,21 +585,55 @@ exports.MLTrainingData = {
523
585
  }
524
586
  catch (error) {
525
587
  lastError = error;
588
+ // Check for constraint violations FIRST - these are NEVER retryable
589
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
590
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
591
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
592
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
593
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
594
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
595
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
596
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
597
+ if (isConstraintViolation) {
598
+ const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
599
+ logger_1.logger.error("Non-retryable constraint violation in updateOneMLTrainingData", {
600
+ operation: 'updateOneMLTrainingData',
601
+ model: 'MLTrainingData',
602
+ error: String(error),
603
+ recordId: props.id,
604
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
605
+ errorCategory: 'CONSTRAINT_VIOLATION',
606
+ isRetryable: false,
607
+ });
608
+ throw error;
609
+ }
526
610
  // Check if this is a database connection error that we should retry
527
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
528
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
529
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
530
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
531
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
611
+ const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
612
+ ((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
613
+ ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
614
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
615
+ (error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
532
616
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
533
617
  retryCount++;
534
618
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
535
- logger_1.logger.warn("Database connection error, retrying...");
619
+ logger_1.logger.warn("Database connection error in updateOneMLTrainingData, retrying...", {
620
+ operation: 'updateOneMLTrainingData',
621
+ model: 'MLTrainingData',
622
+ attempt: retryCount,
623
+ maxRetries: MAX_RETRIES,
624
+ recordId: props.id,
625
+ });
536
626
  await new Promise(resolve => setTimeout(resolve, delay));
537
627
  continue;
538
628
  }
539
- // Log the error and rethrow
540
- logger_1.logger.error("Database error occurred", { error: String(error) });
629
+ // Log structured error details and rethrow
630
+ logger_1.logger.error("Database update operation failed", {
631
+ operation: 'updateOneMLTrainingData',
632
+ model: 'MLTrainingData',
633
+ error: String(error),
634
+ recordId: props.id,
635
+ isRetryable: isConnectionError,
636
+ });
541
637
  throw error;
542
638
  }
543
639
  }
@@ -552,7 +648,7 @@ exports.MLTrainingData = {
552
648
  * @returns The updated MLTrainingData or null.
553
649
  */
554
650
  async upsert(props, globalClient) {
555
- var _a, _b, _c, _d, _e;
651
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
556
652
  // Maximum number of retries for database connection issues
557
653
  const MAX_RETRIES = 3;
558
654
  let retryCount = 0;
@@ -798,21 +894,55 @@ exports.MLTrainingData = {
798
894
  }
799
895
  catch (error) {
800
896
  lastError = error;
897
+ // Check for constraint violations FIRST - these are NEVER retryable
898
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
899
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
900
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
901
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
902
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
903
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
904
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
905
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
906
+ if (isConstraintViolation) {
907
+ const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
908
+ logger_1.logger.error("Non-retryable constraint violation in upsertOneMLTrainingData", {
909
+ operation: 'upsertOneMLTrainingData',
910
+ model: 'MLTrainingData',
911
+ error: String(error),
912
+ recordId: props.id,
913
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
914
+ errorCategory: 'CONSTRAINT_VIOLATION',
915
+ isRetryable: false,
916
+ });
917
+ throw error;
918
+ }
801
919
  // Check if this is a database connection error that we should retry
802
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
803
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
804
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
805
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
806
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
920
+ const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
921
+ ((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
922
+ ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
923
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
924
+ (error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
807
925
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
808
926
  retryCount++;
809
927
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
810
- logger_1.logger.warn("Database connection error, retrying...");
928
+ logger_1.logger.warn("Database connection error in upsertOneMLTrainingData, retrying...", {
929
+ operation: 'upsertOneMLTrainingData',
930
+ model: 'MLTrainingData',
931
+ attempt: retryCount,
932
+ maxRetries: MAX_RETRIES,
933
+ recordId: props.id,
934
+ });
811
935
  await new Promise(resolve => setTimeout(resolve, delay));
812
936
  continue;
813
937
  }
814
- // Log the error and rethrow
815
- logger_1.logger.error("Database error occurred", { error: String(error) });
938
+ // Log structured error details and rethrow
939
+ logger_1.logger.error("Database upsert operation failed", {
940
+ operation: 'upsertOneMLTrainingData',
941
+ model: 'MLTrainingData',
942
+ error: String(error),
943
+ recordId: props.id,
944
+ isRetryable: isConnectionError,
945
+ });
816
946
  throw error;
817
947
  }
818
948
  }
@@ -827,7 +957,7 @@ exports.MLTrainingData = {
827
957
  * @returns The count of created records or null.
828
958
  */
829
959
  async updateMany(props, globalClient) {
830
- var _a, _b, _c, _d, _e;
960
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
831
961
  // Maximum number of retries for database connection issues
832
962
  const MAX_RETRIES = 3;
833
963
  let retryCount = 0;
@@ -1032,21 +1162,52 @@ exports.MLTrainingData = {
1032
1162
  }
1033
1163
  catch (error) {
1034
1164
  lastError = error;
1165
+ // Check for constraint violations FIRST - these are NEVER retryable
1166
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
1167
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
1168
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
1169
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
1170
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
1171
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
1172
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
1173
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
1174
+ if (isConstraintViolation) {
1175
+ const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
1176
+ logger_1.logger.error("Non-retryable constraint violation in updateManyMLTrainingData", {
1177
+ operation: 'updateManyMLTrainingData',
1178
+ model: 'MLTrainingData',
1179
+ error: String(error),
1180
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
1181
+ errorCategory: 'CONSTRAINT_VIOLATION',
1182
+ isRetryable: false,
1183
+ });
1184
+ throw error;
1185
+ }
1035
1186
  // Check if this is a database connection error that we should retry
1036
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
1037
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
1038
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
1039
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
1040
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
1187
+ const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
1188
+ ((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
1189
+ ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
1190
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
1191
+ (error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
1041
1192
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
1042
1193
  retryCount++;
1043
1194
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
1044
- logger_1.logger.warn("Database connection error, retrying...");
1195
+ logger_1.logger.warn("Database connection error in updateManyMLTrainingData, retrying...", {
1196
+ operation: 'updateManyMLTrainingData',
1197
+ model: 'MLTrainingData',
1198
+ attempt: retryCount,
1199
+ maxRetries: MAX_RETRIES,
1200
+ });
1045
1201
  await new Promise(resolve => setTimeout(resolve, delay));
1046
1202
  continue;
1047
1203
  }
1048
- // Log the error and rethrow
1049
- logger_1.logger.error("Database error occurred", { error: String(error) });
1204
+ // Log structured error details and rethrow
1205
+ logger_1.logger.error("Database updateMany operation failed", {
1206
+ operation: 'updateManyMLTrainingData',
1207
+ model: 'MLTrainingData',
1208
+ error: String(error),
1209
+ isRetryable: isConnectionError,
1210
+ });
1050
1211
  throw error;
1051
1212
  }
1052
1213
  }
@@ -1061,7 +1222,7 @@ exports.MLTrainingData = {
1061
1222
  * @returns The deleted MLTrainingData or null.
1062
1223
  */
1063
1224
  async delete(props, globalClient) {
1064
- var _a, _b, _c, _d, _e;
1225
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
1065
1226
  // Maximum number of retries for database connection issues
1066
1227
  const MAX_RETRIES = 3;
1067
1228
  let retryCount = 0;
@@ -1105,21 +1266,58 @@ exports.MLTrainingData = {
1105
1266
  }
1106
1267
  catch (error) {
1107
1268
  lastError = error;
1269
+ // Check for constraint violations FIRST - these are NEVER retryable
1270
+ // (e.g., foreign key constraints preventing deletion)
1271
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
1272
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
1273
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
1274
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
1275
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
1276
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
1277
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('23503')) ||
1278
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2002')) ||
1279
+ ((_j = error.message) === null || _j === void 0 ? void 0 : _j.includes('P2003')) ||
1280
+ ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('P2014'));
1281
+ if (isConstraintViolation) {
1282
+ const constraintMatch = (_l = error.message) === null || _l === void 0 ? void 0 : _l.match(/constraint\s+"([^"]+)"/);
1283
+ logger_1.logger.error("Non-retryable constraint violation in deleteOneMLTrainingData", {
1284
+ operation: 'deleteOneMLTrainingData',
1285
+ model: 'MLTrainingData',
1286
+ error: String(error),
1287
+ recordId: props.id,
1288
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
1289
+ errorCategory: 'CONSTRAINT_VIOLATION',
1290
+ isRetryable: false,
1291
+ });
1292
+ throw error;
1293
+ }
1108
1294
  // Check if this is a database connection error that we should retry
1109
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
1110
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
1111
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
1112
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
1113
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
1295
+ const isConnectionError = ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Server has closed the connection')) ||
1296
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Cannot reach database server')) ||
1297
+ ((_p = error.message) === null || _p === void 0 ? void 0 : _p.includes('Connection timed out')) ||
1298
+ ((_q = error.message) === null || _q === void 0 ? void 0 : _q.includes('Accelerate')) || // Prisma Accelerate proxy errors
1299
+ (error.networkError && ((_r = error.networkError.message) === null || _r === void 0 ? void 0 : _r.includes('Failed to fetch')));
1114
1300
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
1115
1301
  retryCount++;
1116
1302
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
1117
- logger_1.logger.warn("Database connection error, retrying...");
1303
+ logger_1.logger.warn("Database connection error in deleteOneMLTrainingData, retrying...", {
1304
+ operation: 'deleteOneMLTrainingData',
1305
+ model: 'MLTrainingData',
1306
+ attempt: retryCount,
1307
+ maxRetries: MAX_RETRIES,
1308
+ recordId: props.id,
1309
+ });
1118
1310
  await new Promise(resolve => setTimeout(resolve, delay));
1119
1311
  continue;
1120
1312
  }
1121
- // Log the error and rethrow
1122
- logger_1.logger.error("Database error occurred", { error: String(error) });
1313
+ // Log structured error details and rethrow
1314
+ logger_1.logger.error("Database delete operation failed", {
1315
+ operation: 'deleteOneMLTrainingData',
1316
+ model: 'MLTrainingData',
1317
+ error: String(error),
1318
+ recordId: props.id,
1319
+ isRetryable: isConnectionError,
1320
+ });
1123
1321
  throw error;
1124
1322
  }
1125
1323
  }
@@ -1192,12 +1390,22 @@ exports.MLTrainingData = {
1192
1390
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
1193
1391
  retryCount++;
1194
1392
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
1195
- logger_1.logger.warn("Database connection error, retrying...");
1393
+ logger_1.logger.warn("Database connection error in getMLTrainingData, retrying...", {
1394
+ operation: 'getMLTrainingData',
1395
+ model: 'MLTrainingData',
1396
+ attempt: retryCount,
1397
+ maxRetries: MAX_RETRIES,
1398
+ });
1196
1399
  await new Promise(resolve => setTimeout(resolve, delay));
1197
1400
  continue;
1198
1401
  }
1199
- // Log the error and rethrow
1200
- logger_1.logger.error("Database error occurred", { error: String(error) });
1402
+ // Log structured error details and rethrow
1403
+ logger_1.logger.error("Database get operation failed", {
1404
+ operation: 'getMLTrainingData',
1405
+ model: 'MLTrainingData',
1406
+ error: String(error),
1407
+ isRetryable: isConnectionError,
1408
+ });
1201
1409
  throw error;
1202
1410
  }
1203
1411
  }
@@ -1255,12 +1463,22 @@ exports.MLTrainingData = {
1255
1463
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
1256
1464
  retryCount++;
1257
1465
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
1258
- logger_1.logger.warn("Database connection error, retrying...");
1466
+ logger_1.logger.warn("Database connection error in getAllMLTrainingData, retrying...", {
1467
+ operation: 'getAllMLTrainingData',
1468
+ model: 'MLTrainingData',
1469
+ attempt: retryCount,
1470
+ maxRetries: MAX_RETRIES,
1471
+ });
1259
1472
  await new Promise(resolve => setTimeout(resolve, delay));
1260
1473
  continue;
1261
1474
  }
1262
- // Log the error and rethrow
1263
- logger_1.logger.error("Database error occurred", { error: String(error) });
1475
+ // Log structured error details and rethrow
1476
+ logger_1.logger.error("Database getAll operation failed", {
1477
+ operation: 'getAllMLTrainingData',
1478
+ model: 'MLTrainingData',
1479
+ error: String(error),
1480
+ isRetryable: isConnectionError,
1481
+ });
1264
1482
  throw error;
1265
1483
  }
1266
1484
  }
@@ -1340,12 +1558,22 @@ exports.MLTrainingData = {
1340
1558
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
1341
1559
  retryCount++;
1342
1560
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
1343
- logger_1.logger.warn("Database connection error, retrying...");
1561
+ logger_1.logger.warn("Database connection error in findManyMLTrainingData, retrying...", {
1562
+ operation: 'findManyMLTrainingData',
1563
+ model: 'MLTrainingData',
1564
+ attempt: retryCount,
1565
+ maxRetries: MAX_RETRIES,
1566
+ });
1344
1567
  await new Promise(resolve => setTimeout(resolve, delay));
1345
1568
  continue;
1346
1569
  }
1347
- // Log the error and rethrow
1348
- logger_1.logger.error("Database error occurred", { error: String(error) });
1570
+ // Log structured error details and rethrow
1571
+ logger_1.logger.error("Database findMany operation failed", {
1572
+ operation: 'findManyMLTrainingData',
1573
+ model: 'MLTrainingData',
1574
+ error: String(error),
1575
+ isRetryable: isConnectionError,
1576
+ });
1349
1577
  throw error;
1350
1578
  }
1351
1579
  }