95 lines
2.2 KiB
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
|