summaryrefslogblamecommitdiffstats
path: root/migrations/20241113160730_critch.sql
blob: 131daf36f888ed1f577ee5e3210ca871424cf9e1 (plain) (tree)
1
2
3
4
5
6



                                                        

                                        








                                                        
                                                            







                                                  



                                                            


                                

                                                     



                                                         
                                                        

  
                            

                                                  
                          


                                                    
create extension if not exists "uuid-ossp";

create table artists (
    id integer primary key generated always as identity,
    handle varchar(128) not null unique,
    name varchar(128),
    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),
    created_at timestamp not null default current_timestamp,
    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,
    artwork_id integer not null,
    created_at timestamp not null default current_timestamp,
    primary key (id, artwork_id),
    foreign key (artwork_id) references artworks(id)
);

create table comment_relations (
    artwork_id integer,
    foreign key (artwork_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 (artwork_id, in_reply_to_id, comment_id)
);

create table artwork_files (
    id uuid primary key default gen_random_uuid(),
    alt_text text,
    extension varchar(16),
    artwork_id integer,
    foreign key (artwork_id) references artworks(id)
);