2023-01-10 12:39:29 +00:00
|
|
|
CREATE TABLE IF NOT EXISTS users (
|
|
|
|
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
|
|
username TEXT NOT NULL UNIQUE,
|
2023-01-11 10:53:01 +00:00
|
|
|
profile_picture TEXT NOT NULL DEFAULT 'default.png',
|
2023-01-10 12:39:29 +00:00
|
|
|
email TEXT NOT NULL,
|
|
|
|
password TEXT NOT NULL,
|
|
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS posts (
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
file_name TEXT NOT NULL UNIQUE,
|
|
|
|
author_id INTEGER NOT NULL,
|
|
|
|
description TEXT NOT NULL,
|
|
|
|
alt TEXT NOT NULL,
|
|
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
FOREIGN KEY (author_id) REFERENCES users (id)
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS groups (
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
author_id INTEGER NOT NULL,
|
|
|
|
name TEXT NOT NULL,
|
|
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
FOREIGN KEY (author_id) REFERENCES users (id)
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS group_junction (
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
group_id INTEGER NOT NULL,
|
|
|
|
image_id INTEGER NOT NULL,
|
|
|
|
FOREIGN KEY (group_id) REFERENCES groups (id),
|
|
|
|
FOREIGN KEY (image_id) REFERENCES posts (id)
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS permissions (
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
user_id INTEGER NOT NULL,
|
|
|
|
admin BOOLEAN NOT NULL DEFAULT FALSE,
|
|
|
|
create_posts BOOLEAN NOT NULL DEFAULT TRUE,
|
|
|
|
FOREIGN KEY (user_id) REFERENCES users (id)
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS devices (
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
user_id INTEGER NOT NULL,
|
|
|
|
device_id TEXT NOT NULL,
|
|
|
|
cookie TEXT NOT NULL,
|
|
|
|
ip TEXT NOT NULL,
|
|
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
FOREIGN KEY (user_id) REFERENCES users (id)
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS tokens (
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
token TEXT NOT NULL UNIQUE,
|
|
|
|
is_used BOOLEAN NOT NULL DEFAULT FALSE,
|
|
|
|
used_by INTEGER DEFAULT NULL,
|
|
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
FOREIGN KEY (used_by) REFERENCES users (id)
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS logs (
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
ip TEXT NOT NULL,
|
|
|
|
user_id INTEGER DEFAULT NULL,
|
|
|
|
code INTEGER NOT NULL,
|
|
|
|
note TEXT DEFAULT NULL,
|
|
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
FOREIGN KEY (user_id) REFERENCES users (id)
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS bans (
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
ip TEXT NOT NULL,
|
|
|
|
code INTEGER NOT NULL,
|
|
|
|
note TEXT DEFAULT NULL,
|
|
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
|
|
);
|