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