X-Git-Url: https://code.wpia.club/?p=motion.git;a=blobdiff_plain;f=sql%2Fschema.sql;h=690425bdbcf697509ac116210c89fd62181190ee;hp=116e76f79b9ca1a05e41247a90663115208c5f88;hb=1653400a1d07f3433e1f8e10f484de9f88593c3f;hpb=c164275cb983d523731b6346296bc256e1ff02bb diff --git a/sql/schema.sql b/sql/schema.sql index 116e76f..690425b 100644 --- a/sql/schema.sql +++ b/sql/schema.sql @@ -1,11 +1,16 @@ DROP TABLE IF EXISTS voter; -CREATE TABLE voter (id serial NOT NULL, email VARCHAR(255) NOT NULL, PRIMARY KEY(id)); +CREATE TABLE voter (id serial NOT NULL, + email VARCHAR(255) NOT NULL, + host VARCHAR(500) NOT NULL, + PRIMARY KEY(id)); DROP TABLE IF EXISTS motion; CREATE TABLE motion (id serial NOT NULL, + identifier VARCHAR(20) NOT NULL, name VARCHAR(250) NOT NULL, type VARCHAR(250) NOT NULL, + host VARCHAR(500) NOT NULL, content text NOT NULL, posed timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, posed_by int NOT NULL, @@ -14,7 +19,7 @@ CREATE TABLE motion (id serial NOT NULL, cancelation_reason text NULL DEFAULT NULL, canceled_by int NULL DEFAULT NULL, PRIMARY KEY(id)); - +CREATE UNIQUE INDEX motion_ident ON motion (identifier); DROP TABLE IF EXISTS vote; DROP TYPE IF EXISTS "vote_type"; @@ -23,8 +28,21 @@ CREATE TABLE vote (motion_id INTEGER NOT NULL, voter_id INTEGER NOT NULL, result vote_type NOT NULL, entered timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + proxy_id INTEGER NOT NULL, PRIMARY KEY(motion_id, voter_id)); +DROP TABLE IF EXISTS proxy; +CREATE TABLE proxy (id serial NOT NULL, + voter_id INTEGER NOT NULL, + proxy_id INTEGER NOT NULL, + granted timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + granted_by int NOT NULL, + revoked timestamp NULL DEFAULT NULL, + revoked_by int NULL DEFAULT NULL, + PRIMARY KEY(id)); +CREATE INDEX proxy_voter ON proxy (voter_id); +CREATE INDEX proxy_proxy ON proxy (proxy_id); + DROP TABLE IF EXISTS schema_version; CREATE TABLE schema_version (version INTEGER NOT NULL); -INSERT INTO schema_version(version) VALUES(1); +INSERT INTO schema_version(version) VALUES(6);