33 lines
1.1 KiB
SQL
33 lines
1.1 KiB
SQL
-- Add migration script here
|
|
|
|
-- Add route for users to see their own reports
|
|
|
|
CREATE TABLE threads (
|
|
id bigint PRIMARY KEY,
|
|
-- can be either "report", "project", or "direct_message". direct message is unused for now
|
|
thread_type VARCHAR(64) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE threads_messages (
|
|
id bigint PRIMARY KEY,
|
|
thread_id bigint REFERENCES threads ON UPDATE CASCADE NOT NULL,
|
|
-- If this is null, it's a system message
|
|
author_id bigint REFERENCES users ON UPDATE CASCADE NULL,
|
|
body jsonb NOT NULL,
|
|
created timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
show_in_mod_inbox BOOLEAN NOT NULL DEFAULT FALSE
|
|
);
|
|
|
|
CREATE TABLE threads_members (
|
|
thread_id bigint REFERENCES threads ON UPDATE CASCADE NOT NULL,
|
|
user_id bigint REFERENCES users ON UPDATE CASCADE NOT NULL,
|
|
PRIMARY KEY (thread_id, user_id)
|
|
);
|
|
|
|
ALTER TABLE reports
|
|
ADD COLUMN closed boolean NOT NULL DEFAULT FALSE;
|
|
ALTER TABLE reports
|
|
ADD COLUMN thread_id bigint references threads ON UPDATE CASCADE;
|
|
ALTER TABLE mods
|
|
ADD COLUMN thread_id bigint references threads ON UPDATE CASCADE;
|