From 92146cc2a4e79959a41712721703d969f1c899d8 Mon Sep 17 00:00:00 2001 From: Trivernis Date: Thu, 29 Aug 2019 11:02:27 +0200 Subject: [PATCH] added sql table creation and config --- src/config.yaml | 6 +++++ src/index.ts | 2 -- src/sql/create-tables.sql | 49 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 src/config.yaml create mode 100644 src/sql/create-tables.sql diff --git a/src/config.yaml b/src/config.yaml new file mode 100644 index 0000000..536f82f --- /dev/null +++ b/src/config.yaml @@ -0,0 +1,6 @@ +database: + url: localhost + port: 54332 + user: greenvironment + password: greendev + database: greenvironment diff --git a/src/index.ts b/src/index.ts index bd59c0e..b4265bb 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,3 @@ import App from "./app"; const app = new App(); - -// TODO: init and start diff --git a/src/sql/create-tables.sql b/src/sql/create-tables.sql new file mode 100644 index 0000000..046541f --- /dev/null +++ b/src/sql/create-tables.sql @@ -0,0 +1,49 @@ +CREATE TABLE IF NOT EXISTS users ( + id SERIAL PRIMARY KEY, + name varchar(128) NOT NULL, + password varchar(1024) NOT NULL, + email varchar(128) UNIQUE NOT NULL, + greenpoints INTEGER DEFAULT 0 +); + +CREATE TABLE IF NOT EXISTS feed_items ( + id BIGSERIAL PRIMARY KEY, + upvotes INTEGER DEFAULT 0, + downvotes INTEGER DEFAULT 0, + created_at TIMESTAMP DEFAULT now(), + content text, + author SERIAL REFERENCES users (id) ON DELETE CASCADE +); + +CREATE TABLE IF NOT EXISTS votes ( + user_id SERIAL REFERENCES users (id) ON DELETE CASCADE, + item_id BIGSERIAL REFERENCES feed_items (id) ON DELETE CASCADE +); + +CREATE TABLE IF NOT EXISTS events ( + id BIGSERIAL PRIMARY KEY, + time TIMESTAMP, + owner SERIAL REFERENCES users (id) +); + +CREATE TABLE IF NOT EXISTS event_members ( + event BIGSERIAL REFERENCES events (id), + member SERIAL REFERENCES users (id) +); + +CREATE TABLE IF NOT EXISTS chats ( + id BIGSERIAL PRIMARY KEY +); + +CREATE TABLE IF NOT EXISTS chat_messages ( + chat BIGSERIAL REFERENCES chats (id) ON DELETE CASCADE, + author SERIAL REFERENCES users (id) ON DELETE SET NULL, + content VARCHAR(1024) NOT NULL, + created_at TIMESTAMP DEFAULT now(), + PRIMARY KEY (chat, author, created_at) +); + +CREATE TABLE IF NOT EXISTS chat_members ( + chat BIGSERIAL REFERENCES chats (id) ON DELETE CASCADE, + member SERIAL REFERENCES users (id) ON DELETE CASCADE +);