summaryrefslogtreecommitdiff
path: root/database.sql
blob: 47f7ea6ba2a81cee5de3bea225b0961d5930d8b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
CREATE TABLE IF NOT EXISTS files (
    id CHAR(32) NOT NULL PRIMARY KEY,
    mime TEXT NOT NULL,
    extension TEXT NOT NULL,
    size BIGINT NOT NULL,
    title TEXT,
    password TEXT,
    uploaded_at TIMESTAMP NOT NULL DEFAULT UTC_TIMESTAMP,
    expires_at TIMESTAMP,
    views BIGINT NOT NULL DEFAULT 0
);

CREATE TABLE IF NOT EXISTS file_metadata (
    id CHAR(32) NOT NULL PRIMARY KEY REFERENCES files(id) ON DELETE CASCADE,
    width BIGINT,
    height BIGINT,
    duration BIGINT,
    line_count BIGINT
);

CREATE TABLE IF NOT EXISTS hash_bans (
    sha256 CHAR(64) PRIMARY KEY,
    reason TEXT
);

CREATE TABLE IF NOT EXISTS file_bans (
    id CHAR(32) NOT NULL PRIMARY KEY REFERENCES files(id) ON DELETE CASCADE,
    hash_ban CHAR(64) NOT NULL REFERENCES hash_bans(sha256) ON DELETE CASCADE,
    banned_at TIMESTAMP NOT NULL DEFAULT UTC_TIMESTAMP
);