godette/migrations/20250126155704_init.sql

95 lines
2.2 KiB
SQL

-- +goose Up
-- +goose StatementBegin
SELECT 'up SQL query';
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
username TEXT DEFAULT "",
created DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS chats (
id INTEGER PRIMARY KEY,
name TEXT,
username TEXT DEFAULT "",
created DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS admins (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER NOT NULL,
chat_id INTEGER NOT NULL,
created DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users (id),
FOREIGN KEY (chat_id) REFERENCES chats (id)
);
CREATE TABLE IF NOT EXISTS karma (
id INTEGER PRIMARY KEY AUTOINCREMENT,
from_user INTEGER NOT NULL,
to_user INTEGER NOT NULL,
change INTEGER,
message TEXT DEFAULT "",
created DATETIME DEFAULT CURRENT_TIMESTAMP,
CHECK(from_user != to_user),
FOREIGN KEY (from_user) REFERENCES users(id),
FOREIGN KEY (to_user) REFERENCES users(id)
);
CREATE TABLE IF NOT EXISTS warnings (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user INTEGER NOT NULL,
admin INTEGER NOT NULL,
message_id INTEGER DEFAULT 0,
topic_id INTEGER DEFAULT 0,
chat_id INTEGER NOT NULL,
active INTEGER DEFAULT 1,
reason TEXT DEFAULT "",
created DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user) REFERENCES users (id),
FOREIGN KEY (admin) REFERENCES users (id),
FOREIGN KEY (chat_id) REFERENCES chats (id)
);
CREATE TABLE IF NOT EXISTS admin_topics (
id INTEGER PRIMARY KEY AUTOINCREMENT,
chat_id INTEGER NOT NULL,
topic_id INTEGER NOT NULL,
created DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (chat_id) REFERENCES chats (id)
);
CREATE TABLE IF NOT EXISTS message_templates (
id INTEGER PRIMARY KEY AUTOINCREMENT,
tag TEXT NOT NULL,
text TEXT NOT NULL,
triggers TEXT,
created DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
SELECT 'down SQL query';
DROP TABLE users ;
DROP TABLE chats ;
DROP TABLE admins ;
DROP TABLE karma ;
DROP TABLE warnings ;
DROP TABLE admin_topics ;
DROP TABLE message_templates ;
-- +goose StatementEnd