Skip to content

Commit 304fabc

Browse files
committed
refactor: update Prisma schema to introduce new roles and action types, and streamline action status definitions
1 parent c6fb8e2 commit 304fabc

1 file changed

Lines changed: 28 additions & 44 deletions

File tree

prisma/schema.prisma

Lines changed: 28 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -11,60 +11,44 @@ datasource db {
1111
url = "file:../data/moderation.db"
1212
}
1313

14-
model User {
15-
id Int @id @default(autoincrement())
16-
discordId String @unique
17-
18-
// Relations
19-
actionsReceived ModerationAction[] @relation("ActionTarget")
20-
actionsPerformed ModerationAction[] @relation("ActionModerator")
21-
22-
@@index([discordId])
14+
enum Role {
15+
MEMBER
16+
ASSISTANT
17+
MOD_I
18+
MOD_II
19+
MOD_III
20+
MANAGER
21+
ADMIN
2322
}
2423

2524
enum ActionType {
26-
WARN
25+
REPEL
26+
TIMEOUT
2727
MUTE
28-
UNMUTE
28+
TEMP_MUTE
29+
WARN
2930
KICK
31+
3032
BAN
31-
UNBAN
32-
TIMEOUT
33-
REMOVE_TIMEOUT
34-
REPEL
33+
TEMP_BAN
34+
35+
REVERT
3536
}
3637

3738
enum ActionStatus {
3839
ACTIVE
39-
EXPIRED
40-
REMOVED_BY_ERROR
41-
REVERSED
40+
STALE
41+
REVERTED
4242
}
4343

44-
model ModerationAction {
45-
id Int @id @default(autoincrement())
46-
type ActionType
47-
status ActionStatus @default(ACTIVE)
48-
reason String?
49-
duration Int? // Duration in seconds for timeouts/mutes
50-
51-
// User relationships
52-
targetId Int
53-
target User @relation("ActionTarget", fields: [targetId], references: [id])
54-
moderatorId Int
55-
moderator User @relation("ActionModerator", fields: [moderatorId], references: [id])
56-
57-
// Timestamps
58-
createdAt DateTime @default(now())
59-
expiresAt DateTime?
60-
61-
// For corrections/reversals
62-
parentActionId Int?
63-
parentAction ModerationAction? @relation("ActionCorrections", fields: [parentActionId], references: [id])
64-
corrections ModerationAction[] @relation("ActionCorrections")
65-
66-
@@index([targetId])
67-
@@index([moderatorId])
68-
@@index([status])
69-
@@index([createdAt])
44+
enum ActionReason {
45+
SPAM
46+
SCAM
47+
DISRUPTION
48+
NSFW
49+
HATE_SPEECH
50+
SELF_PROMOTION
51+
JOB_POSTING
52+
FOR_HIRE
53+
OTHER
7054
}

0 commit comments

Comments
 (0)