summaryrefslogtreecommitdiff
path: root/database.sql
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2025-05-10 22:55:31 +0500
committerilotterytea <iltsu@alright.party>2025-05-10 22:55:31 +0500
commit1af6b91342f8e8ee61eccf6673b5e0db6d4e7002 (patch)
treeba73e71348a21af483a4b9a12b3d95edbd0b2065 /database.sql
parent188e05083b1034a5865ce01f2924835b8fbe4808 (diff)
feat: badges table
Diffstat (limited to 'database.sql')
-rw-r--r--database.sql11
1 files changed, 10 insertions, 1 deletions
diff --git a/database.sql b/database.sql
index e995320..36beec8 100644
--- a/database.sql
+++ b/database.sql
@@ -81,13 +81,19 @@ CREATE TABLE IF NOT EXISTS reports (
response_message TEXT
);
+CREATE TABLE IF NOT EXISTS badges (
+ id CHAR(32) NOT NULL PRIMARY KEY DEFAULT REPLACE(UUID(),'-',''),
+ uploaded_by CHAR(32) REFERENCES users(id),
+ created_at TIMESTAMP NOT NULL DEFAULT UTC_TIMESTAMP
+);
+
CREATE TABLE IF NOT EXISTS roles (
id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
priority INTEGER NOT NULL DEFAULT 0,
name TEXT NOT NULL,
foreground_color TEXT NOT NULL DEFAULT '000,000,000',
background_color TEXT NOT NULL DEFAULT 'solid:255,255,255',
- badge_id INTEGER NOT NULL DEFAULT 0,
+ badge_id CHAR(32) REFERENCES badges(id),
-- permissions
permission_upload BOOLEAN NOT NULL DEFAULT true,
@@ -153,6 +159,8 @@ END$$
DELIMITER ;
-- NULLIFY EMOTE AUTHORS ON USER DELETION
+DROP TRIGGER IF EXISTS user_deletion;
+
DELIMITER $$
CREATE TRIGGER IF NOT EXISTS user_deletion
BEFORE DELETE ON users
@@ -161,6 +169,7 @@ BEGIN
UPDATE emotes SET uploaded_by = NULL WHERE uploaded_by = OLD.id;
UPDATE emote_set_contents SET added_by = NULL WHERE added_by = OLD.id;
UPDATE reports SET resolved_by = NULL WHERE resolved_by = OLD.id;
+ UPDATE badges SET uploaded_by = NULL WHERE uploaded_by = OLD.id;
END$$
DELIMITER ;