-
Notifications
You must be signed in to change notification settings - Fork 2
/
schema.sql
122 lines (89 loc) · 2.82 KB
/
schema.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
CREATE TABLE IF NOT EXISTS scores (
-- Unique score id
id SERIAL PRIMARY KEY,
-- Message content
scanned_content TEXT NOT NULL,
-- Scores
insult REAL NOT NULL,
severe_toxic REAL NOT NULL,
identity_hate REAL NOT NULL,
threat REAL NOT NULL,
nsfw REAL NOT NULL,
-- Date created
date_created TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS scan_channels (
-- Discord channel ID
channel_id BIGINT PRIMARY KEY,
UNIQUE(channel_id),
-- Discord server ID
server_id BIGINT NOT NULL,
-- Whether this channel is being scanned
active BOOLEAN DEFAULT true,
-- Date channel was added for scanning
date_created TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS infractions (
-- Infraction ID
id SERIAL PRIMARY KEY,
-- User's Discord ID
user_id BIGINT NOT NULL,
-- Discord server ID
server_id BIGINT NOT NULL,
-- Discord channel ID
channel_id BIGINT NOT NULL REFERENCES scan_channels ON DELETE CASCADE,
-- Discord message ID
message_id BIGINT NOT NULL,
-- Score ID
score_id BIGINT NOT NULL REFERENCES scores ON DELETE SET NULL,
-- Date infraction was created
date_created TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS reviewers (
-- User's Discord ID
user_id BIGINT PRIMARY KEY,
UNIQUE(user_id),
-- Whether this reviwer is active
active BOOLEAN DEFAULT true,
-- The review channel the user is connected to
channel_id BIGINT NOT NULL,
-- Whether this user is a trusted reviewer
trusted BOOLEAN DEFAULT false,
-- Date this reviwer was created
date_created TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS review_messages (
-- Review ID
id SERIAL PRIMARY KEY,
-- Score ID
score_id BIGINT NOT NULL REFERENCES scores ON DELETE SET NULL,
-- Content after sanitized
clean_content TEXT NOT NULL,
-- If this content is still in queue
active BOOLEAN DEFAULT true,
-- If in the sanitization queue
in_sanitize BOOLEAN DEFAULT false,
-- Date created
date_created TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS review_log (
-- Review ID
review_id BIGINT NOT NULL REFERENCES review_messages ON DELETE CASCADE,
-- User reviewed/reviewing
user_id BIGINT REFERENCES reviewers ON DELETE SET NULL,
UNIQUE(review_id,user_id),
-- Review Discord message ID
message_id BIGINT,
-- Voted scores
insult SMALLINT,
severe_toxic SMALLINT,
identity_hate SMALLINT,
threat SMALLINT,
nsfw SMALLINT,
-- If content is being voted on
active BOOLEAN DEFAULT true,
-- If trusted reviewer at time of voting
trusted_review BOOLEAN DEFAULT false,
-- Date created
date_created TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);