25 lines
717 B
SQL
25 lines
717 B
SQL
CREATE TABLE users (
|
|
id SERIAL PRIMARY KEY,
|
|
username TEXT UNIQUE NOT NULL,
|
|
password_hash TEXT NOT NULL,
|
|
role TEXT NOT NULL DEFAULT 'user',
|
|
quota BIGINT DEFAULT 104857600 -- 100 MB default
|
|
);
|
|
|
|
CREATE TABLE files (
|
|
id SERIAL PRIMARY KEY,
|
|
user_id INTEGER REFERENCES users(id) ON DELETE CASCADE,
|
|
original_name TEXT NOT NULL,
|
|
storage_path TEXT NOT NULL,
|
|
uploaded_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
size BIGINT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE shares (
|
|
id UUID PRIMARY KEY,
|
|
file_id INTEGER REFERENCES files(id) ON DELETE CASCADE,
|
|
shared_by INTEGER REFERENCES users(id) ON DELETE SET NULL,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
expires_at TIMESTAMPTZ
|
|
);
|