Skip to content

Commit 5ba4b19

Browse files
committed
update database schema
1 parent b3b5ba7 commit 5ba4b19

1 file changed

Lines changed: 55 additions & 21 deletions

File tree

prisma/schema.prisma

Lines changed: 55 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,42 @@ enum ServiceIdentifier {
1414
DB
1515
}
1616

17+
enum AuditAction {
18+
USER_LOGIN
19+
USER_LOGOUT
20+
USER_REGISTER
21+
PASSWORD_CHANGE
22+
TWO_FACTOR_ENABLE
23+
TWO_FACTOR_DISABLE
24+
USER_UPDATE
25+
USER_DELETE
26+
SESSION_CREATE
27+
SESSION_DELETE
28+
SERVICE_ACCESS_GRANT
29+
SERVICE_ACCESS_REVOKE
30+
SERVICE_TIER_CHANGE
31+
SUBSCRIPTION_CREATE
32+
SUBSCRIPTION_UPDATE
33+
SUBSCRIPTION_CANCEL
34+
UNKNOWN
35+
}
36+
1737
model User {
1838
id String @id @default(cuid())
1939
email String @unique
2040
passwordHash String?
41+
avatar String? @db.Text
42+
name String?
2143
displayName String?
2244
twoFactorEnabled Boolean @default(false)
2345
twoFactorSecret String?
2446
createdAt DateTime @default(now())
2547
updatedAt DateTime @updatedAt
2648
migraited Boolean @default(false)
27-
2849
sessions Session[]
2950
serviceAccess UserServiceEntitlement[]
30-
51+
auditLogs AuditLog[]
52+
3153
@@map("users")
3254
}
3355

@@ -38,32 +60,44 @@ model Session {
3860
token String @unique
3961
expiresAt DateTime
4062
createdAt DateTime @default(now())
41-
42-
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
43-
63+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
64+
4465
@@map("sessions")
4566
@@index([userId])
4667
@@index([expiresAt])
4768
}
4869

70+
model AuditLog {
71+
id String @id @default(cuid())
72+
action AuditAction @default(UNKNOWN)
73+
data Json @default("{}")
74+
userId String
75+
createdAt DateTime @default(now())
76+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
77+
78+
@@map("audit_logs")
79+
@@index([userId])
80+
@@index([action])
81+
@@index([createdAt])
82+
}
83+
4984
model UserServiceEntitlement {
50-
id String @id @default(cuid())
51-
userId String
52-
service ServiceIdentifier
53-
tier String @default("free")
54-
isPremium Boolean @default(false)
55-
accessFlags Json?
56-
metadata Json?
57-
customStorageLimit Int?
58-
customApiKeyLimit Int?
59-
polarCustomerId String?
60-
polarSubscriptionId String?
85+
id String @id @default(cuid())
86+
userId String
87+
service ServiceIdentifier
88+
tier String @default("free")
89+
isPremium Boolean @default(false)
90+
accessFlags Json?
91+
metadata Json?
92+
customStorageLimit Int?
93+
customApiKeyLimit Int?
94+
polarCustomerId String?
95+
polarSubscriptionId String?
6196
polarSubscriptionStatus String?
62-
createdAt DateTime @default(now())
63-
updatedAt DateTime @updatedAt
64-
65-
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
66-
97+
createdAt DateTime @default(now())
98+
updatedAt DateTime @updatedAt
99+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
100+
67101
@@map("user_service_entitlements")
68102
@@unique([userId, service])
69103
@@index([service])

0 commit comments

Comments
 (0)