| rev | 
   line source | 
| 
bsw@1735
 | 
     1 CREATE TABLE survey (
 | 
| 
bsw@1735
 | 
     2   id SERIAL4 PRIMARY KEY,
 | 
| 
bsw@1735
 | 
     3   title TEXT NOT NULL,
 | 
| 
bsw@1735
 | 
     4   text TEXT NOT NULL,
 | 
| 
bsw@1746
 | 
     5   finished_title TEXT NOT NULL,
 | 
| 
bsw@1735
 | 
     6   finished_text TEXT NOT NULL,
 | 
| 
bsw@1735
 | 
     7   created TIMESTAMPTZ NOT NULL DEFAULT now(),
 | 
| 
bsw@1735
 | 
     8   open_from TIMESTAMPTZ NOT NULL,
 | 
| 
bsw@1735
 | 
     9   open_until TIMESTAMPTZ NOT NULL
 | 
| 
bsw@1735
 | 
    10 );
 | 
| 
bsw@1735
 | 
    11 
 | 
| 
bsw@1735
 | 
    12 CREATE TABLE survey_question (
 | 
| 
bsw@1735
 | 
    13   id SERIAL4 PRIMARY KEY,
 | 
| 
bsw@1735
 | 
    14   survey_id INT4 NOT NULL REFERENCES survey(id),
 | 
| 
bsw@1735
 | 
    15   position INT4 NOT NULL,
 | 
| 
bsw@1735
 | 
    16   question TEXT NOT NULL,
 | 
| 
bsw@1735
 | 
    17   description TEXT,
 | 
| 
bsw@1735
 | 
    18   answer_type TEXT NOT NULL,
 | 
| 
bsw@1735
 | 
    19   answer_options json
 | 
| 
bsw@1735
 | 
    20 );
 | 
| 
bsw@1735
 | 
    21 
 | 
| 
bsw@1735
 | 
    22 CREATE TABLE survey_answer_set (
 | 
| 
bsw@1735
 | 
    23   ident TEXT NOT NULL PRIMARY KEY,
 | 
| 
bsw@1735
 | 
    24   survey_id INT4 NOT NULL REFERENCES survey(id)
 | 
| 
bsw@1735
 | 
    25 );
 | 
| 
bsw@1735
 | 
    26 
 | 
| 
bsw@1735
 | 
    27 CREATE TABLE survey_answer (
 | 
| 
bsw@1735
 | 
    28   id SERIAL8 PRIMARY KEY,
 | 
| 
bsw@1735
 | 
    29   survey_answer_set_ident TEXT NOT NULL REFERENCES survey_answer_set(ident) ON DELETE CASCADE,
 | 
| 
bsw@1735
 | 
    30   survey_question_id INT4 NOT NULL REFERENCES survey_question(id),
 | 
| 
bsw@1735
 | 
    31   answer TEXT NOT NULL
 | 
| 
bsw@1735
 | 
    32 );
 | 
| 
bsw@1735
 | 
    33 
 | 
| 
bsw@1735
 | 
    34 CREATE TABLE survey_member (
 | 
| 
bsw@1735
 | 
    35   id SERIAL4 PRIMARY KEY,
 | 
| 
bsw@1735
 | 
    36   survey_id INT4 NOT NULL REFERENCES survey(id),
 | 
| 
bsw@1735
 | 
    37   member_id INT4 NOT NULL REFERENCES member(id),
 | 
| 
bsw@1735
 | 
    38   survey_answer_set_ident TEXT REFERENCES survey_answer_set(ident),
 | 
| 
bsw@1735
 | 
    39   started TIMESTAMPTZ DEFAULT now(),
 | 
| 
bsw@1735
 | 
    40   finished TIMESTAMPTZ,
 | 
| 
bsw@1735
 | 
    41   rejected TIMESTAMPTZ
 | 
| 
bsw@1735
 | 
    42 );
 | 
| 
bsw@1735
 | 
    43 
 | 
| 
bsw@1735
 | 
    44 INSERT INTO survey (id, title, text, finished_text, open_from, open_until) VALUES (
 | 
| 
bsw@1735
 | 
    45   1,
 | 
| 
bsw@1735
 | 
    46   'Example survey',
 | 
| 
bsw@1735
 | 
    47   'This is just an example',
 | 
| 
bsw@1735
 | 
    48   '<strong>Done!</strong><br>You finished it. Thank you very much.',
 | 
| 
bsw@1735
 | 
    49   '2021-10-06 12:00',
 | 
| 
bsw@1735
 | 
    50   '2021-10-14 12:00'
 | 
| 
bsw@1735
 | 
    51 );
 | 
| 
bsw@1735
 | 
    52 
 | 
| 
bsw@1735
 | 
    53 INSERT INTO survey_question (survey_id, position, question, answer_type, answer_options) VALUES
 | 
| 
bsw@1735
 | 
    54   (1, 1, 'What color do you like?', 'radio', '[ "Red", "Green", "Blue" ]'),
 | 
| 
bsw@1735
 | 
    55   (1, 2, 'What form do you like?', 'radio', '[ "Square", "Circle", "Hexagon" ]')
 | 
| 
bsw@1735
 | 
    56 ;
 | 
| 
bsw@1735
 | 
    57 
 | 
| 
bsw@1735
 | 
    58   
 |