]> WPIA git - motion.git/blob - schema.sql
b3a6eaff4fc108db7b00420cbf0949859a8cd8aa
[motion.git] / schema.sql
1 DROP TABLE IF EXISTS voter;
2 CREATE TABLE voter (id serial NOT NULL, email VARCHAR(255) NOT NULL, PRIMARY KEY(id));
3
4
5 DROP TABLE IF EXISTS motion;
6 CREATE TABLE motion (id serial NOT NULL,
7                    name VARCHAR(250) NOT NULL,
8                    content text NOT NULL,
9                    posed timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
10                    posed_by int NOT NULL,
11                    deadline timestamp NOT NULL DEFAULT (CURRENT_TIMESTAMP + interval '3 days'),
12                    canceled timestamp NULL DEFAULT NULL,
13                    cancelation_reason text NULL DEFAULT NULL,
14                    canceled_by int NULL DEFAULT NULL,
15                    PRIMARY KEY(id));
16
17
18 DROP TABLE IF EXISTS vote;
19 DROP TYPE IF EXISTS "vote_type";
20 CREATE TYPE "vote_type" AS ENUM ('yes', 'no', 'abstain');
21 CREATE TABLE vote (motion_id INTEGER NOT NULL,
22                  voter_id INTEGER NOT NULL,
23                  result vote_type NOT NULL,
24                  entered timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
25                  PRIMARY KEY(motion_id, voter_id));