This commit is contained in:
2025-06-02 18:17:32 +03:00
commit 0832ebf702
11 changed files with 865 additions and 0 deletions

View File

@ -0,0 +1,94 @@
-- +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

View File

@ -0,0 +1,15 @@
-- +goose Up
-- +goose StatementBegin
SELECT 'up SQL query';
CREATE VIEW IF NOT EXISTS total_karma AS SELECT u.id, u.name, sum(change) as total from karma
INNER JOIN users u ON u.id=karma.to_user
WHERE 1
GROUP BY u.id
ORDER BY total DESC;
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
SELECT 'down SQL query';
DROP VIEW total_karma
-- +goose StatementEnd

View File

@ -0,0 +1,17 @@
-- +goose Up
-- +goose StatementBegin
SELECT 'up SQL query';
ALTER TABLE users ADD COLUMN message_count INTEGER DEFAULT 0;
ALTER TABLE users ADD COLUMN karma_history INTEGER DEFAULT 0;
ALTER TABLE users ADD COLUMN karma_sent_history INTEGER DEFAULT 0;
ALTER TABLE users ADD COLUMN karma_received_history INTEGER DEFAULT 0;
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
SELECT 'down SQL query';
ALTER TABLE users DROP COLUMN message_count;
ALTER TABLE users DROP COLUMN karma_sent_history;
ALTER TABLE users DROP COLUMN karma_received_history;
-- +goose StatementEnd