2024-12-04 19:46:11 -04:00

70 lines
2.0 KiB
SQL

-- sql goes here
CREATE TABLE IF NOT EXISTS 'users' (
id INTEGER PRIMARY KEY,
tgb_id INTEGER NOT NULL UNIQUE,
username TEXT,
first_name TEXT,
last_name TEXT,
created INTEGER NOT NULL,
edited INTEGER NOT NULL,
deleted INTEGER
);
CREATE INDEX IF NOT EXISTS tgb_id_user_index ON 'users' (tgb_id);
CREATE TABLE IF NOT EXISTS 'visits' (
id INTEGER PRIMARY KEY,
tgb_id INTEGER NOT NULL,
quantity INTEGER,
edited INTEGER,
FOREIGN KEY(tgb_id) REFERENCES users(id) ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS tgb_id_visit_index ON 'users' (tgb_id);
CREATE TRIGGER IF NOT EXISTS check_daily_visits
BEFORE INSERT ON 'users'
BEGIN
INSERT OR IGNORE INTO 'visits' (tgb_id, quantity, edited)
VALUES (new.tgb_id, 1, strftime('%s', 'now'));
END;
CREATE TABLE IF NOT EXISTS 'bots' (
id INTEGER PRIMARY KEY,
bot_name TEXT UNIQUE,
created INTEGER NOT NULL
);
CREATE TABLE IF NOT EXISTS 'bot_users' (
id INTEGER PRIMARY KEY,
tgb_id INTEGER NOT NULL,
bot_id INTEGER NOT NULL,
created INTEGER NOT NULL,
UNIQUE(tgb_id, bot_id),
FOREIGN KEY(tgb_id) REFERENCES users(id) ON DELETE CASCADE,
FOREIGN KEY(bot_id) REFERENCES bots(id) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS 'bot_access_requests' (
id INTEGER PRIMARY KEY,
tgb_id INTEGER NOT NULL,
bot_id INTEGER NOT NULL,
created INTEGER NOT NULL,
UNIQUE(tgb_id, bot_id),
FOREIGN KEY(tgb_id) REFERENCES users(id) ON DELETE CASCADE,
FOREIGN KEY(bot_id) REFERENCES bots(id) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS 'banned_bot_access' (
id INTEGER PRIMARY KEY,
tgb_id INTEGER NOT NULL,
bot_id INTEGER NOT NULL,
created INTEGER NOT NULL,
until INTEGER NOT NULL,
UNIQUE(tgb_id, bot_id),
FOREIGN KEY(tgb_id) REFERENCES users(id) ON DELETE CASCADE,
FOREIGN KEY(bot_id) REFERENCES bots(id) ON DELETE CASCADE
);