initial commit
Some checks failed
deploy / build-and-deploy (push) Failing after 21s

This commit is contained in:
2025-05-18 13:16:20 +02:00
commit 60f3f8a096
148 changed files with 17900 additions and 0 deletions

121
src/db/database.sql Normal file
View File

@@ -0,0 +1,121 @@
-- admins
CREATE TABLE IF NOT EXISTS admin (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
permissions INT NOT NULL
);
-- user
CREATE TABLE IF NOT EXISTS user (
id INT AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(255) NOT NULL,
lastname VARCHAR(255) NOT NULL,
birthday DATE NOT NULL,
telephone VARCHAR(255),
username VARCHAR(255) NOT NULL,
uuid VARCHAR(36)
);
-- update team draft on username update
CREATE TRIGGER IF NOT EXISTS user_username_update AFTER UPDATE ON user
FOR EACH ROW
BEGIN
IF OLD.username <> NEW.username THEN
UPDATE team_draft SET member_one_name = NEW.username WHERE member_one_name = OLD.username;
UPDATE team_draft SET member_two_name = NEW.username WHERE member_two_name = OLD.username;
END IF;
END;
DELIMITER ;
-- team
CREATE TABLE IF NOT EXISTS team (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) UNIQUE NOT NULL,
color CHAR(7) NOT NULL,
last_joined TIMESTAMP
);
-- team member
CREATE TABLE IF NOT EXISTS team_member (
team_id INT NOT NULL,
user_id INT NOT NULL,
FOREIGN KEY (team_id) REFERENCES team(id),
FOREIGN KEY (user_id) REFERENCES user(id)
);
-- team draft
CREATE TABLE IF NOT EXISTS team_draft (
member_one_name VARCHAR(255) NOT NULL,
member_two_name VARCHAR(255) NOT NULL,
team_id INT NOT NULL,
FOREIGN KEY (team_id) REFERENCES team(id)
);
-- death
CREATE TABLE IF NOT EXISTS death (
message VARCHAR(1024) NOT NULL,
dead_user_id INT NOT NULL,
killer_user_id INT,
FOREIGN KEY (dead_user_id) REFERENCES user(id),
FOREIGN KEY (killer_user_id) REFERENCES user(id)
);
-- strike reason
CREATE TABLE IF NOT EXISTS strike_reason (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
weight TINYINT NOT NULL
);
-- strike
CREATE TABLE IF NOT EXISTS strike (
id INT AUTO_INCREMENT PRIMARY KEY,
at TIMESTAMP NOT NULL,
strike_reason_id INT NOT NULL,
FOREIGN KEY (strike_reason_id) REFERENCES strike_reason(id)
);
-- report
CREATE TABLE IF NOT EXISTS report (
id INT AUTO_INCREMENT PRIMARY KEY,
reason VARCHAR(255) NOT NULL,
body TEXT,
url_hash VARCHAR(255) NOT NULL UNIQUE,
created_at TIMESTAMP,
reporter_team_id INT NOT NULL,
reported_team_id INT,
FOREIGN KEY (reporter_team_id) REFERENCES team(id),
FOREIGN KEY (reported_team_id) REFERENCES team(id)
);
-- report status
CREATE TABLE IF NOT EXISTS report_status (
status ENUM('open', 'closed'),
notice TEXT,
statement TEXT,
report_id INT NOT NULL UNIQUE,
reviewer_id INT,
strike_id INT,
FOREIGN KEY (report_id) REFERENCES report(id),
FOREIGN KEY (reviewer_id) REFERENCES admin(id),
FOREIGN KEY (strike_id) REFERENCES strike(id)
);
-- feedback
CREATE TABLE IF NOT EXISTS feedback (
id INT AUTO_INCREMENT PRIMARY KEY,
event VARCHAR(255) NOT NULL,
title VARCHAR(255),
content TEXT,
url_hash VARCHAR(255) NOT NULL UNIQUE,
last_changed TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
user_id INT,
FOREIGN KEY (user_id) REFERENCES user(id)
);
-- settings
CREATE TABLE IF NOT EXISTS settings (
name VARCHAR(255) NOT NULL,
value TEXT NOT NULL
);