@@ -7,45 +7,38 @@ datasource db {
77}
88
99model User {
10- id String @id @default (uuid () )
11- publicKey String @unique
12- createdAt DateTime @default (now () )
13- updatedAt DateTime @updatedAt
14- settings Setting ?
15- sentTxs Transaction [] @relation (" sender " )
16- receivedTxs Transaction [] @relation (" recipient " )
17- notifications Notification []
18- notificationPreference NotificationPreference ?
19- id String @id @default (uuid () )
20- publicKey String @unique
21- createdAt DateTime @default (now () )
22- updatedAt DateTime @updatedAt
23- settings Setting ?
24- sentTxs Transaction [] @relation (" sender " )
25- receivedTxs Transaction [] @relation (" recipient " )
26- sentStreams PaymentStream [] @relation (" streamSender " )
27- receivedStreams PaymentStream [] @relation (" streamRecipient " )
28- kycRecord KYCRecord ?
29- sentTxs Transaction [] @relation (" sender " )
30- receivedTxs Transaction [] @relation (" recipient " )
10+ id String @id @default (uuid () )
11+ publicKey String @unique
12+ createdAt DateTime @default (now () )
13+ updatedAt DateTime @updatedAt
14+ settings Setting ?
15+ sentTxs Transaction [] @relation (" sender " )
16+ receivedTxs Transaction [] @relation (" recipient " )
17+ sentStreams PaymentStream [] @relation (" streamSender " )
18+ receivedStreams PaymentStream [] @relation (" streamRecipient " )
19+ notifications Notification []
20+ notificationPreference NotificationPreference ?
21+ kycRecord KYCRecord ?
22+ amlAlerts AMLAlert []
3123}
3224
3325model Transaction {
34- id String @id @default (uuid () )
35- hash String @unique
36- assetCode String @default (" XLM " )
26+ id String @id @default (uuid () )
27+ hash String @unique
28+ assetCode String @default (" XLM " )
3729 amount Decimal
3830 ledger Int ?
39- successful Boolean @default (true )
40- createdAt DateTime @default (now () )
31+ successful Boolean @default (true )
32+ createdAt DateTime @default (now () )
4133 senderId String
42- sender User @relation (" sender " , fields : [senderId ] , references : [id ] )
34+ sender User @relation (" sender " , fields : [senderId ] , references : [id ] )
4335 recipientId String
44- recipient User @relation (" recipient " , fields : [recipientId ] , references : [id ] )
45- retryAttempts Int @default (0 )
36+ recipient User @relation (" recipient " , fields : [recipientId ] , references : [id ] )
37+ retryAttempts Int @default (0 )
4638 retryStatus String ?
4739 lastRetryAt DateTime ?
4840 retryHistory RetryAttempt []
41+ amlAlerts AMLAlert []
4942}
5043
5144model RetryAttempt {
@@ -59,12 +52,12 @@ model RetryAttempt {
5952}
6053
6154model Setting {
62- id String @id @default (uuid () )
63- userId String @unique
64- user User @relation (fields : [userId ] , references : [id ] , onDelete : Cascade )
65- defaultAsset String @default (" XLM " )
66- notificationsOn Boolean @default (true )
67- updatedAt DateTime @updatedAt
55+ id String @id @default (uuid () )
56+ userId String @unique
57+ user User @relation (fields : [userId ] , references : [id ] , onDelete : Cascade )
58+ defaultAsset String @default (" XLM " )
59+ notificationsOn Boolean @default (true )
60+ updatedAt DateTime @updatedAt
6861}
6962
7063enum StreamStatus {
@@ -82,17 +75,19 @@ model PaymentStream {
8275 recipientId String
8376 recipient User @relation (" streamRecipient " , fields : [recipientId ] , references : [id ] )
8477 assetCode String @default (" XLM " )
85- rateAmount Decimal // amount to stream per interval
78+ rateAmount Decimal
8679 intervalSeconds Int @default (60 )
8780 startTime DateTime @default (now () )
8881 endTime DateTime ?
8982 lastProcessedAt DateTime @default (now () )
90- totalStreamed Decimal @default (0 )
83+ totalStreamed Decimal @default (0 )
9184 status StreamStatus @default (ACTIVE )
9285 failureCount Int @default (0 )
9386 metadata Json ?
9487 createdAt DateTime @default (now () )
9588 updatedAt DateTime @updatedAt
89+ }
90+
9691model Notification {
9792 id String @id @default (uuid () )
9893 userId String
@@ -111,22 +106,24 @@ model Notification {
111106}
112107
113108model NotificationPreference {
114- id String @id @default (uuid () )
115- userId String @unique
116- user User @relation (fields : [userId ] , references : [id ] , onDelete : Cascade )
117- emailEnabled Boolean @default (true )
118- pushEnabled Boolean @default (true )
119- smsEnabled Boolean @default (false )
120- inAppEnabled Boolean @default (true )
121- quietHoursStart Int @default (22 )
122- quietHoursEnd Int @default (7 )
123- typeOverrides Json ?
124- updatedAt DateTime @updatedAt
109+ id String @id @default (uuid () )
110+ userId String @unique
111+ user User @relation (fields : [userId ] , references : [id ] , onDelete : Cascade )
112+ emailEnabled Boolean @default (true )
113+ pushEnabled Boolean @default (true )
114+ smsEnabled Boolean @default (false )
115+ inAppEnabled Boolean @default (true )
116+ quietHoursStart Int @default (22 )
117+ quietHoursEnd Int @default (7 )
118+ typeOverrides Json ?
119+ updatedAt DateTime @updatedAt
120+ }
121+
125122model KYCRecord {
126123 id String @id @default (uuid () )
127124 userId String @unique
128125 user User @relation (fields : [userId ] , references : [id ] , onDelete : Cascade )
129- status String @default (" PENDING " ) // PENDING | APPROVED | REJECTED | UNDER_REVIEW
126+ status String @default (" PENDING " )
130127 fullName String
131128 dateOfBirth String
132129 nationality String
@@ -142,13 +139,15 @@ model KYCRecord {
142139}
143140
144141model AMLAlert {
145- id String @id @default (uuid () )
142+ id String @id @default (uuid () )
146143 transactionId String
144+ transaction Transaction @relation (fields : [transactionId ] , references : [id ] , onDelete : Restrict )
147145 userId String
146+ user User @relation (fields : [userId ] , references : [id ] , onDelete : Restrict )
148147 ruleId String
149148 severity String
150149 description String
151150 riskScore Int
152151 riskLevel String
153- createdAt DateTime @default (now () )
152+ createdAt DateTime @default (now () )
154153}
0 commit comments