· 8 years ago · Apr 14, 2018, 09:26 PM
1DROP TABLE IF EXISTS "user" CASCADE;
2DROP TABLE IF EXISTS question CASCADE;
3DROP TABLE IF EXISTS "comment" CASCADE;
4DROP TABLE IF EXISTS private_message CASCADE;
5DROP TABLE IF EXISTS inbox CASCADE;
6DROP TABLE IF EXISTS notification CASCADE;
7DROP TABLE IF EXISTS message_notification CASCADE;
8DROP TABLE IF EXISTS question_notification CASCADE;
9DROP TABLE IF EXISTS moderator CASCADE;
10DROP TABLE IF EXISTS "admin" CASCADE;
11DROP TABLE IF EXISTS banned_user CASCADE;
12DROP TABLE IF EXISTS topic CASCADE;
13DROP TABLE IF EXISTS question_vote CASCADE;
14DROP TABLE IF EXISTS comment_vote CASCADE;
15DROP TABLE IF EXISTS achievement CASCADE;
16DROP TABLE IF EXISTS reward_item CASCADE;
17
18-- Tables
19
20CREATE TABLE "user" (
21 id SERIAL NOT NULL,
22 username text NOT NULL,
23 email text NOT NULL,
24 password text NOT NULL,
25 imagePath text NOT NULL,
26 creationDate TIMESTAMP WITH TIME zone NOT NULL,
27 behaviorFlag BOOLEAN DEFAULT FALSE,
28 experience FLOAT NOT NULL
29 --is_admin BOOLEAN NOT NULL,
30 --is_moderator BOOLEAN NOT NULL
31);
32
33CREATE TABLE question (
34 id SERIAL NOT NULL,
35 user_id INTEGER NOT NULL,
36 topic_id INTEGER NOT NULL,
37 title text NOT NULL,
38 textContent text NOT NULL,
39 dateCreated TIMESTAMP WITH TIME zone NOT NULL
40);
41
42CREATE TABLE "comment" (
43 id SERIAL NOT NULL,
44 question_id INTEGER NOT NULL,
45 user_id INTEGER NOT NULL,
46 textContent text NOT NULL,
47 dateCreated TIMESTAMP WITH TIME zone NOT NULL
48);
49
50CREATE TABLE private_message (
51 id SERIAL NOT NULL,
52 sender_id INTEGER NOT NULL,
53 receiver_id INTEGER NOT NULL,
54 textContent text NOT NULL,
55 dateCreated TIMESTAMP WITH TIME zone NOT NULL,
56 seen BOOLEAN DEFAULT FALSE
57);
58
59CREATE TABLE inbox (
60 user_id INTEGER NOT NULL
61);
62
63CREATE TABLE notification (
64 id SERIAL NOT NULL,
65 user_id INTEGER NOT NULL,
66 seen BOOLEAN DEFAULT FALSE
67);
68
69CREATE TABLE message_notification (
70 notification_id INTEGER NOT NULL,
71 private_message_id INTEGER NOT NULL
72);
73
74CREATE TABLE question_notification (
75 notification_id INTEGER NOT NULL,
76 question_id INTEGER NOT NULL
77);
78
79CREATE TABLE moderator (
80 user_id INTEGER NOT NULL
81);
82
83CREATE TABLE "admin" (
84 user_id INTEGER NOT NULL
85);
86
87CREATE TABLE banned_user (
88 user_id INTEGER NOT NULL,
89 banDate TIMESTAMP WITH TIME zone NOT NULL
90);
91
92CREATE TABLE topic (
93 id SERIAL NOT NULL,
94 name text NOT NULL
95);
96
97CREATE TABLE question_vote (
98 question_id INTEGER NOT NULL,
99 user_id INTEGER NOT NULL,
100 "value" INTEGER NOT NULL CHECK (("value" >= -1) AND ("value" <= 1))
101);
102
103CREATE TABLE comment_vote (
104 comment_id INTEGER NOT NULL,
105 user_id INTEGER NOT NULL,
106 "value" INTEGER NOT NULL CHECK (("value" >= -1) AND ("value" <= 1))
107);
108
109CREATE TABLE achievement (
110 id SERIAL NOT NULL,
111 user_id INTEGER NOT NULL,
112 title text NOT NULL,
113 objective text NOT NULL,
114 dateAchieved TIMESTAMP WITH TIME zone NOT NULL,
115 completionFlag BOOLEAN DEFAULT FALSE,
116 experienceGain INTEGER NOT NULL CHECK (experienceGain > 0)
117);
118
119CREATE TABLE reward_item (
120 id SERIAL NOT NULL,
121 achievement_id INTEGER NOT NULL,
122 name text NOT NULL,
123 imagePath text NOT NULL
124);
125
126-- Primary Keys and Uniques
127ALTER TABLE ONLY "user"
128 ADD CONSTRAINT user_pkey PRIMARY KEY (id);
129
130ALTER TABLE ONLY "user"
131 ADD CONSTRAINT user_email_key UNIQUE (email);
132
133ALTER TABLE ONLY "user"
134 ADD CONSTRAINT user_username UNIQUE (username);
135
136ALTER TABLE ONLY question
137 ADD CONSTRAINT question_pkey PRIMARY KEY (id);
138
139ALTER TABLE ONLY "comment"
140 ADD CONSTRAINT comment_pkey PRIMARY KEY (id);
141
142ALTER TABLE ONLY private_message
143 ADD CONSTRAINT private_message_pkey PRIMARY KEY (id);
144
145ALTER TABLE ONLY inbox
146 ADD CONSTRAINT inbox_pkey PRIMARY KEY (user_id);
147
148ALTER TABLE ONLY notification
149 ADD CONSTRAINT notification_pkey PRIMARY KEY (id);
150
151ALTER TABLE ONLY message_notification
152 ADD CONSTRAINT message_notification_pkey PRIMARY KEY (notification_id);
153
154ALTER TABLE ONLY question_notification
155 ADD CONSTRAINT question_notification_pkey PRIMARY KEY (notification_id);
156
157ALTER TABLE ONLY moderator
158 ADD CONSTRAINT moderator_pkey PRIMARY KEY (user_id);
159
160ALTER TABLE ONLY "admin"
161 ADD CONSTRAINT admin_pkey PRIMARY KEY (user_id);
162
163ALTER TABLE ONLY banned_user
164 ADD CONSTRAINT banned_user_pkey PRIMARY KEY (user_id);
165
166ALTER TABLE ONLY topic
167 ADD CONSTRAINT topic_pkey PRIMARY KEY (id);
168
169ALTER TABLE ONLY topic
170 ADD CONSTRAINT topic_name UNIQUE (name);
171
172ALTER TABLE ONLY question_vote
173 ADD CONSTRAINT question_vote_id_pkey PRIMARY KEY (question_id, user_id);
174
175ALTER TABLE ONLY comment_vote
176 ADD CONSTRAINT comment_vote_id_pkey PRIMARY KEY (comment_id, user_id);
177
178ALTER TABLE ONLY achievement
179 ADD CONSTRAINT achievement_pkey PRIMARY KEY (id);
180
181ALTER TABLE ONLY achievement
182 ADD CONSTRAINT achievement_title UNIQUE (title);
183
184ALTER TABLE ONLY reward_item
185 ADD CONSTRAINT reward_item_pkey PRIMARY KEY (id);
186
187ALTER TABLE ONLY reward_item
188 ADD CONSTRAINT reward_item_name UNIQUE (name);
189
190ALTER TABLE ONLY reward_item
191 ADD CONSTRAINT reward_item_image_path UNIQUE (imagePath);
192
193-- Foreign Keys
194ALTER TABLE ONLY question
195 ADD CONSTRAINT question_user_id_fkey FOREIGN KEY (user_id) REFERENCES "user"(id) ON UPDATE CASCADE;
196
197ALTER TABLE ONLY question
198 ADD CONSTRAINT question_topic_id_fkey FOREIGN KEY (topic_id) REFERENCES topic(id) ON UPDATE CASCADE;
199
200ALTER TABLE ONLY "comment"
201 ADD CONSTRAINT comment_question_id_fkey FOREIGN KEY (question_id) REFERENCES question(id) ON UPDATE CASCADE;
202
203ALTER TABLE ONLY "comment"
204 ADD CONSTRAINT comment_user_id_fkey FOREIGN KEY (user_id) REFERENCES "user"(id) ON UPDATE CASCADE;
205
206ALTER TABLE ONLY private_message
207 ADD CONSTRAINT private_message_sender_id_fkey FOREIGN KEY (sender_id) REFERENCES "user"(id) ON UPDATE CASCADE;
208
209ALTER TABLE ONLY private_message
210 ADD CONSTRAINT private_message_receiver_id_fkey FOREIGN KEY (receiver_id) REFERENCES "user"(id) ON UPDATE CASCADE;
211
212ALTER TABLE ONLY inbox
213 ADD CONSTRAINT inbox_user_id_fkey FOREIGN KEY (user_id) REFERENCES "user"(id) ON UPDATE CASCADE;
214
215ALTER TABLE ONLY notification
216 ADD CONSTRAINT notification_inbox_fkey FOREIGN KEY (user_id) REFERENCES "user"(id) ON UPDATE CASCADE;
217
218ALTER TABLE ONLY message_notification
219 ADD CONSTRAINT message_notification_id_fkey FOREIGN KEY (notification_id) REFERENCES notification(id) ON UPDATE CASCADE;
220
221ALTER TABLE ONLY message_notification
222 ADD CONSTRAINT message_notification_message_id_fkey FOREIGN KEY (private_message_id) REFERENCES private_message(id) ON UPDATE CASCADE;
223
224ALTER TABLE ONLY question_notification
225 ADD CONSTRAINT question_notification_id_fkey FOREIGN KEY (notification_id) REFERENCES notification(id) ON UPDATE CASCADE;
226
227ALTER TABLE ONLY question_notification
228 ADD CONSTRAINT question_notification_question_id_fkey FOREIGN KEY (question_id) REFERENCES question(id) ON UPDATE CASCADE;
229
230ALTER TABLE ONLY moderator
231 ADD CONSTRAINT moderator_user_id_fkey FOREIGN KEY (user_id) REFERENCES "user"(id) ON UPDATE CASCADE;
232
233ALTER TABLE ONLY "admin"
234 ADD CONSTRAINT admin_user_id_fkey FOREIGN KEY (user_id) REFERENCES "user"(id) ON UPDATE CASCADE;
235
236ALTER TABLE ONLY banned_user
237 ADD CONSTRAINT banned_user_id_fkey FOREIGN KEY (user_id) REFERENCES "user"(id) ON UPDATE CASCADE;
238
239ALTER TABLE ONLY question_vote
240 ADD CONSTRAINT question_vote_question_id_fkey FOREIGN KEY (question_id) REFERENCES question(id) ON UPDATE CASCADE;
241
242ALTER TABLE ONLY question_vote
243 ADD CONSTRAINT question_vote_user_id_fkey FOREIGN KEY (user_id) REFERENCES "user"(id) ON UPDATE CASCADE;
244
245ALTER TABLE ONLY comment_vote
246 ADD CONSTRAINT comment_vote_question_id_fkey FOREIGN KEY (comment_id) REFERENCES "comment" (id) ON UPDATE CASCADE;
247
248ALTER TABLE ONLY comment_vote
249 ADD CONSTRAINT comment_vote_user_id_fkey FOREIGN KEY (user_id) REFERENCES "user"(id) ON UPDATE CASCADE;
250
251ALTER TABLE ONLY achievement
252 ADD CONSTRAINT achievement_user_id_fkey FOREIGN KEY (user_id) REFERENCES "user"(id) ON UPDATE CASCADE;
253
254ALTER TABLE ONLY reward_item
255 ADD CONSTRAINT reward_item_achievement_id_fkey FOREIGN KEY (achievement_id) REFERENCES achievement(id) ON UPDATE CASCADE;
256
257-- TRIGGERS
258
259CREATE FUNCTION equalPassword() RETURNS TRIGGER AS $equal_password$
260--&BODY&
261BEGIN
262 IF EXISTS (SELECT id, password FROM "user" WHERE id = NEW.id AND password = NEW.password)
263 THEN
264 RAISE EXCEPTION 'Your new password must be different than the older';
265 END IF;
266 RETURN NEW;
267END;
268--$BODY$
269$equal_password$ LANGUAGE plpgsql;
270
271CREATE TRIGGER newPassEqualToOld
272BEFORE UPDATE ON "user"
273FOR EACH ROW
274 EXECUTE PROCEDURE equalPassword();
275
276
277
278CREATE FUNCTION autoVoteQuestion() RETURNS TRIGGER AS $auto_vote_question$
279--&BODY&
280BEGIN
281 INSERT INTO question_vote (question_id, user_id, "value") VALUES (NEW.id, NEW.user_id, 1);
282 RETURN NEW;
283END;
284--&BODY&
285$auto_vote_question$ LANGUAGE plpgsql;
286
287CREATE TRIGGER questionAutoVote
288AFTER INSERT ON question
289FOR EACH ROW
290 EXECUTE PROCEDURE autoVoteQuestion();
291
292
293
294CREATE FUNCTION autoVoteComment() RETURNS TRIGGER AS $auto_vote_comment$
295--&BODY&
296BEGIN
297 INSERT INTO comment_vote (comment_id, user_id, "value") VALUES (NEW.id, NEW.user_id, 1);
298 RETURN NEW;
299END;
300--&BODY&
301$auto_vote_comment$ LANGUAGE plpgsql;
302
303CREATE TRIGGER commentAutoVote
304AFTER INSERT ON "comment"
305FOR EACH ROW
306 EXECUTE PROCEDURE autoVoteComment();
307
308-- Inserts
309
310INSERT INTO "user" (id, username, email, password, imagePath, creationDate, behaviorFlag, experience) VALUES (1, 'User1', 'testuser1@gmail.com', 'FDSG7DE9', 'defaultimage.png', '2016-02-15 15:48:29', FALSE, 3710);
311INSERT INTO "user" (id, username, email, password, imagePath, creationDate, behaviorFlag, experience) VALUES (2, 'User2', 'testuser2@gmail.com', 'SDFGHN12', 'defaultimage.png', '2016-05-12 19:37:52', FALSE, 67243);
312INSERT INTO "user" (id, username, email, password, imagePath, creationDate, behaviorFlag, experience) VALUES (3, 'User3', 'testuser3@gmail.com', 'MDO671KM', 'defaultimage.png', '2016-05-28 21:15:16', TRUE, 272);
313INSERT INTO "user" (id, username, email, password, imagePath, creationDate, behaviorFlag, experience) VALUES (4, 'User4', 'testuser4@gmail.com', '85SDF978', 'defaultimage.png', '2016-10-05 03:42:19', FALSE, 45412);
314INSERT INTO "user" (id, username, email, password, imagePath, creationDate, behaviorFlag, experience) VALUES (5, 'User5', 'testuser5@gmail.com', 'OMJHDF80', 'defaultimage.png', '2017-04-21 15:12:54', FALSE, 137532);
315INSERT INTO "user" (id, username, email, password, imagePath, creationDate, behaviorFlag, experience) VALUES (6, 'User6', 'testuser6@gmail.com', 'H1K2HNJL', 'defaultimage.png', '2017-07-15 09:54:45', FALSE, 54321);
316INSERT INTO "user" (id, username, email, password, imagePath, creationDate, behaviorFlag, experience) VALUES (7, 'User7', 'testuser7@gmail.com', 'DSH098DS', 'defaultimage.png', '2017-08-17 10:03:15', FALSE, 43523);
317INSERT INTO "user" (id, username, email, password, imagePath, creationDate, behaviorFlag, experience) VALUES (8, 'User8', 'testuser8@gmail.com', 'MO32MMDS', 'defaultimage.png', '2017-10-25 23:12:32', FALSE, 623);
318INSERT INTO "user" (id, username, email, password, imagePath, creationDate, behaviorFlag, experience) VALUES (9, 'User9', 'testuser9@gmail.com', 'DSF5D0SH', 'defaultimage.png', '2017-12-28 05:27:12', FALSE, 4713);
319INSERT INTO "user" (id, username, email, password, imagePath, creationDate, behaviorFlag, experience) VALUES (10, 'User10', 'testuser10@gmail.com', '54KLNNLK', 'defaultimage.png', '2018-01-04 13:07:51', TRUE, 4326);
320INSERT INTO "user" (id, username, email, password, imagePath, creationDate, behaviorFlag, experience) VALUES (11, 'User11', 'testuser11@gmail.com', 'KIN423SD', 'defaultimage.png', '2018-03-02 19:47:18', FALSE, 13832);
321INSERT INTO "user" (id, username, email, password, imagePath, creationDate, behaviorFlag, experience) VALUES (12, 'User12', 'testuser12@gmail.com', 'BDS87G9M', 'defaultimage.png', '2018-03-18 22:41:59', FALSE, 435);
322
323INSERT INTO topic (id, name) VALUES (1, 'Character');
324INSERT INTO topic (id, name) VALUES (2, 'Combat');
325INSERT INTO topic (id, name) VALUES (3, 'Dungeon Mastering');
326INSERT INTO topic (id, name) VALUES (4, 'Itemization');
327INSERT INTO topic (id, name) VALUES (5, 'Roleplay');
328INSERT INTO topic (id, name) VALUES (6, 'Text Play');
329INSERT INTO topic (id, name) VALUES (7, 'Off-Topic');
330
331INSERT INTO question (id, user_id, topic_id, title, textContent, dateCreated) VALUES (1, 4, 2, 'How to I engage in combat?', 'Duis pretium porta nibh, quis interdum turpis facilisis non. Nulla sed faucibus arcu. Nunc et ligula eu purus interdum laoreet non in felis. Nulla sed vulputate velit. Nulla nunc ligula, consequat sit amet auctor ac, tincidunt nec libero.', '2016-11-21 16:22:52');
332INSERT INTO question (id, user_id, topic_id, title, textContent, dateCreated) VALUES (2, 2, 5, 'I have a question about roleplaying...', 'Quisque maximus erat vel sem iaculis condimentum. Suspendisse sit amet mollis sapien. Nam auctor, diam eu egestas aliquam, turpis nulla accumsan mi, quis tristique sem mi sit amet orci. Nulla nisl velit, rhoncus eu neque id, consequat sodales augue. Mauris lacinia, nibh vitae vestibulum dignissim, erat turpis scelerisque felis, ut placerat massa ipsum eget neque. Sed at ante in enim facilisis finibus et ac erat.', '2017-01-05 13:28:31');
333INSERT INTO question (id, user_id, topic_id, title, textContent, dateCreated) VALUES (3, 5, 4, 'Making itemization rewarding for players...', 'Phasellus at neque ornare, luctus velit ac, luctus mauris. Aenean commodo velit a dui elementum, in egestas libero lobortis. Aliquam erat volutpat. Nunc vitae nibh metus. Mauris pellentesque malesuada tincidunt. Duis accumsan, arcu scelerisque malesuada scelerisque, sem nunc ultrices sapien, ac lacinia ipsum nibh non metus. Aenean nec lacus id tellus varius venenatis eu ut nisi. Vestibulum a cursus velit. Donec mauris lacus, pulvinar vel viverra vel, blandit non purus. Vestibulum vel gravida nunc, eget scelerisque turpis. Pellentesque eu feugiat tortor. Vestibulum ultricies lectus quis orci venenatis gravida.', '2017-12-10 11:41:19');
334INSERT INTO question (id, user_id, topic_id, title, textContent, dateCreated) VALUES (4, 7, 1, 'How can I create an interesting character?', 'Vivamus massa libero, ornare vitae elementum a, ultricies sed turpis. Suspendisse venenatis, turpis non porta blandit, neque leo gravida purus, a pulvinar nulla nunc pretium sapien. Phasellus quis enim quis tortor malesuada volutpat sit amet nec lorem. Nulla facilisi. Curabitur sit amet rhoncus sapien. In enim nibh, vestibulum a faucibus vitae, fermentum vitae purus. Nullam nulla ex, laoreet ut aliquam in, vestibulum non sapien. Morbi posuere vestibulum nulla at venenatis. Mauris sed metus eu ante suscipit mattis. Interdum et malesuada fames ac ante ipsum primis in faucibus. Maecenas a mi lobortis, scelerisque magna vel, convallis enim. Nullam bibendum scelerisque lorem. In ex nibh, pharetra vitae sodales nec, luctus vitae neque. Aliquam ut augue erat.', '2018-01-03 15:23:34');
335INSERT INTO question (id, user_id, topic_id, title, textContent, dateCreated) VALUES (5, 11, 3, 'As a DM, how am I supposed to keep players engaged?', 'Cras malesuada nunc vel vestibulum pharetra. Nulla eu ex arcu. Pellentesque lacinia urna ac turpis ultrices, a interdum nibh vehicula. Pellentesque eu leo mollis, sollicitudin velit quis, congue enim. Donec luctus, velit vestibulum pretium pulvinar, urna magna luctus dui, in auctor sem nisi a libero. Nam finibus nibh sed mi iaculis, vitae iaculis dui iaculis. Fusce congue suscipit nulla eu cursus. Nullam et eros id nulla placerat lacinia.', '2018-03-03 01:51:29');
336
337INSERT INTO "comment" (id, question_id, user_id, textContent, dateCreated) VALUES (1, 1, 12, 'Cras malesuada nunc vel vestibulum pharetra. Nulla eu ex arcu. Pellentesque lacinia urna ac turpis ultrices, a interdum nibh vehicula. Pellentesque eu leo mollis, sollicitudin velit quis, congue enim.', '2016-11-22 01:25:17');
338INSERT INTO "comment" (id, question_id, user_id, textContent, dateCreated) VALUES (2, 1, 6, 'Vivamus massa libero, ornare vitae elementum a, ultricies sed turpis. Suspendisse venenatis, turpis non porta blandit, neque leo gravida purus, a pulvinar nulla nunc pretium sapien.', '2016-11-22 10:41:52');
339INSERT INTO "comment" (id, question_id, user_id, textContent, dateCreated) VALUES (3, 1, 8, 'Aliquam volutpat dictum nibh, ac hendrerit nunc pellentesque in. Donec augue elit, blandit non neque rhoncus, malesuada semper odio.', '2016-11-22 15:18:29');
340INSERT INTO "comment" (id, question_id, user_id, textContent, dateCreated) VALUES (4, 2, 4, 'Mauris sed metus eu ante suscipit mattis. Interdum et malesuada fames ac ante ipsum primis in faucibus. Maecenas a mi lobortis, scelerisque magna vel, convallis enim. Nullam bibendum scelerisque lorem. In ex nibh, pharetra vitae sodales nec, luctus vitae neque. Aliquam ut augue erat.', '2017-01-08 04:28:18');
341INSERT INTO "comment" (id, question_id, user_id, textContent, dateCreated) VALUES (5, 1, 1, 'Phasellus quis enim quis tortor malesuada volutpat sit amet nec lorem. Nulla facilisi. Curabitur sit amet rhoncus sapien. In enim nibh, vestibulum a faucibus vitae, fermentum vitae purus.', '2017-01-10 02:55:12');
342INSERT INTO "comment" (id, question_id, user_id, textContent, dateCreated) VALUES (6, 2, 10, 'Duis accumsan, arcu scelerisque malesuada scelerisque, sem nunc ultrices sapien, ac lacinia ipsum nibh non metus.', '2017-01-10 08:14:47');
343INSERT INTO "comment" (id, question_id, user_id, textContent, dateCreated) VALUES (7, 3, 7, 'Morbi posuere vestibulum nulla at venenatis. Mauris sed metus eu ante suscipit mattis. Interdum et malesuada fames ac ante ipsum primis in faucibus.', '2017-12-10 15:17:41');
344INSERT INTO "comment" (id, question_id, user_id, textContent, dateCreated) VALUES (8, 3, 2, 'Phasellus at neque ornare, luctus velit ac, luctus mauris.', '2017-12-11 21:38:18');
345INSERT INTO "comment" (id, question_id, user_id, textContent, dateCreated) VALUES (9, 2, 5, 'Sed dapibus magna ac interdum rhoncus. Maecenas laoreet scelerisque ullamcorper. Nunc eget tellus venenatis ante luctus mattis.', '2017-12-18 17:03:45');
346INSERT INTO "comment" (id, question_id, user_id, textContent, dateCreated) VALUES (10, 3, 5, 'Maecenas a mi lobortis, scelerisque magna vel, convallis enim. Nullam bibendum scelerisque lorem. In ex nibh, pharetra vitae sodales nec, luctus vitae neque. Aliquam ut augue erat.', '2017-12-18 17:26:12');
347INSERT INTO "comment" (id, question_id, user_id, textContent, dateCreated) VALUES (11, 4, 5, 'Maecenas a mi lobortis, scelerisque magna vel, convallis enim. Nullam bibendum scelerisque lorem. In ex nibh, pharetra vitae sodales nec, luctus vitae neque. Aliquam ut augue erat.', '2018-01-05 23:17:58');
348
349INSERT INTO private_message (id, sender_id, receiver_id, textContent, dateCreated, seen) VALUES (1, 1, 2, 'Hello', '2016-05-15 00:15:40', TRUE);
350INSERT INTO private_message (id, sender_id, receiver_id, textContent, dateCreated, seen) VALUES (2, 2, 1, 'Hey man', '2016-05-15 01:24:17', TRUE);
351INSERT INTO private_message (id, sender_id, receiver_id, textContent, dateCreated, seen) VALUES (3, 1, 2, 'What''s up?', '2016-05-15 01:26:10', TRUE);
352INSERT INTO private_message (id, sender_id, receiver_id, textContent, dateCreated, seen) VALUES (4, 2, 1, 'Lorem Ipsum', '2016-05-15 01:29:41', TRUE);
353INSERT INTO private_message (id, sender_id, receiver_id, textContent, dateCreated, seen) VALUES (5, 1, 2, 'bitconnect', '2016-05-15 01:31:16', FALSE);
354
355INSERT INTO notification (id, user_id, seen) VALUES (1, 2, TRUE);
356INSERT INTO notification (id, user_id, seen) VALUES (2, 1, TRUE);
357INSERT INTO notification (id, user_id, seen) VALUES (3, 2, TRUE);
358INSERT INTO notification (id, user_id, seen) VALUES (4, 1, TRUE);
359INSERT INTO notification (id, user_id, seen) VALUES (5, 2, FALSE);
360INSERT INTO notification (id, user_id, seen) VALUES (6, 4, TRUE);
361INSERT INTO notification (id, user_id, seen) VALUES (7, 4, TRUE);
362INSERT INTO notification (id, user_id, seen) VALUES (8, 4, TRUE);
363INSERT INTO notification (id, user_id, seen) VALUES (9, 2, TRUE);
364INSERT INTO notification (id, user_id, seen) VALUES (10, 4, TRUE);
365INSERT INTO notification (id, user_id, seen) VALUES (11, 2, TRUE);
366INSERT INTO notification (id, user_id, seen) VALUES (12, 5, TRUE);
367INSERT INTO notification (id, user_id, seen) VALUES (13, 5, TRUE);
368INSERT INTO notification (id, user_id, seen) VALUES (14, 2, TRUE);
369INSERT INTO notification (id, user_id, seen) VALUES (15, 5, TRUE);
370INSERT INTO notification (id, user_id, seen) VALUES (16, 7, TRUE);
371
372INSERT INTO message_notification (notification_id, private_message_id) VALUES (1, 1);
373INSERT INTO message_notification (notification_id, private_message_id) VALUES (2, 2);
374INSERT INTO message_notification (notification_id, private_message_id) VALUES (3, 3);
375INSERT INTO message_notification (notification_id, private_message_id) VALUES (4, 4);
376INSERT INTO message_notification (notification_id, private_message_id) VALUES (5, 5);
377
378INSERT INTO question_notification (notification_id, question_id) VALUES (6, 1);
379INSERT INTO question_notification (notification_id, question_id) VALUES (7, 1);
380INSERT INTO question_notification (notification_id, question_id) VALUES (8, 1);
381INSERT INTO question_notification (notification_id, question_id) VALUES (9, 2);
382INSERT INTO question_notification (notification_id, question_id) VALUES (10, 1);
383INSERT INTO question_notification (notification_id, question_id) VALUES (11, 2);
384INSERT INTO question_notification (notification_id, question_id) VALUES (12, 3);
385INSERT INTO question_notification (notification_id, question_id) VALUES (13, 3);
386INSERT INTO question_notification (notification_id, question_id) VALUES (14, 2);
387INSERT INTO question_notification (notification_id, question_id) VALUES (15, 3);
388INSERT INTO question_notification (notification_id, question_id) VALUES (16, 4);
389
390INSERT INTO moderator (user_id) VALUES (2);
391INSERT INTO moderator (user_id) VALUES (4);
392
393INSERT INTO "admin" (user_id) VALUES (1);
394
395INSERT INTO banned_user (user_id, banDate) VALUES (3, '2016-05-30 12:03:27');
396INSERT INTO banned_user (user_id, banDate) VALUES (10, '2018-01-07 23:19:11');
397
398--Need to check votes and achievements later
399
400INSERT INTO question_vote (question_id, user_id, "value") VALUES (1, 1, 1);
401INSERT INTO question_vote (question_id, user_id, "value") VALUES (2, 1, 1);
402INSERT INTO question_vote (question_id, user_id, "value") VALUES (3, 1, -1);
403INSERT INTO question_vote (question_id, user_id, "value") VALUES (5, 1, 1);
404
405INSERT INTO comment_vote (comment_id, user_id, "value") VALUES (4, 1, 1);
406INSERT INTO comment_vote (comment_id, user_id, "value") VALUES (7, 2, 1);
407INSERT INTO comment_vote (comment_id, user_id, "value") VALUES (8, 1, 1);
408
409INSERT INTO achievement (id, user_id, title, objective, dateAchieved, completionFlag, experienceGain) VALUES (1, 2, 'The first of Many', 'Post your first question', '2016-05-30 12:03:27', FALSE, 10);
410INSERT INTO achievement (id, user_id, title, objective, dateAchieved, completionFlag, experienceGain) VALUES (3, 2, 'Template1', 'Template', '2016-05-30 12:03:27', FALSE, 10);
411INSERT INTO achievement (id, user_id, title, objective, dateAchieved, completionFlag, experienceGain) VALUES (2, 2, 'Template2', 'Template', '2016-05-30 12:03:27', FALSE, 10);
412INSERT INTO achievement (id, user_id, title, objective, dateAchieved, completionFlag, experienceGain) VALUES (4, 2, 'Template3', 'Template', '2016-05-30 12:03:27', FALSE, 10);
413
414INSERT INTO reward_item (id, achievement_id, name, imagePath) VALUES (1, 1, 'The sword of a thousand truths', 'TheSwordOfAThousandTruths.jpg');
415INSERT INTO reward_item (id, achievement_id, name, imagePath) VALUES (2, 2, 'Template1', 'Template1.jpg');
416INSERT INTO reward_item (id, achievement_id, name, imagePath) VALUES (3, 3, 'Template2', 'Template2.jpg');
417INSERT INTO reward_item (id, achievement_id, name, imagePath) VALUES (4, 4, 'Template3', 'Template3.jpg');