DROP TABLE IF EXISTS Users;
DROP TABLE IF EXISTS Posts;
DROP TABLE IF EXISTS Reaction;

CREATE TABLE Users
(
    id              bigserial PRIMARY KEY,
    username        varchar(255) NOT NULL,
    password        varchar(255) NOT NULL,
    deleted         timestamp WITH TIME ZONE default NULL
);

CREATE TABLE Posts
(
    id              bigserial PRIMARY KEY,
    author          bigserial REFERENCES Users(id) NOT NULL,
    reference       bigserial REFERENCES Posts(id) NOT NULL,
    -- init with (select last_val from posts_id_seq)
    title           varchar(255) NOT NULL,
    content         varchar(1023) NOT NULL,
    postDate        timestamp WITH TIME ZONE NOT NULL DEFAULT now(),
    postLocation    Point NOT NULL,
    deleted         timestamp WITH TIME ZONE default NULL
);

CREATE TABLE Reaction
(
    id              bigserial PRIMARY KEY,
    post            bigserial REFERENCES Posts(id) NOT NULL,
    positive        boolean DEFAULT NULL,
    deleted         timestamp WITH TIME ZONE default NULL
)
