-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathschema.sql
More file actions
217 lines (196 loc) · 6.46 KB
/
schema.sql
File metadata and controls
217 lines (196 loc) · 6.46 KB
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
CREATE TABLE IF NOT EXISTS live_leaderboards (
guild_id INTEGER,
leaderboard_path TEXT,
channel_id INTEGER,
message_id INTEGER UNIQUE,
PRIMARY KEY (guild_id, leaderboard_path)
);
CREATE TABLE IF NOT EXISTS autofill (
discord_id INTEGER PRIMARY KEY,
uuid TEXT,
username TEXT
);
CREATE TABLE IF NOT EXISTS linked_accounts (
discord_id INTEGER PRIMARY KEY,
uuid TEXT
);
CREATE TABLE IF NOT EXISTS voting_data (
discord_id INTEGER PRIMARY KEY,
total_votes INTEGER,
weekend_votes INTEGER,
last_vote REAL
);
CREATE TABLE IF NOT EXISTS themes_data (
discord_id INTEGER PRIMARY KEY,
owned_themes TEXT,
selected_theme TEXT
);
CREATE TABLE IF NOT EXISTS command_usage (
discord_id INTEGER PRIMARY KEY,
overall INTEGER
);
CREATE TABLE IF NOT EXISTS configured_reset_times (
discord_id INTEGER PRIMARY KEY,
timezone INTEGER,
reset_hour INTEGER,
reset_minute INTEGER DEFAULT 0
);
CREATE TABLE IF NOT EXISTS default_reset_times (
uuid TEXT PRIMARY KEY,
timezone INTEGER,
reset_hour INTEGER,
reset_minute INTEGER DEFAULT 0
);
-- CREATE TABLE IF NOT EXISTS permissions (
-- discord_id INTEGER PRIMARY KEY,
-- permissions TEXT
-- );
CREATE TABLE IF NOT EXISTS growth_data (
timestamp REAL,
discord_id INTEGER,
action TEXT,
growth TEXT
);
CREATE TABLE IF NOT EXISTS reaction_roles (
guild_id INTEGER,
role_id INTEGER
);
CREATE TABLE IF NOT EXISTS gifts (
gift_id TEXT PRIMARY KEY,
purchaser_id INTEGER,
purchaser_name TEXT DEFAULT 'unknown',
purchaser_avatar TEXT DEFAULT 'https://cdn.discordapp.com/embed/avatars/0.png',
purchase_timestamp REAL DEFAULT (strftime('%s', 'now', 'utc')),
package TEXT,
duration REAL,
max_redemptions INTEGER DEFAULT 1,
max_redemptions_per_user INTEGER DEFAULT -1
);
CREATE TABLE IF NOT EXISTS gift_redemptions (
gift_id TEXT,
redemption_id INTEGER,
timestamp REAL DEFAULT (strftime('%s', 'now', 'utc')),
redeemer_id INTEGER,
redeemer_name TEXT DEFAULT 'unknown',
redeemer_avatar TEXT DEFAULT 'https://cdn.discordapp.com/embed/avatars/0.png',
FOREIGN KEY (gift_id) REFERENCES gifts(gift_id)
);
-- Adds dynamic redemptions id on a per gift basis
CREATE TRIGGER IF NOT EXISTS redemption_id_trigger
AFTER INSERT ON gift_redemptions
BEGIN
UPDATE gift_redemptions
SET redemption_id = (SELECT IFNULL(MAX(redemption_id), 0) + 1 FROM gift_redemptions WHERE gift_id = NEW.gift_id)
WHERE rowid = NEW.rowid;
END;
CREATE TABLE IF NOT EXISTS accounts (
account_id INTEGER PRIMARY KEY AUTOINCREMENT,
discord_id INTEGER NOT NULL UNIQUE,
creation_timestamp REAL DEFAULT (strftime('%s', 'now', 'utc')),
permissions TEXT,
blacklisted INTEGER DEFAULT 0,
CONSTRAINT check_blacklisted CHECK (blacklisted = 0 OR blacklisted = 1)
);
CREATE TABLE IF NOT EXISTS subscriptions_active (
discord_id INTEGER PRIMARY KEY NOT NULL,
package TEXT NOT NULL,
expires REAL -- Can be null if subscription is lifetime
);
CREATE TABLE IF NOT EXISTS subscriptions_paused (
id INTEGER PRIMARY KEY AUTOINCREMENT, -- To differentiate different paused packages (since there can be multiple)
discord_id INTEGER NOT NULL,
package TEXT NOT NULL,
duration_remaining REAL, -- Can be null if subscription is lifetime
UNIQUE(id, discord_id)
);
CREATE TABLE IF NOT EXISTS bedwars_stats_snapshots (
snapshot_id TEXT NOT NULL PRIMARY KEY,
Experience INTEGER,
wins_bedwars INTEGER,
losses_bedwars INTEGER,
final_kills_bedwars INTEGER,
final_deaths_bedwars INTEGER,
kills_bedwars INTEGER,
deaths_bedwars INTEGER,
beds_broken_bedwars INTEGER,
beds_lost_bedwars INTEGER,
games_played_bedwars INTEGER,
eight_one_wins_bedwars INTEGER,
eight_one_losses_bedwars INTEGER,
eight_one_final_kills_bedwars INTEGER,
eight_one_final_deaths_bedwars INTEGER,
eight_one_kills_bedwars INTEGER,
eight_one_deaths_bedwars INTEGER,
eight_one_beds_broken_bedwars INTEGER,
eight_one_beds_lost_bedwars INTEGER,
eight_one_games_played_bedwars INTEGER,
eight_two_wins_bedwars INTEGER,
eight_two_losses_bedwars INTEGER,
eight_two_final_kills_bedwars INTEGER,
eight_two_final_deaths_bedwars INTEGER,
eight_two_kills_bedwars INTEGER,
eight_two_deaths_bedwars INTEGER,
eight_two_beds_broken_bedwars INTEGER,
eight_two_beds_lost_bedwars INTEGER,
eight_two_games_played_bedwars INTEGER,
four_three_wins_bedwars INTEGER,
four_three_losses_bedwars INTEGER,
four_three_final_kills_bedwars INTEGER,
four_three_final_deaths_bedwars INTEGER,
four_three_kills_bedwars INTEGER,
four_three_deaths_bedwars INTEGER,
four_three_beds_broken_bedwars INTEGER,
four_three_beds_lost_bedwars INTEGER,
four_three_games_played_bedwars INTEGER,
four_four_wins_bedwars INTEGER,
four_four_losses_bedwars INTEGER,
four_four_final_kills_bedwars INTEGER,
four_four_final_deaths_bedwars INTEGER,
four_four_kills_bedwars INTEGER,
four_four_deaths_bedwars INTEGER,
four_four_beds_broken_bedwars INTEGER,
four_four_beds_lost_bedwars INTEGER,
four_four_games_played_bedwars INTEGER,
two_four_wins_bedwars INTEGER,
two_four_losses_bedwars INTEGER,
two_four_final_kills_bedwars INTEGER,
two_four_final_deaths_bedwars INTEGER,
two_four_kills_bedwars INTEGER,
two_four_deaths_bedwars INTEGER,
two_four_beds_broken_bedwars INTEGER,
two_four_beds_lost_bedwars INTEGER,
two_four_games_played_bedwars INTEGER,
items_purchased_bedwars INTEGER,
eight_one_items_purchased_bedwars INTEGER,
eight_two_items_purchased_bedwars INTEGER,
four_three_items_purchased_bedwars INTEGER,
four_four_items_purchased_bedwars INTEGER,
two_four_items_purchased_bedwars INTEGER
);
CREATE TABLE IF NOT EXISTS session_info (
session INTEGER,
uuid TEXT,
snapshot_id TEXT NOT NULL UNIQUE,
creation_timestamp REAL NOT NULL,
PRIMARY KEY (session, uuid)
);
CREATE TABLE IF NOT EXISTS historical_info (
uuid TEXT,
period_id TEXT,
level REAL,
snapshot_id TEXT NOT NULL UNIQUE,
PRIMARY KEY (uuid, period_id)
);
CREATE TABLE IF NOT EXISTS rotational_info (
uuid TEXT NOT NULL,
rotation TEXT NOT NULL,
last_reset_timestamp REAL DEFAULT (strftime('%s', 'now', 'utc')),
snapshot_id TEXT NOT NULL UNIQUE,
PRIMARY KEY (uuid, rotation)
);
CREATE TABLE IF NOT EXISTS reminders (
discord_id INTEGER,
message TEXT,
reminder_timestamp REAL NOT NULL,
channel_id INTEGER
);