@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
package/ABTest.cjs CHANGED
@@ -241,7 +241,7 @@ exports.ABTest = {
241
241
  * @returns The created ABTest or null.
242
242
  */
243
243
  async create(props, globalClient) {
244
- var _a, _b, _c, _d, _e;
244
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
245
245
  // Maximum number of retries for database connection issues
246
246
  const MAX_RETRIES = 3;
247
247
  let retryCount = 0;
@@ -1688,21 +1688,52 @@ exports.ABTest = {
1688
1688
  }
1689
1689
  catch (error) {
1690
1690
  lastError = error;
1691
+ // Check for constraint violations FIRST - these are NEVER retryable
1692
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
1693
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
1694
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
1695
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
1696
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
1697
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
1698
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
1699
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
1700
+ if (isConstraintViolation) {
1701
+ const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
1702
+ logger_1.logger.error("Non-retryable constraint violation in createOneABTest", {
1703
+ operation: 'createOneABTest',
1704
+ model: 'ABTest',
1705
+ error: String(error),
1706
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
1707
+ errorCategory: 'CONSTRAINT_VIOLATION',
1708
+ isRetryable: false,
1709
+ });
1710
+ throw error;
1711
+ }
1691
1712
  // Check if this is a database connection error that we should retry
1692
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
1693
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
1694
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
1695
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
1696
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
1713
+ const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
1714
+ ((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
1715
+ ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
1716
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
1717
+ (error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
1697
1718
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
1698
1719
  retryCount++;
1699
1720
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
1700
- logger_1.logger.warn("Database connection error, retrying...");
1721
+ logger_1.logger.warn("Database connection error in createOneABTest, retrying...", {
1722
+ operation: 'createOneABTest',
1723
+ model: 'ABTest',
1724
+ attempt: retryCount,
1725
+ maxRetries: MAX_RETRIES,
1726
+ });
1701
1727
  await new Promise(resolve => setTimeout(resolve, delay));
1702
1728
  continue;
1703
1729
  }
1704
- // Log the error and rethrow
1705
- logger_1.logger.error("Database error occurred", { error: String(error) });
1730
+ // Log structured error details and rethrow
1731
+ logger_1.logger.error("Database create operation failed", {
1732
+ operation: 'createOneABTest',
1733
+ model: 'ABTest',
1734
+ error: String(error),
1735
+ isRetryable: isConnectionError,
1736
+ });
1706
1737
  throw error;
1707
1738
  }
1708
1739
  }
@@ -1717,7 +1748,7 @@ exports.ABTest = {
1717
1748
  * @returns The count of created records or null.
1718
1749
  */
1719
1750
  async createMany(props, globalClient) {
1720
- var _a, _b, _c, _d, _e;
1751
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
1721
1752
  // Maximum number of retries for database connection issues
1722
1753
  const MAX_RETRIES = 3;
1723
1754
  let retryCount = 0;
@@ -1785,21 +1816,52 @@ exports.ABTest = {
1785
1816
  }
1786
1817
  catch (error) {
1787
1818
  lastError = error;
1819
+ // Check for constraint violations FIRST - these are NEVER retryable
1820
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
1821
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
1822
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
1823
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
1824
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
1825
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
1826
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
1827
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
1828
+ if (isConstraintViolation) {
1829
+ const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
1830
+ logger_1.logger.error("Non-retryable constraint violation in createManyABTest", {
1831
+ operation: 'createManyABTest',
1832
+ model: 'ABTest',
1833
+ error: String(error),
1834
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
1835
+ errorCategory: 'CONSTRAINT_VIOLATION',
1836
+ isRetryable: false,
1837
+ });
1838
+ throw error;
1839
+ }
1788
1840
  // Check if this is a database connection error that we should retry
1789
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
1790
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
1791
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
1792
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
1793
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
1841
+ const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
1842
+ ((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
1843
+ ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
1844
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
1845
+ (error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
1794
1846
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
1795
1847
  retryCount++;
1796
1848
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
1797
- logger_1.logger.warn("Database connection error, retrying...");
1849
+ logger_1.logger.warn("Database connection error in createManyABTest, retrying...", {
1850
+ operation: 'createManyABTest',
1851
+ model: 'ABTest',
1852
+ attempt: retryCount,
1853
+ maxRetries: MAX_RETRIES,
1854
+ });
1798
1855
  await new Promise(resolve => setTimeout(resolve, delay));
1799
1856
  continue;
1800
1857
  }
1801
- // Log the error and rethrow
1802
- logger_1.logger.error("Database error occurred", { error: String(error) });
1858
+ // Log structured error details and rethrow
1859
+ logger_1.logger.error("Database createMany operation failed", {
1860
+ operation: 'createManyABTest',
1861
+ model: 'ABTest',
1862
+ error: String(error),
1863
+ isRetryable: isConnectionError,
1864
+ });
1803
1865
  throw error;
1804
1866
  }
1805
1867
  }
@@ -1814,7 +1876,7 @@ exports.ABTest = {
1814
1876
  * @returns The updated ABTest or null.
1815
1877
  */
1816
1878
  async update(props, globalClient) {
1817
- var _a, _b, _c, _d, _e;
1879
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
1818
1880
  // Maximum number of retries for database connection issues
1819
1881
  const MAX_RETRIES = 3;
1820
1882
  let retryCount = 0;
@@ -7974,21 +8036,55 @@ exports.ABTest = {
7974
8036
  }
7975
8037
  catch (error) {
7976
8038
  lastError = error;
8039
+ // Check for constraint violations FIRST - these are NEVER retryable
8040
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
8041
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
8042
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
8043
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
8044
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
8045
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
8046
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
8047
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
8048
+ if (isConstraintViolation) {
8049
+ const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
8050
+ logger_1.logger.error("Non-retryable constraint violation in updateOneABTest", {
8051
+ operation: 'updateOneABTest',
8052
+ model: 'ABTest',
8053
+ error: String(error),
8054
+ recordId: props.id,
8055
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
8056
+ errorCategory: 'CONSTRAINT_VIOLATION',
8057
+ isRetryable: false,
8058
+ });
8059
+ throw error;
8060
+ }
7977
8061
  // Check if this is a database connection error that we should retry
7978
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
7979
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
7980
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
7981
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
7982
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
8062
+ const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
8063
+ ((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
8064
+ ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
8065
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
8066
+ (error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
7983
8067
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
7984
8068
  retryCount++;
7985
8069
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
7986
- logger_1.logger.warn("Database connection error, retrying...");
8070
+ logger_1.logger.warn("Database connection error in updateOneABTest, retrying...", {
8071
+ operation: 'updateOneABTest',
8072
+ model: 'ABTest',
8073
+ attempt: retryCount,
8074
+ maxRetries: MAX_RETRIES,
8075
+ recordId: props.id,
8076
+ });
7987
8077
  await new Promise(resolve => setTimeout(resolve, delay));
7988
8078
  continue;
7989
8079
  }
7990
- // Log the error and rethrow
7991
- logger_1.logger.error("Database error occurred", { error: String(error) });
8080
+ // Log structured error details and rethrow
8081
+ logger_1.logger.error("Database update operation failed", {
8082
+ operation: 'updateOneABTest',
8083
+ model: 'ABTest',
8084
+ error: String(error),
8085
+ recordId: props.id,
8086
+ isRetryable: isConnectionError,
8087
+ });
7992
8088
  throw error;
7993
8089
  }
7994
8090
  }
@@ -8003,7 +8099,7 @@ exports.ABTest = {
8003
8099
  * @returns The updated ABTest or null.
8004
8100
  */
8005
8101
  async upsert(props, globalClient) {
8006
- var _a, _b, _c, _d, _e;
8102
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
8007
8103
  // Maximum number of retries for database connection issues
8008
8104
  const MAX_RETRIES = 3;
8009
8105
  let retryCount = 0;
@@ -15559,21 +15655,55 @@ exports.ABTest = {
15559
15655
  }
15560
15656
  catch (error) {
15561
15657
  lastError = error;
15658
+ // Check for constraint violations FIRST - these are NEVER retryable
15659
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
15660
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
15661
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
15662
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
15663
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
15664
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
15665
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
15666
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
15667
+ if (isConstraintViolation) {
15668
+ const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
15669
+ logger_1.logger.error("Non-retryable constraint violation in upsertOneABTest", {
15670
+ operation: 'upsertOneABTest',
15671
+ model: 'ABTest',
15672
+ error: String(error),
15673
+ recordId: props.id,
15674
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
15675
+ errorCategory: 'CONSTRAINT_VIOLATION',
15676
+ isRetryable: false,
15677
+ });
15678
+ throw error;
15679
+ }
15562
15680
  // Check if this is a database connection error that we should retry
15563
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
15564
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
15565
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
15566
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
15567
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
15681
+ const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
15682
+ ((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
15683
+ ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
15684
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
15685
+ (error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
15568
15686
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
15569
15687
  retryCount++;
15570
15688
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
15571
- logger_1.logger.warn("Database connection error, retrying...");
15689
+ logger_1.logger.warn("Database connection error in upsertOneABTest, retrying...", {
15690
+ operation: 'upsertOneABTest',
15691
+ model: 'ABTest',
15692
+ attempt: retryCount,
15693
+ maxRetries: MAX_RETRIES,
15694
+ recordId: props.id,
15695
+ });
15572
15696
  await new Promise(resolve => setTimeout(resolve, delay));
15573
15697
  continue;
15574
15698
  }
15575
- // Log the error and rethrow
15576
- logger_1.logger.error("Database error occurred", { error: String(error) });
15699
+ // Log structured error details and rethrow
15700
+ logger_1.logger.error("Database upsert operation failed", {
15701
+ operation: 'upsertOneABTest',
15702
+ model: 'ABTest',
15703
+ error: String(error),
15704
+ recordId: props.id,
15705
+ isRetryable: isConnectionError,
15706
+ });
15577
15707
  throw error;
15578
15708
  }
15579
15709
  }
@@ -15588,7 +15718,7 @@ exports.ABTest = {
15588
15718
  * @returns The count of created records or null.
15589
15719
  */
15590
15720
  async updateMany(props, globalClient) {
15591
- var _a, _b, _c, _d, _e;
15721
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
15592
15722
  // Maximum number of retries for database connection issues
15593
15723
  const MAX_RETRIES = 3;
15594
15724
  let retryCount = 0;
@@ -21748,21 +21878,52 @@ exports.ABTest = {
21748
21878
  }
21749
21879
  catch (error) {
21750
21880
  lastError = error;
21881
+ // Check for constraint violations FIRST - these are NEVER retryable
21882
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
21883
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
21884
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
21885
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
21886
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
21887
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
21888
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
21889
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
21890
+ if (isConstraintViolation) {
21891
+ const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
21892
+ logger_1.logger.error("Non-retryable constraint violation in updateManyABTest", {
21893
+ operation: 'updateManyABTest',
21894
+ model: 'ABTest',
21895
+ error: String(error),
21896
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
21897
+ errorCategory: 'CONSTRAINT_VIOLATION',
21898
+ isRetryable: false,
21899
+ });
21900
+ throw error;
21901
+ }
21751
21902
  // Check if this is a database connection error that we should retry
21752
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
21753
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
21754
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
21755
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
21756
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
21903
+ const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
21904
+ ((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
21905
+ ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
21906
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
21907
+ (error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
21757
21908
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
21758
21909
  retryCount++;
21759
21910
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
21760
- logger_1.logger.warn("Database connection error, retrying...");
21911
+ logger_1.logger.warn("Database connection error in updateManyABTest, retrying...", {
21912
+ operation: 'updateManyABTest',
21913
+ model: 'ABTest',
21914
+ attempt: retryCount,
21915
+ maxRetries: MAX_RETRIES,
21916
+ });
21761
21917
  await new Promise(resolve => setTimeout(resolve, delay));
21762
21918
  continue;
21763
21919
  }
21764
- // Log the error and rethrow
21765
- logger_1.logger.error("Database error occurred", { error: String(error) });
21920
+ // Log structured error details and rethrow
21921
+ logger_1.logger.error("Database updateMany operation failed", {
21922
+ operation: 'updateManyABTest',
21923
+ model: 'ABTest',
21924
+ error: String(error),
21925
+ isRetryable: isConnectionError,
21926
+ });
21766
21927
  throw error;
21767
21928
  }
21768
21929
  }
@@ -21777,7 +21938,7 @@ exports.ABTest = {
21777
21938
  * @returns The deleted ABTest or null.
21778
21939
  */
21779
21940
  async delete(props, globalClient) {
21780
- var _a, _b, _c, _d, _e;
21941
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
21781
21942
  // Maximum number of retries for database connection issues
21782
21943
  const MAX_RETRIES = 3;
21783
21944
  let retryCount = 0;
@@ -21821,21 +21982,58 @@ exports.ABTest = {
21821
21982
  }
21822
21983
  catch (error) {
21823
21984
  lastError = error;
21985
+ // Check for constraint violations FIRST - these are NEVER retryable
21986
+ // (e.g., foreign key constraints preventing deletion)
21987
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
21988
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
21989
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
21990
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
21991
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
21992
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
21993
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('23503')) ||
21994
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2002')) ||
21995
+ ((_j = error.message) === null || _j === void 0 ? void 0 : _j.includes('P2003')) ||
21996
+ ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('P2014'));
21997
+ if (isConstraintViolation) {
21998
+ const constraintMatch = (_l = error.message) === null || _l === void 0 ? void 0 : _l.match(/constraint\s+"([^"]+)"/);
21999
+ logger_1.logger.error("Non-retryable constraint violation in deleteOneABTest", {
22000
+ operation: 'deleteOneABTest',
22001
+ model: 'ABTest',
22002
+ error: String(error),
22003
+ recordId: props.id,
22004
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
22005
+ errorCategory: 'CONSTRAINT_VIOLATION',
22006
+ isRetryable: false,
22007
+ });
22008
+ throw error;
22009
+ }
21824
22010
  // Check if this is a database connection error that we should retry
21825
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
21826
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
21827
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
21828
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
21829
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
22011
+ const isConnectionError = ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Server has closed the connection')) ||
22012
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Cannot reach database server')) ||
22013
+ ((_p = error.message) === null || _p === void 0 ? void 0 : _p.includes('Connection timed out')) ||
22014
+ ((_q = error.message) === null || _q === void 0 ? void 0 : _q.includes('Accelerate')) || // Prisma Accelerate proxy errors
22015
+ (error.networkError && ((_r = error.networkError.message) === null || _r === void 0 ? void 0 : _r.includes('Failed to fetch')));
21830
22016
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
21831
22017
  retryCount++;
21832
22018
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
21833
- logger_1.logger.warn("Database connection error, retrying...");
22019
+ logger_1.logger.warn("Database connection error in deleteOneABTest, retrying...", {
22020
+ operation: 'deleteOneABTest',
22021
+ model: 'ABTest',
22022
+ attempt: retryCount,
22023
+ maxRetries: MAX_RETRIES,
22024
+ recordId: props.id,
22025
+ });
21834
22026
  await new Promise(resolve => setTimeout(resolve, delay));
21835
22027
  continue;
21836
22028
  }
21837
- // Log the error and rethrow
21838
- logger_1.logger.error("Database error occurred", { error: String(error) });
22029
+ // Log structured error details and rethrow
22030
+ logger_1.logger.error("Database delete operation failed", {
22031
+ operation: 'deleteOneABTest',
22032
+ model: 'ABTest',
22033
+ error: String(error),
22034
+ recordId: props.id,
22035
+ isRetryable: isConnectionError,
22036
+ });
21839
22037
  throw error;
21840
22038
  }
21841
22039
  }
@@ -21911,12 +22109,22 @@ exports.ABTest = {
21911
22109
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
21912
22110
  retryCount++;
21913
22111
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
21914
- logger_1.logger.warn("Database connection error, retrying...");
22112
+ logger_1.logger.warn("Database connection error in getABTest, retrying...", {
22113
+ operation: 'getABTest',
22114
+ model: 'ABTest',
22115
+ attempt: retryCount,
22116
+ maxRetries: MAX_RETRIES,
22117
+ });
21915
22118
  await new Promise(resolve => setTimeout(resolve, delay));
21916
22119
  continue;
21917
22120
  }
21918
- // Log the error and rethrow
21919
- logger_1.logger.error("Database error occurred", { error: String(error) });
22121
+ // Log structured error details and rethrow
22122
+ logger_1.logger.error("Database get operation failed", {
22123
+ operation: 'getABTest',
22124
+ model: 'ABTest',
22125
+ error: String(error),
22126
+ isRetryable: isConnectionError,
22127
+ });
21920
22128
  throw error;
21921
22129
  }
21922
22130
  }
@@ -21974,12 +22182,22 @@ exports.ABTest = {
21974
22182
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
21975
22183
  retryCount++;
21976
22184
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
21977
- logger_1.logger.warn("Database connection error, retrying...");
22185
+ logger_1.logger.warn("Database connection error in getAllABTest, retrying...", {
22186
+ operation: 'getAllABTest',
22187
+ model: 'ABTest',
22188
+ attempt: retryCount,
22189
+ maxRetries: MAX_RETRIES,
22190
+ });
21978
22191
  await new Promise(resolve => setTimeout(resolve, delay));
21979
22192
  continue;
21980
22193
  }
21981
- // Log the error and rethrow
21982
- logger_1.logger.error("Database error occurred", { error: String(error) });
22194
+ // Log structured error details and rethrow
22195
+ logger_1.logger.error("Database getAll operation failed", {
22196
+ operation: 'getAllABTest',
22197
+ model: 'ABTest',
22198
+ error: String(error),
22199
+ isRetryable: isConnectionError,
22200
+ });
21983
22201
  throw error;
21984
22202
  }
21985
22203
  }
@@ -22062,12 +22280,22 @@ exports.ABTest = {
22062
22280
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
22063
22281
  retryCount++;
22064
22282
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
22065
- logger_1.logger.warn("Database connection error, retrying...");
22283
+ logger_1.logger.warn("Database connection error in findManyABTest, retrying...", {
22284
+ operation: 'findManyABTest',
22285
+ model: 'ABTest',
22286
+ attempt: retryCount,
22287
+ maxRetries: MAX_RETRIES,
22288
+ });
22066
22289
  await new Promise(resolve => setTimeout(resolve, delay));
22067
22290
  continue;
22068
22291
  }
22069
- // Log the error and rethrow
22070
- logger_1.logger.error("Database error occurred", { error: String(error) });
22292
+ // Log structured error details and rethrow
22293
+ logger_1.logger.error("Database findMany operation failed", {
22294
+ operation: 'findManyABTest',
22295
+ model: 'ABTest',
22296
+ error: String(error),
22297
+ isRetryable: isConnectionError,
22298
+ });
22071
22299
  throw error;
22072
22300
  }
22073
22301
  }