@javalabs/prisma-client 1.0.26 → 1.0.29

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 (170) hide show
  1. package/.github/CODEOWNERS +1 -1
  2. package/README.md +269 -269
  3. package/migration-config.json +63 -63
  4. package/migration-config.json.bk +95 -95
  5. package/migrations/add_reserved_amount.sql +7 -7
  6. package/package.json +44 -44
  7. package/prisma/migrations/add_uuid_to_transactions.sql +13 -13
  8. package/prisma/schema.prisma +609 -607
  9. package/src/index.ts +23 -23
  10. package/src/prisma-factory.service.ts +40 -40
  11. package/src/prisma.module.ts +9 -9
  12. package/src/prisma.service.ts +16 -16
  13. package/src/scripts/add-uuid-to-table.ts +138 -138
  14. package/src/scripts/create-tenant-schemas.ts +145 -145
  15. package/src/scripts/data-migration/batch-migrator.ts +248 -248
  16. package/src/scripts/data-migration/data-transformer.ts +426 -426
  17. package/src/scripts/data-migration/db-connector.ts +120 -120
  18. package/src/scripts/data-migration/dependency-resolver.ts +174 -174
  19. package/src/scripts/data-migration/entity-discovery.ts +196 -196
  20. package/src/scripts/data-migration/foreign-key-manager.ts +277 -277
  21. package/src/scripts/data-migration/migration-config.json +63 -63
  22. package/src/scripts/data-migration/migration-tool.ts +509 -509
  23. package/src/scripts/data-migration/schema-utils.ts +248 -248
  24. package/src/scripts/data-migration/tenant-migrator.ts +201 -201
  25. package/src/scripts/data-migration/typecast-manager.ts +193 -193
  26. package/src/scripts/data-migration/types.ts +113 -113
  27. package/src/scripts/database-initializer.ts +49 -49
  28. package/src/scripts/drop-database.ts +104 -104
  29. package/src/scripts/dump-source-db.sh +61 -61
  30. package/src/scripts/encrypt-user-passwords.ts +36 -36
  31. package/src/scripts/error-handler.ts +117 -117
  32. package/src/scripts/fix-data-types.ts +241 -241
  33. package/src/scripts/fix-enum-values.ts +357 -357
  34. package/src/scripts/fix-schema-discrepancies.ts +317 -317
  35. package/src/scripts/fix-table-indexes.ts +601 -601
  36. package/src/scripts/migrate-schema-structure.ts +90 -90
  37. package/src/scripts/migrate-uuid.ts +76 -76
  38. package/src/scripts/post-migration-validator.ts +526 -526
  39. package/src/scripts/pre-migration-validator.ts +610 -610
  40. package/src/scripts/reset-database.ts +263 -263
  41. package/src/scripts/retry-failed-migrations.ts +416 -416
  42. package/src/scripts/run-migration.ts +707 -707
  43. package/src/scripts/schema-sync.ts +128 -128
  44. package/src/scripts/sequence-sync-cli.ts +416 -416
  45. package/src/scripts/sequence-synchronizer.ts +127 -127
  46. package/src/scripts/sync-enum-types.ts +170 -170
  47. package/src/scripts/sync-enum-values.ts +563 -563
  48. package/src/scripts/truncate-database.ts +123 -123
  49. package/src/scripts/verify-migration-setup.ts +135 -135
  50. package/tsconfig.json +17 -17
  51. package/dist/index.d.ts +0 -7
  52. package/dist/index.js +0 -34
  53. package/dist/index.js.map +0 -1
  54. package/dist/prisma-factory.service.d.ts +0 -9
  55. package/dist/prisma-factory.service.js +0 -47
  56. package/dist/prisma-factory.service.js.map +0 -1
  57. package/dist/prisma.module.d.ts +0 -2
  58. package/dist/prisma.module.js +0 -23
  59. package/dist/prisma.module.js.map +0 -1
  60. package/dist/prisma.service.d.ts +0 -6
  61. package/dist/prisma.service.js +0 -27
  62. package/dist/prisma.service.js.map +0 -1
  63. package/dist/scripts/add-uuid-to-table.d.ts +0 -8
  64. package/dist/scripts/add-uuid-to-table.js +0 -98
  65. package/dist/scripts/add-uuid-to-table.js.map +0 -1
  66. package/dist/scripts/create-tenant-schemas.d.ts +0 -1
  67. package/dist/scripts/create-tenant-schemas.js +0 -117
  68. package/dist/scripts/create-tenant-schemas.js.map +0 -1
  69. package/dist/scripts/data-migration/batch-migrator.d.ts +0 -20
  70. package/dist/scripts/data-migration/batch-migrator.js +0 -134
  71. package/dist/scripts/data-migration/batch-migrator.js.map +0 -1
  72. package/dist/scripts/data-migration/data-transformer.d.ts +0 -26
  73. package/dist/scripts/data-migration/data-transformer.js +0 -278
  74. package/dist/scripts/data-migration/data-transformer.js.map +0 -1
  75. package/dist/scripts/data-migration/db-connector.d.ts +0 -12
  76. package/dist/scripts/data-migration/db-connector.js +0 -94
  77. package/dist/scripts/data-migration/db-connector.js.map +0 -1
  78. package/dist/scripts/data-migration/dependency-resolver.d.ts +0 -18
  79. package/dist/scripts/data-migration/dependency-resolver.js +0 -132
  80. package/dist/scripts/data-migration/dependency-resolver.js.map +0 -1
  81. package/dist/scripts/data-migration/entity-discovery.d.ts +0 -11
  82. package/dist/scripts/data-migration/entity-discovery.js +0 -152
  83. package/dist/scripts/data-migration/entity-discovery.js.map +0 -1
  84. package/dist/scripts/data-migration/foreign-key-manager.d.ts +0 -18
  85. package/dist/scripts/data-migration/foreign-key-manager.js +0 -160
  86. package/dist/scripts/data-migration/foreign-key-manager.js.map +0 -1
  87. package/dist/scripts/data-migration/migration-tool.d.ts +0 -48
  88. package/dist/scripts/data-migration/migration-tool.js +0 -290
  89. package/dist/scripts/data-migration/migration-tool.js.map +0 -1
  90. package/dist/scripts/data-migration/schema-utils.d.ts +0 -18
  91. package/dist/scripts/data-migration/schema-utils.js +0 -207
  92. package/dist/scripts/data-migration/schema-utils.js.map +0 -1
  93. package/dist/scripts/data-migration/tenant-migrator.d.ts +0 -15
  94. package/dist/scripts/data-migration/tenant-migrator.js +0 -117
  95. package/dist/scripts/data-migration/tenant-migrator.js.map +0 -1
  96. package/dist/scripts/data-migration/typecast-manager.d.ts +0 -9
  97. package/dist/scripts/data-migration/typecast-manager.js +0 -179
  98. package/dist/scripts/data-migration/typecast-manager.js.map +0 -1
  99. package/dist/scripts/data-migration/types.d.ts +0 -100
  100. package/dist/scripts/data-migration/types.js +0 -3
  101. package/dist/scripts/data-migration/types.js.map +0 -1
  102. package/dist/scripts/database-initializer.d.ts +0 -5
  103. package/dist/scripts/database-initializer.js +0 -45
  104. package/dist/scripts/database-initializer.js.map +0 -1
  105. package/dist/scripts/drop-database.d.ts +0 -10
  106. package/dist/scripts/drop-database.js +0 -81
  107. package/dist/scripts/drop-database.js.map +0 -1
  108. package/dist/scripts/encrypt-user-passwords.d.ts +0 -1
  109. package/dist/scripts/encrypt-user-passwords.js +0 -33
  110. package/dist/scripts/encrypt-user-passwords.js.map +0 -1
  111. package/dist/scripts/error-handler.d.ts +0 -12
  112. package/dist/scripts/error-handler.js +0 -82
  113. package/dist/scripts/error-handler.js.map +0 -1
  114. package/dist/scripts/fix-data-types.d.ts +0 -10
  115. package/dist/scripts/fix-data-types.js +0 -185
  116. package/dist/scripts/fix-data-types.js.map +0 -1
  117. package/dist/scripts/fix-enum-values.d.ts +0 -17
  118. package/dist/scripts/fix-enum-values.js +0 -234
  119. package/dist/scripts/fix-enum-values.js.map +0 -1
  120. package/dist/scripts/fix-schema-discrepancies.d.ts +0 -21
  121. package/dist/scripts/fix-schema-discrepancies.js +0 -240
  122. package/dist/scripts/fix-schema-discrepancies.js.map +0 -1
  123. package/dist/scripts/fix-table-indexes.d.ts +0 -26
  124. package/dist/scripts/fix-table-indexes.js +0 -460
  125. package/dist/scripts/fix-table-indexes.js.map +0 -1
  126. package/dist/scripts/migrate-schema-structure.d.ts +0 -1
  127. package/dist/scripts/migrate-schema-structure.js +0 -76
  128. package/dist/scripts/migrate-schema-structure.js.map +0 -1
  129. package/dist/scripts/migrate-uuid.d.ts +0 -2
  130. package/dist/scripts/migrate-uuid.js +0 -57
  131. package/dist/scripts/migrate-uuid.js.map +0 -1
  132. package/dist/scripts/post-migration-validator.d.ts +0 -34
  133. package/dist/scripts/post-migration-validator.js +0 -363
  134. package/dist/scripts/post-migration-validator.js.map +0 -1
  135. package/dist/scripts/pre-migration-validator.d.ts +0 -25
  136. package/dist/scripts/pre-migration-validator.js +0 -491
  137. package/dist/scripts/pre-migration-validator.js.map +0 -1
  138. package/dist/scripts/reset-database.d.ts +0 -17
  139. package/dist/scripts/reset-database.js +0 -202
  140. package/dist/scripts/reset-database.js.map +0 -1
  141. package/dist/scripts/retry-failed-migrations.d.ts +0 -14
  142. package/dist/scripts/retry-failed-migrations.js +0 -301
  143. package/dist/scripts/retry-failed-migrations.js.map +0 -1
  144. package/dist/scripts/run-migration.d.ts +0 -1
  145. package/dist/scripts/run-migration.js +0 -512
  146. package/dist/scripts/run-migration.js.map +0 -1
  147. package/dist/scripts/schema-sync.d.ts +0 -1
  148. package/dist/scripts/schema-sync.js +0 -85
  149. package/dist/scripts/schema-sync.js.map +0 -1
  150. package/dist/scripts/sequence-sync-cli.d.ts +0 -2
  151. package/dist/scripts/sequence-sync-cli.js +0 -287
  152. package/dist/scripts/sequence-sync-cli.js.map +0 -1
  153. package/dist/scripts/sequence-synchronizer.d.ts +0 -8
  154. package/dist/scripts/sequence-synchronizer.js +0 -88
  155. package/dist/scripts/sequence-synchronizer.js.map +0 -1
  156. package/dist/scripts/sync-enum-types.d.ts +0 -13
  157. package/dist/scripts/sync-enum-types.js +0 -139
  158. package/dist/scripts/sync-enum-types.js.map +0 -1
  159. package/dist/scripts/sync-enum-values.d.ts +0 -20
  160. package/dist/scripts/sync-enum-values.js +0 -336
  161. package/dist/scripts/sync-enum-values.js.map +0 -1
  162. package/dist/scripts/truncate-database.d.ts +0 -10
  163. package/dist/scripts/truncate-database.js +0 -100
  164. package/dist/scripts/truncate-database.js.map +0 -1
  165. package/dist/scripts/verify-migration-setup.d.ts +0 -11
  166. package/dist/scripts/verify-migration-setup.js +0 -120
  167. package/dist/scripts/verify-migration-setup.js.map +0 -1
  168. package/dist/tsconfig.tsbuildinfo +0 -1
  169. package/prisma/migrations/add_athena_match_fields.sql +0 -18
  170. package/prisma/migrations/add_bank_receipt_number.sql +0 -9
@@ -1,607 +1,609 @@
1
- generator client {
2
- provider = "prisma-client-js"
3
- }
4
-
5
- datasource db {
6
- provider = "postgresql"
7
- url = env("DATABASE_URL")
8
- }
9
-
10
- model ClientsApiKeys {
11
- id String @id @default(uuid())
12
- key String @unique
13
- clientId String @unique
14
- clientSecret String @unique
15
- isActive Boolean @default(true)
16
- expiresAt DateTime
17
- createdAt DateTime @default(now())
18
- updatedAt DateTime @updatedAt
19
- lastUsedAt DateTime?
20
- ipWhitelist String[] @default([])
21
- rateLimit Int? @default(1000) // requests per day
22
- usage ClientsApiKeyUsage[]
23
- metadata Json? // Para almacenar información adicional como nombre del cliente, propósito, etc.
24
- revokedAt DateTime? // Para revocar API keys
25
- revokedBy String? // Quién revocó la API key
26
- revokedReason String? // Razón de la revocación
27
- allowedEndpoints String[] @default([]) // Endpoints permitidos para esta API key
28
- maxRequestsPerMinute Int? @default(60) // Rate limiting por minuto
29
- environment String @default("development") // development, staging, production
30
- version String @default("1.0.0") // Versión de la API key
31
- }
32
-
33
- model ClientsApiKeyUsage {
34
- id String @id @default(uuid())
35
- apiKeyId String
36
- clientId String
37
- ipAddress String
38
- endpoint String
39
- method String
40
- status Int
41
- usedAt DateTime @default(now())
42
- apiKey ClientsApiKeys @relation(fields: [apiKeyId], references: [id])
43
-
44
- @@index([apiKeyId])
45
- @@index([clientId])
46
- @@index([usedAt])
47
- }
48
-
49
- model api_keys {
50
- id Int @id @default(autoincrement())
51
- name String @db.VarChar(255)
52
- api_key String @unique @db.VarChar(255)
53
- is_active Boolean? @default(true)
54
- user_id Int
55
- provider_id Int?
56
- providers providers? @relation(fields: [provider_id], references: [provider_id])
57
- users users @relation(fields: [user_id], references: [user_id], onDelete: NoAction)
58
-
59
- @@index([id], map: "idx_api_keys_id")
60
- @@index([provider_id], map: "idx_api_keys_provider_id")
61
- @@index([user_id], map: "idx_api_keys_user_id")
62
- }
63
-
64
- model api_request_logs {
65
- id Int @id @default(autoincrement())
66
- api_key String @db.VarChar(255)
67
- endpoint String @db.VarChar(255)
68
- ip_address String? @db.VarChar(255)
69
- user_agent String? @db.VarChar(255)
70
- request_method String? @db.VarChar(255)
71
- status_code Int?
72
- timestamp DateTime? @db.Timestamptz(6)
73
-
74
- @@index([id], map: "idx_api_request_logs_id")
75
- @@index([status_code], map: "idx_api_request_logs_status_code")
76
- }
77
-
78
- model balances {
79
- id Int @id @default(autoincrement())
80
- amount Decimal @db.Decimal(10, 2)
81
- reserved_amount Decimal @default(0.00) @db.Decimal(10, 2)
82
- currency String @db.VarChar(10)
83
- user_id Int
84
- createdAt DateTime @db.Timestamptz(6)
85
- updatedAt DateTime @db.Timestamptz(6)
86
- isDeleted Boolean @default(false)
87
- deletedAt DateTime? @db.Timestamptz(6)
88
- users users @relation(fields: [user_id], references: [user_id], onDelete: NoAction)
89
-
90
- @@index([id], map: "idx_balances_id")
91
- @@index([user_id], map: "idx_balances_user_id")
92
- }
93
-
94
- model banks {
95
- id Int @id @default(autoincrement())
96
- name String @db.VarChar(100)
97
- code String? @db.VarChar(100)
98
- country_code String? @db.VarChar(100)
99
- createdAt DateTime @db.Timestamptz(6)
100
- updatedAt DateTime @db.Timestamptz(6)
101
-
102
- @@index([code], map: "idx_banks_code")
103
- @@index([country_code], map: "idx_banks_country_code")
104
- @@index([id], map: "idx_banks_id")
105
- }
106
-
107
- model charges {
108
- id Int @id @default(autoincrement())
109
- token String @db.VarChar(255)
110
- order_id String @unique(map: "charges_order_id") @db.VarChar(255)
111
- amount Decimal @db.Decimal(10, 2)
112
- vat_amount Decimal @db.Decimal(10, 2)
113
- description String @db.VarChar(255)
114
- user_type enum_charges_user_type
115
- document_type enum_charges_document_type
116
- bank_code String @db.VarChar(255)
117
- status String @db.VarChar(255)
118
- buyer_email String @db.VarChar(255)
119
- buyer_full_name String @db.VarChar(255)
120
- document_number String @db.VarChar(255)
121
- redirect_url String @default("https://dashboard.tupay.finance") @db.VarChar(255)
122
- traceability_code String? @db.VarChar(255)
123
- return_code String? @db.VarChar(255)
124
- bank_url String? @db.VarChar(255)
125
- buyer_phone_number String @db.VarChar(255)
126
- transaction_state String? @db.VarChar(255)
127
- created_at DateTime? @db.Timestamptz(6)
128
-
129
- @@index([bank_code], map: "idx_charges_bank_code")
130
- @@index([created_at], map: "idx_charges_created_at")
131
- @@index([id], map: "idx_charges_id")
132
- @@index([order_id], map: "idx_charges_order_id")
133
- @@index([return_code], map: "idx_charges_return_code")
134
- @@index([traceability_code], map: "idx_charges_traceability_code")
135
- }
136
-
137
- model countries {
138
- id Int @id @default(autoincrement())
139
- name String @db.VarChar(100)
140
- code String @unique @db.VarChar(3)
141
- currencyCode String @unique @db.VarChar(3)
142
- image String?
143
- createdAt DateTime @db.Timestamptz(6)
144
- updatedAt DateTime @db.Timestamptz(6)
145
- manual_transfer_bank_acounts manual_transfer_bank_acounts[]
146
- providers providers[]
147
- users users[]
148
- transactions transactions[]
149
-
150
- @@index([code], map: "idx_countries_code")
151
- @@index([id], map: "idx_countries_id")
152
- }
153
-
154
- model credit_requests {
155
- id Int @id @default(autoincrement())
156
- user_id Int?
157
- invoice_id Int?
158
- amount Decimal @db.Decimal(10, 2)
159
- status enum_transaction_status @default(pending)
160
- requested_at DateTime @db.Timestamptz(6)
161
- processed_at DateTime? @db.Timestamptz(6)
162
- invoices invoices? @relation(fields: [invoice_id], references: [id])
163
- users users? @relation(fields: [user_id], references: [user_id])
164
-
165
- @@index([id], map: "idx_credit_requests_id")
166
- @@index([invoice_id], map: "idx_credit_requests_invoice_id")
167
- @@index([user_id], map: "idx_credit_requests_user_id")
168
- }
169
-
170
- model customers {
171
- id Int @id @default(autoincrement())
172
- custom_id String? @unique @db.VarChar(255)
173
- mail String @unique @db.VarChar(255)
174
- name String @db.VarChar(255)
175
- phone_number String @db.VarChar(255)
176
- created_at DateTime @db.Timestamptz(6)
177
- user_id Int
178
- updatedAt DateTime @db.Timestamptz(6)
179
- users users @relation(fields: [user_id], references: [user_id], onDelete: NoAction)
180
-
181
- @@index([created_at], map: "idx_customers_created_at")
182
- @@index([custom_id], map: "idx_customers_custom_id")
183
- @@index([id], map: "idx_customers_id")
184
- @@index([user_id], map: "idx_customers_user_id")
185
- }
186
-
187
- model daily_logs {
188
- id Int @id @default(autoincrement())
189
- log_date DateTime @db.Timestamptz(6)
190
- details String? @db.VarChar(255)
191
- transaction_id Int?
192
- transactions transactions? @relation(fields: [transaction_id], references: [id])
193
-
194
- @@index([id], map: "idx_daily_logs_id")
195
- @@index([transaction_id], map: "idx_daily_logs_transaction_id")
196
- }
197
-
198
- model global_user_transactions {
199
- id Int @id @default(autoincrement())
200
- transaction_type enum_transaction_type
201
- amount Decimal @db.Decimal(10, 2)
202
- status enum_transaction_status
203
- executed_at DateTime? @db.Timestamptz(6)
204
- user_id Int?
205
- transaction_id Int?
206
- provider_id Int?
207
- providers providers? @relation(fields: [provider_id], references: [provider_id])
208
- transactions transactions? @relation(fields: [transaction_id], references: [id])
209
- users users? @relation(fields: [user_id], references: [user_id])
210
-
211
- @@index([id], map: "idx_global_user_transactions_id")
212
- @@index([provider_id], map: "idx_global_user_transactions_provider_id")
213
- @@index([transaction_id], map: "idx_global_user_transactions_transaction_id")
214
- @@index([user_id], map: "idx_global_user_transactions_user_id")
215
- }
216
-
217
- model invoices {
218
- id Int @id @default(autoincrement())
219
- invoice_number BigInt
220
- transaction_id Int?
221
- reference BigInt @unique
222
- amount Decimal @db.Decimal(10, 2)
223
- currency String @db.VarChar(255)
224
- status enum_transaction_status @default(pending)
225
- link_payment String? @db.VarChar(255)
226
- due_date DateTime? @db.Timestamptz(6)
227
- is_paid Boolean @default(false)
228
- createdAt DateTime @db.Timestamptz(6)
229
- updatedAt DateTime @db.Timestamptz(6)
230
- credit_requests credit_requests[]
231
- transactions transactions? @relation(fields: [transaction_id], references: [id])
232
-
233
- @@unique([id, transaction_id], map: "invoices_id_transaction_id")
234
- @@index([id], map: "idx_invoices_id")
235
- @@index([transaction_id], map: "idx_invoices_transaction_id")
236
- }
237
-
238
- model manual_payments {
239
- id Int @id @default(autoincrement())
240
- user_id Int
241
- amount Decimal @db.Decimal(10, 2)
242
- amount_received Decimal? @db.Decimal(10, 2)
243
- currency String @db.VarChar(10)
244
- bank_transaction_id Int?
245
- bank_receipt_number String? @db.VarChar(255)
246
- receipt_image_url String? @db.Text
247
- notes String?
248
- status enum_transaction_status @default(pending)
249
- admin_notes String?
250
- processed_by Int?
251
- processed_by_type String? @default("user") @db.VarChar(255)
252
- created_at DateTime @db.Timestamptz(6)
253
- processed_at DateTime? @db.Timestamptz(6)
254
- country_code String? @db.VarChar(10)
255
- bank_account_id Int?
256
- transaction_id Int?
257
- athena_matched Boolean @default(false)
258
- athena_match_id String? @db.VarChar(255)
259
- athena_matched_at DateTime? @db.Timestamptz(6)
260
- transaction transactions? @relation(fields: [transaction_id], references: [id])
261
- manual_transfer_bank_acounts manual_transfer_bank_acounts? @relation(fields: [bank_account_id], references: [id])
262
- users_manual_payments_processed_byTousers users? @relation("manual_payments_processed_byTousers", fields: [processed_by], references: [user_id])
263
- users_manual_payments_user_idTousers users @relation("manual_payments_user_idTousers", fields: [user_id], references: [user_id])
264
-
265
- @@index([bank_account_id], map: "idx_manual_payments_bank_account_id")
266
- @@index([bank_transaction_id], map: "idx_manual_payments_bank_transaction_id")
267
- @@index([bank_receipt_number], map: "idx_manual_payments_bank_receipt_number")
268
- @@index([country_code], map: "idx_manual_payments_country_code")
269
- @@index([created_at], map: "idx_manual_payments_created_at")
270
- @@index([id], map: "idx_manual_payments_id")
271
- @@index([processed_by], map: "idx_manual_payments_processed_by")
272
- @@index([user_id], map: "idx_manual_payments_user_id")
273
- }
274
-
275
- model manual_transfer_bank_acounts {
276
- id Int @id @default(autoincrement())
277
- method_name String? @db.VarChar(255)
278
- account_number String @db.VarChar(255)
279
- account_type String @db.VarChar(255)
280
- bank_name String @db.VarChar(255)
281
- bank_owner_name String? @db.VarChar(255)
282
- country_code String @db.VarChar(255)
283
- created_at DateTime @db.Timestamptz(6)
284
- updated_at DateTime @db.Timestamptz(6)
285
- manual_payments manual_payments[]
286
- countries countries @relation(fields: [country_code], references: [code])
287
-
288
- @@index([country_code], map: "idx_manual_transfer_bank_acounts_country_code")
289
- @@index([created_at], map: "idx_manual_transfer_bank_acounts_created_at")
290
- @@index([id], map: "idx_manual_transfer_bank_acounts_id")
291
- @@index([updated_at], map: "idx_manual_transfer_bank_acounts_updated_at")
292
- }
293
-
294
- model notifications {
295
- id Int @id @default(autoincrement())
296
- message String @db.VarChar(255)
297
- notification_date DateTime? @db.Timestamptz(6)
298
- metadata Json?
299
- user_id Int?
300
- transaction_id Int?
301
- transactions transactions? @relation(fields: [transaction_id], references: [id])
302
- users users? @relation(fields: [user_id], references: [user_id])
303
-
304
- @@index([id], map: "idx_notifications_id")
305
- @@index([transaction_id], map: "idx_notifications_transaction_id")
306
- @@index([user_id], map: "idx_notifications_user_id")
307
- }
308
-
309
- model pending_references {
310
- id Int @id @default(autoincrement())
311
- status enum_transaction_status
312
- reference_date DateTime? @db.Timestamptz(6)
313
- user_id Int?
314
- provider_id Int?
315
- providers providers? @relation(fields: [provider_id], references: [provider_id])
316
- users users? @relation(fields: [user_id], references: [user_id])
317
-
318
- @@index([id], map: "idx_pending_references_id")
319
- @@index([provider_id], map: "idx_pending_references_provider_id")
320
- @@index([user_id], map: "idx_pending_references_user_id")
321
- }
322
-
323
- model providers {
324
- provider_id Int @id @default(autoincrement())
325
- name String @db.VarChar(255)
326
- contact_email String? @db.VarChar(255)
327
- api_key String @unique @db.VarChar(255)
328
- is_active Boolean? @default(true)
329
- country_id Int
330
- agreement String? @db.VarChar(50)
331
- image String?
332
- api_keys api_keys[]
333
- global_user_transactions global_user_transactions[]
334
- pending_references pending_references[]
335
- countries countries @relation(fields: [country_id], references: [id], onDelete: Cascade)
336
- transactions transactions[]
337
-
338
- @@index([country_id], map: "idx_providers_country_id")
339
- @@index([provider_id], map: "idx_providers_provider_id")
340
- }
341
-
342
- model toku {
343
- id Int @id @default(autoincrement())
344
- customer String @unique @db.VarChar(255)
345
- subscription String? @unique @db.VarChar(255)
346
- invoice String? @unique @db.VarChar(255)
347
- product_id String? @unique @db.VarChar(255)
348
- is_paid Boolean? @default(false)
349
- mail String @unique @db.VarChar(50)
350
- name String @db.VarChar(50)
351
- phone_number String @db.VarChar(50)
352
- amount Decimal? @db.Decimal(10, 2)
353
- currency String? @db.VarChar(255)
354
- status enum_toku_status? @default(pending)
355
- link_payment String? @db.VarChar(255)
356
- due_date DateTime? @db.Timestamptz(6)
357
- transaction_id Int? @unique
358
- created_at DateTime? @db.Timestamptz(6)
359
- transactions transactions? @relation(fields: [transaction_id], references: [id])
360
-
361
- @@unique([id, transaction_id], map: "toku_id_transaction_id")
362
- @@index([created_at], map: "idx_toku_created_at")
363
- @@index([id], map: "idx_toku_id")
364
- @@index([product_id], map: "idx_toku_product_id")
365
- @@index([transaction_id], map: "idx_toku_transaction_id")
366
- }
367
-
368
- model transaction_updates {
369
- id Int @id @default(autoincrement())
370
- new_status enum_transaction_status
371
- update_date DateTime? @db.Timestamptz(6)
372
- transaction_id Int?
373
- transactions transactions? @relation(fields: [transaction_id], references: [id])
374
-
375
- @@index([id], map: "idx_transaction_updates_id")
376
- @@index([transaction_id], map: "idx_transaction_updates_transaction_id")
377
- }
378
-
379
- model transactions {
380
- id Int @id @default(autoincrement())
381
- uuid String? @unique
382
- reference BigInt @unique
383
- currency String @db.VarChar(10)
384
- country_id Int?
385
- amount Decimal @db.Decimal(10, 2)
386
- transaction_type enum_transaction_type
387
- user_name String @db.VarChar(50)
388
- user_phone String @db.VarChar(20)
389
- user_email String @db.VarChar(50)
390
- user_bank String @db.VarChar(50)
391
- user_type_account enum_account_type
392
- user_num_account String @db.VarChar(20)
393
- user_identification_number String @db.VarChar(255)
394
- status enum_transaction_status
395
- user_id Int?
396
- provider_id Int?
397
- createdAt DateTime @db.Timestamptz(6)
398
- updatedAt DateTime @db.Timestamptz(6)
399
- bank_name String? @db.VarChar(100)
400
- account_number String? @db.VarChar(50)
401
- custom_id String? @db.VarChar(255)
402
- commission Decimal? @default(0) @db.Decimal(10, 2)
403
- fixed_fee Decimal? @default(0) @db.Decimal(10, 2)
404
- total_commission_fee Decimal? @default(0) @db.Decimal(10, 2)
405
- total_operation Decimal? @default(0) @db.Decimal(10, 2)
406
- amount_received Decimal? @db.Decimal(10, 2)
407
- toku toku?
408
- account_type enum_account_type?
409
- daily_logs daily_logs[]
410
- global_user_transactions global_user_transactions[]
411
- invoices invoices[]
412
- notifications notifications[]
413
- transaction_updates transaction_updates[]
414
- manual_payments manual_payments[]
415
- providers providers? @relation(fields: [provider_id], references: [provider_id])
416
- users users? @relation(fields: [user_id], references: [user_id])
417
- countries countries? @relation(fields: [country_id], references: [id])
418
-
419
- @@index([custom_id], map: "idx_transactions_custom_id")
420
- @@index([id], map: "idx_transactions_id")
421
- @@index([provider_id], map: "idx_transactions_provider_id")
422
- @@index([user_id], map: "idx_transactions_user_id")
423
- @@index([uuid], map: "idx_transactions_uuid")
424
- }
425
-
426
- model users {
427
- user_id Int @id @default(autoincrement())
428
- name String @db.VarChar(255)
429
- email String @unique(map: "idx_users_email") @db.VarChar(255)
430
- password String @db.VarChar(255)
431
- onboarding_date DateTime? @db.Timestamptz(6)
432
- role enum_users_role
433
- status enum_users_status? @default(active)
434
- country_id Int
435
- createdAt DateTime @db.Timestamptz(6)
436
- updatedAt DateTime @db.Timestamptz(6)
437
- payInWebhookUrl String?
438
- payOutWebhookUrl String?
439
- payInRedirectUrl String?
440
- payOutRedirectUrl String?
441
- payin_commission_percent Decimal? @default(0) @db.Decimal(5, 2)
442
- payin_fixed_fee Decimal? @default(0) @db.Decimal(10, 2)
443
- payout_fixed_fee Decimal? @default(0) @db.Decimal(10, 2)
444
- accepts_partial_payments Boolean? @default(false)
445
- api_keys api_keys[]
446
- balances balances[]
447
- credit_requests credit_requests[]
448
- customers customers[]
449
- global_user_transactions global_user_transactions[]
450
- manual_payments_manual_payments_processed_byTousers manual_payments[] @relation("manual_payments_processed_byTousers")
451
- manual_payments_manual_payments_user_idTousers manual_payments[] @relation("manual_payments_user_idTousers")
452
- notifications notifications[]
453
- pending_references pending_references[]
454
- transactions transactions[]
455
- settlements settlements[]
456
- countries countries @relation(fields: [country_id], references: [id], onDelete: Cascade)
457
- isDeleted Boolean @default(false)
458
- deletedAt DateTime? @db.Timestamptz(6)
459
- reset_token String? @db.VarChar(255)
460
- reset_token_expiry DateTime? @db.Timestamp
461
-
462
- @@index([country_id], map: "idx_users_country_id")
463
- @@index([user_id], map: "idx_users_user_id")
464
- }
465
-
466
- enum enum_account_type {
467
- checking
468
- savings
469
- }
470
-
471
- enum enum_charges_document_type {
472
- CC
473
- CE
474
- NIT
475
- TI
476
- PP
477
- }
478
-
479
- enum enum_charges_user_type {
480
- NATURAL
481
- LEGAL
482
- }
483
-
484
- enum enum_toku_status {
485
- pending
486
- paid
487
- failed
488
- }
489
-
490
- enum enum_transaction_status {
491
- pending
492
- approved
493
- rejected
494
- paid
495
- completed
496
- failed
497
- canceled
498
- processed
499
- }
500
-
501
- enum enum_transaction_type {
502
- payin
503
- payout
504
- }
505
-
506
- enum enum_users_role {
507
- user
508
- admin
509
- }
510
-
511
- enum enum_users_status {
512
- active
513
- inactive
514
- }
515
-
516
- enum enum_credit_requests_status {
517
- pending
518
- approved
519
- rejected
520
- }
521
-
522
- enum enum_global_user_transactions_status {
523
- pending
524
- approved
525
- rejected
526
- }
527
-
528
- enum enum_global_user_transactions_transaction_type {
529
- payin
530
- payout
531
- }
532
-
533
- enum enum_invoices_status {
534
- pending
535
- paid
536
- failed
537
- }
538
-
539
- enum enum_pending_references_status {
540
- pending
541
- processed
542
- }
543
-
544
- enum enum_transaction_updates_new_status {
545
- approved
546
- rejected
547
- }
548
-
549
- enum enum_transactions_account_type {
550
- checking
551
- savings
552
- }
553
-
554
- enum enum_transactions_status {
555
- pending
556
- approved
557
- rejected
558
- paid
559
- completed
560
- failed
561
- }
562
-
563
- enum enum_transactions_transaction_type {
564
- payin
565
- payout
566
- }
567
-
568
- enum enum_transactions_user_type_account {
569
- checking
570
- savings
571
- }
572
-
573
- enum enum_settlements_status {
574
- pending
575
- completed
576
- cancelled
577
- }
578
-
579
- model settlements {
580
- id Int @id @default(autoincrement())
581
- user_id Int
582
- settlement_date DateTime @db.Timestamptz(6)
583
- period_start DateTime @db.Timestamptz(6)
584
- period_end DateTime @db.Timestamptz(6)
585
- payin_count Int @default(0)
586
- payin_total_amount Decimal @default(0) @db.Decimal(15, 2)
587
- payin_total_commission Decimal @default(0) @db.Decimal(15, 2)
588
- payin_net_amount Decimal @default(0) @db.Decimal(15, 2)
589
- payout_count Int @default(0)
590
- payout_total_amount Decimal @default(0) @db.Decimal(15, 2)
591
- payout_total_commission Decimal @default(0) @db.Decimal(15, 2)
592
- payout_total_with_commission Decimal @default(0) @db.Decimal(15, 2)
593
- total_commission Decimal @default(0) @db.Decimal(15, 2)
594
- balance_before Decimal @default(0) @db.Decimal(15, 2)
595
- settlement_amount Decimal @default(0) @db.Decimal(15, 2)
596
- balance_after Decimal @default(0) @db.Decimal(15, 2)
597
- status enum_settlements_status @default(pending)
598
- notes String? @db.Text
599
- currency String @default("USD") @db.VarChar(3)
600
- created_at DateTime @default(now()) @db.Timestamptz(6)
601
- updated_at DateTime @updatedAt @db.Timestamptz(6)
602
- users users @relation(fields: [user_id], references: [user_id], onDelete: Cascade)
603
-
604
- @@index([user_id], map: "idx_settlements_user_id")
605
- @@index([period_start, period_end], map: "idx_settlements_period")
606
- @@index([settlement_date], map: "idx_settlements_date")
607
- }
1
+ generator client {
2
+ provider = "prisma-client-js"
3
+ }
4
+
5
+ datasource db {
6
+ provider = "postgresql"
7
+ url = env("DATABASE_URL")
8
+ }
9
+
10
+ model ClientsApiKeys {
11
+ id String @id @default(uuid())
12
+ key String @unique
13
+ clientId String @unique
14
+ clientSecret String @unique
15
+ isActive Boolean @default(true)
16
+ expiresAt DateTime
17
+ createdAt DateTime @default(now())
18
+ updatedAt DateTime @updatedAt
19
+ lastUsedAt DateTime?
20
+ ipWhitelist String[] @default([])
21
+ rateLimit Int? @default(1000) // requests per day
22
+ usage ClientsApiKeyUsage[]
23
+ metadata Json? // Para almacenar información adicional como nombre del cliente, propósito, etc.
24
+ revokedAt DateTime? // Para revocar API keys
25
+ revokedBy String? // Quién revocó la API key
26
+ revokedReason String? // Razón de la revocación
27
+ allowedEndpoints String[] @default([]) // Endpoints permitidos para esta API key
28
+ maxRequestsPerMinute Int? @default(60) // Rate limiting por minuto
29
+ environment String @default("development") // development, staging, production
30
+ version String @default("1.0.0") // Versión de la API key
31
+ }
32
+
33
+ model ClientsApiKeyUsage {
34
+ id String @id @default(uuid())
35
+ apiKeyId String
36
+ clientId String
37
+ ipAddress String
38
+ endpoint String
39
+ method String
40
+ status Int
41
+ usedAt DateTime @default(now())
42
+ apiKey ClientsApiKeys @relation(fields: [apiKeyId], references: [id])
43
+
44
+ @@index([apiKeyId])
45
+ @@index([clientId])
46
+ @@index([usedAt])
47
+ }
48
+
49
+ model api_keys {
50
+ id Int @id @default(autoincrement())
51
+ name String @db.VarChar(255)
52
+ api_key String @unique @db.VarChar(255)
53
+ is_active Boolean? @default(true)
54
+ user_id Int
55
+ provider_id Int?
56
+ providers providers? @relation(fields: [provider_id], references: [provider_id])
57
+ users users @relation(fields: [user_id], references: [user_id], onDelete: NoAction)
58
+
59
+ @@index([id], map: "idx_api_keys_id")
60
+ @@index([provider_id], map: "idx_api_keys_provider_id")
61
+ @@index([user_id], map: "idx_api_keys_user_id")
62
+ }
63
+
64
+ model api_request_logs {
65
+ id Int @id @default(autoincrement())
66
+ api_key String @db.VarChar(255)
67
+ endpoint String @db.VarChar(255)
68
+ ip_address String? @db.VarChar(255)
69
+ user_agent String? @db.VarChar(255)
70
+ request_method String? @db.VarChar(255)
71
+ status_code Int?
72
+ timestamp DateTime? @db.Timestamptz(6)
73
+
74
+ @@index([id], map: "idx_api_request_logs_id")
75
+ @@index([status_code], map: "idx_api_request_logs_status_code")
76
+ }
77
+
78
+ model balances {
79
+ id Int @id @default(autoincrement())
80
+ amount Decimal @db.Decimal(10, 2)
81
+ reserved_amount Decimal @default(0.00) @db.Decimal(10, 2)
82
+ currency String @db.VarChar(10)
83
+ user_id Int
84
+ createdAt DateTime @db.Timestamptz(6)
85
+ updatedAt DateTime @db.Timestamptz(6)
86
+ isDeleted Boolean @default(false)
87
+ deletedAt DateTime? @db.Timestamptz(6)
88
+ users users @relation(fields: [user_id], references: [user_id], onDelete: NoAction)
89
+
90
+ @@index([id], map: "idx_balances_id")
91
+ @@index([user_id], map: "idx_balances_user_id")
92
+ }
93
+
94
+ model banks {
95
+ id Int @id @default(autoincrement())
96
+ name String @db.VarChar(100)
97
+ code String? @db.VarChar(100)
98
+ country_code String? @db.VarChar(100)
99
+ createdAt DateTime @db.Timestamptz(6)
100
+ updatedAt DateTime @db.Timestamptz(6)
101
+
102
+ @@index([code], map: "idx_banks_code")
103
+ @@index([country_code], map: "idx_banks_country_code")
104
+ @@index([id], map: "idx_banks_id")
105
+ }
106
+
107
+ model charges {
108
+ id Int @id @default(autoincrement())
109
+ token String @db.VarChar(255)
110
+ order_id String @unique(map: "charges_order_id") @db.VarChar(255)
111
+ amount Decimal @db.Decimal(10, 2)
112
+ vat_amount Decimal @db.Decimal(10, 2)
113
+ description String @db.VarChar(255)
114
+ user_type enum_charges_user_type
115
+ document_type enum_charges_document_type
116
+ bank_code String @db.VarChar(255)
117
+ status String @db.VarChar(255)
118
+ buyer_email String @db.VarChar(255)
119
+ buyer_full_name String @db.VarChar(255)
120
+ document_number String @db.VarChar(255)
121
+ redirect_url String @default("https://dashboard.tupay.finance") @db.VarChar(255)
122
+ traceability_code String? @db.VarChar(255)
123
+ return_code String? @db.VarChar(255)
124
+ bank_url String? @db.VarChar(255)
125
+ buyer_phone_number String @db.VarChar(255)
126
+ transaction_state String? @db.VarChar(255)
127
+ created_at DateTime? @db.Timestamptz(6)
128
+
129
+ @@index([bank_code], map: "idx_charges_bank_code")
130
+ @@index([created_at], map: "idx_charges_created_at")
131
+ @@index([id], map: "idx_charges_id")
132
+ @@index([order_id], map: "idx_charges_order_id")
133
+ @@index([return_code], map: "idx_charges_return_code")
134
+ @@index([traceability_code], map: "idx_charges_traceability_code")
135
+ }
136
+
137
+ model countries {
138
+ id Int @id @default(autoincrement())
139
+ name String @db.VarChar(100)
140
+ code String @unique @db.VarChar(3)
141
+ currencyCode String @unique @db.VarChar(3)
142
+ image String?
143
+ createdAt DateTime @db.Timestamptz(6)
144
+ updatedAt DateTime @db.Timestamptz(6)
145
+ manual_transfer_bank_acounts manual_transfer_bank_acounts[]
146
+ providers providers[]
147
+ users users[]
148
+ transactions transactions[]
149
+
150
+ @@index([code], map: "idx_countries_code")
151
+ @@index([id], map: "idx_countries_id")
152
+ }
153
+
154
+ model credit_requests {
155
+ id Int @id @default(autoincrement())
156
+ user_id Int?
157
+ invoice_id Int?
158
+ amount Decimal @db.Decimal(10, 2)
159
+ status enum_transaction_status @default(pending)
160
+ requested_at DateTime @db.Timestamptz(6)
161
+ processed_at DateTime? @db.Timestamptz(6)
162
+ invoices invoices? @relation(fields: [invoice_id], references: [id])
163
+ users users? @relation(fields: [user_id], references: [user_id])
164
+
165
+ @@index([id], map: "idx_credit_requests_id")
166
+ @@index([invoice_id], map: "idx_credit_requests_invoice_id")
167
+ @@index([user_id], map: "idx_credit_requests_user_id")
168
+ }
169
+
170
+ model customers {
171
+ id Int @id @default(autoincrement())
172
+ custom_id String? @unique @db.VarChar(255)
173
+ mail String @unique @db.VarChar(255)
174
+ name String @db.VarChar(255)
175
+ phone_number String @db.VarChar(255)
176
+ created_at DateTime @db.Timestamptz(6)
177
+ user_id Int
178
+ updatedAt DateTime @db.Timestamptz(6)
179
+ users users @relation(fields: [user_id], references: [user_id], onDelete: NoAction)
180
+
181
+ @@index([created_at], map: "idx_customers_created_at")
182
+ @@index([custom_id], map: "idx_customers_custom_id")
183
+ @@index([id], map: "idx_customers_id")
184
+ @@index([user_id], map: "idx_customers_user_id")
185
+ }
186
+
187
+ model daily_logs {
188
+ id Int @id @default(autoincrement())
189
+ log_date DateTime @db.Timestamptz(6)
190
+ details String? @db.VarChar(255)
191
+ transaction_id Int?
192
+ transactions transactions? @relation(fields: [transaction_id], references: [id])
193
+
194
+ @@index([id], map: "idx_daily_logs_id")
195
+ @@index([transaction_id], map: "idx_daily_logs_transaction_id")
196
+ }
197
+
198
+ model global_user_transactions {
199
+ id Int @id @default(autoincrement())
200
+ transaction_type enum_transaction_type
201
+ amount Decimal @db.Decimal(10, 2)
202
+ status enum_transaction_status
203
+ executed_at DateTime? @db.Timestamptz(6)
204
+ user_id Int?
205
+ transaction_id Int?
206
+ provider_id Int?
207
+ providers providers? @relation(fields: [provider_id], references: [provider_id])
208
+ transactions transactions? @relation(fields: [transaction_id], references: [id])
209
+ users users? @relation(fields: [user_id], references: [user_id])
210
+
211
+ @@index([id], map: "idx_global_user_transactions_id")
212
+ @@index([provider_id], map: "idx_global_user_transactions_provider_id")
213
+ @@index([transaction_id], map: "idx_global_user_transactions_transaction_id")
214
+ @@index([user_id], map: "idx_global_user_transactions_user_id")
215
+ }
216
+
217
+ model invoices {
218
+ id Int @id @default(autoincrement())
219
+ invoice_number BigInt
220
+ transaction_id Int?
221
+ reference BigInt @unique
222
+ amount Decimal @db.Decimal(10, 2)
223
+ currency String @db.VarChar(255)
224
+ status enum_transaction_status @default(pending)
225
+ link_payment String? @db.VarChar(255)
226
+ due_date DateTime? @db.Timestamptz(6)
227
+ is_paid Boolean @default(false)
228
+ createdAt DateTime @db.Timestamptz(6)
229
+ updatedAt DateTime @db.Timestamptz(6)
230
+ credit_requests credit_requests[]
231
+ transactions transactions? @relation(fields: [transaction_id], references: [id])
232
+
233
+ @@unique([id, transaction_id], map: "invoices_id_transaction_id")
234
+ @@index([id], map: "idx_invoices_id")
235
+ @@index([transaction_id], map: "idx_invoices_transaction_id")
236
+ }
237
+
238
+ model manual_payments {
239
+ id Int @id @default(autoincrement())
240
+ user_id Int
241
+ amount Decimal @db.Decimal(10, 2)
242
+ amount_received Decimal? @db.Decimal(10, 2)
243
+ currency String @db.VarChar(10)
244
+ bank_transaction_id Int?
245
+ bank_receipt_number String? @db.VarChar(255)
246
+ receipt_image_url String? @db.Text
247
+ notes String?
248
+ status enum_transaction_status @default(pending)
249
+ admin_notes String?
250
+ processed_by Int?
251
+ processed_by_type String? @default("user") @db.VarChar(255)
252
+ created_at DateTime @db.Timestamptz(6)
253
+ processed_at DateTime? @db.Timestamptz(6)
254
+ country_code String? @db.VarChar(10)
255
+ bank_account_id Int?
256
+ transaction_id Int?
257
+ athena_matched Boolean @default(false)
258
+ athena_match_id String? @db.VarChar(255)
259
+ athena_matched_at DateTime? @db.Timestamptz(6)
260
+ match_retry_count Int @default(0)
261
+ transaction transactions? @relation(fields: [transaction_id], references: [id])
262
+ manual_transfer_bank_acounts manual_transfer_bank_acounts? @relation(fields: [bank_account_id], references: [id])
263
+ users_manual_payments_processed_byTousers users? @relation("manual_payments_processed_byTousers", fields: [processed_by], references: [user_id])
264
+ users_manual_payments_user_idTousers users @relation("manual_payments_user_idTousers", fields: [user_id], references: [user_id])
265
+
266
+ @@index([bank_account_id], map: "idx_manual_payments_bank_account_id")
267
+ @@index([bank_transaction_id], map: "idx_manual_payments_bank_transaction_id")
268
+ @@index([bank_receipt_number], map: "idx_manual_payments_bank_receipt_number")
269
+ @@index([country_code], map: "idx_manual_payments_country_code")
270
+ @@index([created_at], map: "idx_manual_payments_created_at")
271
+ @@index([id], map: "idx_manual_payments_id")
272
+ @@index([processed_by], map: "idx_manual_payments_processed_by")
273
+ @@index([user_id], map: "idx_manual_payments_user_id")
274
+ }
275
+
276
+ model manual_transfer_bank_acounts {
277
+ id Int @id @default(autoincrement())
278
+ method_name String? @db.VarChar(255)
279
+ account_number String @db.VarChar(255)
280
+ account_type String @db.VarChar(255)
281
+ bank_name String @db.VarChar(255)
282
+ bank_owner_name String? @db.VarChar(255)
283
+ country_code String @db.VarChar(255)
284
+ created_at DateTime @db.Timestamptz(6)
285
+ updated_at DateTime @db.Timestamptz(6)
286
+ manual_payments manual_payments[]
287
+ countries countries @relation(fields: [country_code], references: [code])
288
+
289
+ @@index([country_code], map: "idx_manual_transfer_bank_acounts_country_code")
290
+ @@index([created_at], map: "idx_manual_transfer_bank_acounts_created_at")
291
+ @@index([id], map: "idx_manual_transfer_bank_acounts_id")
292
+ @@index([updated_at], map: "idx_manual_transfer_bank_acounts_updated_at")
293
+ }
294
+
295
+ model notifications {
296
+ id Int @id @default(autoincrement())
297
+ message String @db.VarChar(255)
298
+ notification_date DateTime? @db.Timestamptz(6)
299
+ metadata Json?
300
+ user_id Int?
301
+ transaction_id Int?
302
+ transactions transactions? @relation(fields: [transaction_id], references: [id])
303
+ users users? @relation(fields: [user_id], references: [user_id])
304
+
305
+ @@index([id], map: "idx_notifications_id")
306
+ @@index([transaction_id], map: "idx_notifications_transaction_id")
307
+ @@index([user_id], map: "idx_notifications_user_id")
308
+ }
309
+
310
+ model pending_references {
311
+ id Int @id @default(autoincrement())
312
+ status enum_transaction_status
313
+ reference_date DateTime? @db.Timestamptz(6)
314
+ user_id Int?
315
+ provider_id Int?
316
+ providers providers? @relation(fields: [provider_id], references: [provider_id])
317
+ users users? @relation(fields: [user_id], references: [user_id])
318
+
319
+ @@index([id], map: "idx_pending_references_id")
320
+ @@index([provider_id], map: "idx_pending_references_provider_id")
321
+ @@index([user_id], map: "idx_pending_references_user_id")
322
+ }
323
+
324
+ model providers {
325
+ provider_id Int @id @default(autoincrement())
326
+ name String @db.VarChar(255)
327
+ contact_email String? @db.VarChar(255)
328
+ api_key String @unique @db.VarChar(255)
329
+ is_active Boolean? @default(true)
330
+ country_id Int
331
+ agreement String? @db.VarChar(50)
332
+ image String?
333
+ api_keys api_keys[]
334
+ global_user_transactions global_user_transactions[]
335
+ pending_references pending_references[]
336
+ countries countries @relation(fields: [country_id], references: [id], onDelete: Cascade)
337
+ transactions transactions[]
338
+
339
+ @@index([country_id], map: "idx_providers_country_id")
340
+ @@index([provider_id], map: "idx_providers_provider_id")
341
+ }
342
+
343
+ model toku {
344
+ id Int @id @default(autoincrement())
345
+ customer String @unique @db.VarChar(255)
346
+ subscription String? @unique @db.VarChar(255)
347
+ invoice String? @unique @db.VarChar(255)
348
+ product_id String? @unique @db.VarChar(255)
349
+ is_paid Boolean? @default(false)
350
+ mail String @unique @db.VarChar(50)
351
+ name String @db.VarChar(50)
352
+ phone_number String @db.VarChar(50)
353
+ amount Decimal? @db.Decimal(10, 2)
354
+ currency String? @db.VarChar(255)
355
+ status enum_toku_status? @default(pending)
356
+ link_payment String? @db.VarChar(255)
357
+ due_date DateTime? @db.Timestamptz(6)
358
+ transaction_id Int? @unique
359
+ created_at DateTime? @db.Timestamptz(6)
360
+ transactions transactions? @relation(fields: [transaction_id], references: [id])
361
+
362
+ @@unique([id, transaction_id], map: "toku_id_transaction_id")
363
+ @@index([created_at], map: "idx_toku_created_at")
364
+ @@index([id], map: "idx_toku_id")
365
+ @@index([product_id], map: "idx_toku_product_id")
366
+ @@index([transaction_id], map: "idx_toku_transaction_id")
367
+ }
368
+
369
+ model transaction_updates {
370
+ id Int @id @default(autoincrement())
371
+ new_status enum_transaction_status
372
+ update_date DateTime? @db.Timestamptz(6)
373
+ transaction_id Int?
374
+ transactions transactions? @relation(fields: [transaction_id], references: [id])
375
+
376
+ @@index([id], map: "idx_transaction_updates_id")
377
+ @@index([transaction_id], map: "idx_transaction_updates_transaction_id")
378
+ }
379
+
380
+ model transactions {
381
+ id Int @id @default(autoincrement())
382
+ uuid String? @unique
383
+ reference BigInt @unique
384
+ currency String @db.VarChar(10)
385
+ country_id Int?
386
+ amount Decimal @db.Decimal(10, 2)
387
+ transaction_type enum_transaction_type
388
+ user_name String @db.VarChar(50)
389
+ user_phone String @db.VarChar(20)
390
+ user_email String @db.VarChar(50)
391
+ user_bank String @db.VarChar(50)
392
+ user_type_account enum_account_type
393
+ user_num_account String @db.VarChar(20)
394
+ user_identification_number String @db.VarChar(255)
395
+ status enum_transaction_status
396
+ user_id Int?
397
+ provider_id Int?
398
+ createdAt DateTime @db.Timestamptz(6)
399
+ updatedAt DateTime @db.Timestamptz(6)
400
+ bank_name String? @db.VarChar(100)
401
+ account_number String? @db.VarChar(50)
402
+ custom_id String? @db.VarChar(255)
403
+ commission Decimal? @default(0) @db.Decimal(10, 2)
404
+ fixed_fee Decimal? @default(0) @db.Decimal(10, 2)
405
+ total_commission_fee Decimal? @default(0) @db.Decimal(10, 2)
406
+ total_operation Decimal? @default(0) @db.Decimal(10, 2)
407
+ amount_received Decimal? @db.Decimal(10, 2)
408
+ toku toku?
409
+ account_type enum_account_type?
410
+ daily_logs daily_logs[]
411
+ global_user_transactions global_user_transactions[]
412
+ invoices invoices[]
413
+ notifications notifications[]
414
+ transaction_updates transaction_updates[]
415
+ manual_payments manual_payments[]
416
+ providers providers? @relation(fields: [provider_id], references: [provider_id])
417
+ users users? @relation(fields: [user_id], references: [user_id])
418
+ countries countries? @relation(fields: [country_id], references: [id])
419
+
420
+ @@index([custom_id], map: "idx_transactions_custom_id")
421
+ @@index([id], map: "idx_transactions_id")
422
+ @@index([provider_id], map: "idx_transactions_provider_id")
423
+ @@index([user_id], map: "idx_transactions_user_id")
424
+ @@index([uuid], map: "idx_transactions_uuid")
425
+ }
426
+
427
+ model users {
428
+ user_id Int @id @default(autoincrement())
429
+ name String @db.VarChar(255)
430
+ email String @unique(map: "idx_users_email") @db.VarChar(255)
431
+ password String @db.VarChar(255)
432
+ onboarding_date DateTime? @db.Timestamptz(6)
433
+ role enum_users_role
434
+ status enum_users_status? @default(active)
435
+ country_id Int
436
+ createdAt DateTime @db.Timestamptz(6)
437
+ updatedAt DateTime @db.Timestamptz(6)
438
+ payInWebhookUrl String?
439
+ payOutWebhookUrl String?
440
+ payInRedirectUrl String?
441
+ payOutRedirectUrl String?
442
+ payin_commission_percent Decimal? @default(0) @db.Decimal(5, 2)
443
+ payin_fixed_fee Decimal? @default(0) @db.Decimal(10, 2)
444
+ payout_fixed_fee Decimal? @default(0) @db.Decimal(10, 2)
445
+ accepts_partial_payments Boolean? @default(false)
446
+ api_keys api_keys[]
447
+ balances balances[]
448
+ credit_requests credit_requests[]
449
+ customers customers[]
450
+ global_user_transactions global_user_transactions[]
451
+ manual_payments_manual_payments_processed_byTousers manual_payments[] @relation("manual_payments_processed_byTousers")
452
+ manual_payments_manual_payments_user_idTousers manual_payments[] @relation("manual_payments_user_idTousers")
453
+ notifications notifications[]
454
+ pending_references pending_references[]
455
+ transactions transactions[]
456
+ settlements settlements[]
457
+ countries countries @relation(fields: [country_id], references: [id], onDelete: Cascade)
458
+ isDeleted Boolean @default(false)
459
+ deletedAt DateTime? @db.Timestamptz(6)
460
+ reset_token String? @db.VarChar(255)
461
+ reset_token_expiry DateTime? @db.Timestamp
462
+
463
+ @@index([country_id], map: "idx_users_country_id")
464
+ @@index([user_id], map: "idx_users_user_id")
465
+ }
466
+
467
+ enum enum_account_type {
468
+ checking
469
+ savings
470
+ }
471
+
472
+ enum enum_charges_document_type {
473
+ CC
474
+ CE
475
+ NIT
476
+ TI
477
+ PP
478
+ }
479
+
480
+ enum enum_charges_user_type {
481
+ NATURAL
482
+ LEGAL
483
+ }
484
+
485
+ enum enum_toku_status {
486
+ pending
487
+ paid
488
+ failed
489
+ }
490
+
491
+ enum enum_transaction_status {
492
+ pending
493
+ approved
494
+ rejected
495
+ paid
496
+ completed
497
+ failed
498
+ canceled
499
+ processed
500
+ pending_match
501
+ }
502
+
503
+ enum enum_transaction_type {
504
+ payin
505
+ payout
506
+ }
507
+
508
+ enum enum_users_role {
509
+ user
510
+ admin
511
+ }
512
+
513
+ enum enum_users_status {
514
+ active
515
+ inactive
516
+ }
517
+
518
+ enum enum_credit_requests_status {
519
+ pending
520
+ approved
521
+ rejected
522
+ }
523
+
524
+ enum enum_global_user_transactions_status {
525
+ pending
526
+ approved
527
+ rejected
528
+ }
529
+
530
+ enum enum_global_user_transactions_transaction_type {
531
+ payin
532
+ payout
533
+ }
534
+
535
+ enum enum_invoices_status {
536
+ pending
537
+ paid
538
+ failed
539
+ }
540
+
541
+ enum enum_pending_references_status {
542
+ pending
543
+ processed
544
+ }
545
+
546
+ enum enum_transaction_updates_new_status {
547
+ approved
548
+ rejected
549
+ }
550
+
551
+ enum enum_transactions_account_type {
552
+ checking
553
+ savings
554
+ }
555
+
556
+ enum enum_transactions_status {
557
+ pending
558
+ approved
559
+ rejected
560
+ paid
561
+ completed
562
+ failed
563
+ }
564
+
565
+ enum enum_transactions_transaction_type {
566
+ payin
567
+ payout
568
+ }
569
+
570
+ enum enum_transactions_user_type_account {
571
+ checking
572
+ savings
573
+ }
574
+
575
+ enum enum_settlements_status {
576
+ pending
577
+ completed
578
+ cancelled
579
+ }
580
+
581
+ model settlements {
582
+ id Int @id @default(autoincrement())
583
+ user_id Int
584
+ settlement_date DateTime @db.Timestamptz(6)
585
+ period_start DateTime @db.Timestamptz(6)
586
+ period_end DateTime @db.Timestamptz(6)
587
+ payin_count Int @default(0)
588
+ payin_total_amount Decimal @default(0) @db.Decimal(15, 2)
589
+ payin_total_commission Decimal @default(0) @db.Decimal(15, 2)
590
+ payin_net_amount Decimal @default(0) @db.Decimal(15, 2)
591
+ payout_count Int @default(0)
592
+ payout_total_amount Decimal @default(0) @db.Decimal(15, 2)
593
+ payout_total_commission Decimal @default(0) @db.Decimal(15, 2)
594
+ payout_total_with_commission Decimal @default(0) @db.Decimal(15, 2)
595
+ total_commission Decimal @default(0) @db.Decimal(15, 2)
596
+ balance_before Decimal @default(0) @db.Decimal(15, 2)
597
+ settlement_amount Decimal @default(0) @db.Decimal(15, 2)
598
+ balance_after Decimal @default(0) @db.Decimal(15, 2)
599
+ status enum_settlements_status @default(pending)
600
+ notes String? @db.Text
601
+ currency String @default("USD") @db.VarChar(3)
602
+ created_at DateTime @default(now()) @db.Timestamptz(6)
603
+ updated_at DateTime @updatedAt @db.Timestamptz(6)
604
+ users users @relation(fields: [user_id], references: [user_id], onDelete: Cascade)
605
+
606
+ @@index([user_id], map: "idx_settlements_user_id")
607
+ @@index([period_start, period_end], map: "idx_settlements_period")
608
+ @@index([settlement_date], map: "idx_settlements_date")
609
+ }