create extension if not exists "uuid-ossp"; create table artists ( id integer primary key generated always as identity, artist_name varchar(128) not null unique, bio text, site varchar(256) ); create table artworks ( id integer primary key generated always as identity, title varchar(256), description text, url_source varchar(256), artist_id integer not null, comment_number integer not null default 0, foreign key (artist_id) references artists(id) ); create table comments ( id integer unique not null, text text not null, thread_id integer not null, primary key (id, thread_id), foreign key (thread_id) references artworks(id) ); create table comment_relations ( thread_id integer, foreign key (thread_id) references artworks(id), in_reply_to_id integer, foreign key (in_reply_to_id) references comments(id), comment_id integer, foreign key (comment_id) references comments(id), primary key (thread_id, in_reply_to_id, comment_id) ); create table files ( id uuid primary key default gen_random_uuid(), alt_text text, artwork_id integer, foreign key (artwork_id) references artworks(id) );