PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; CREATE TABLE alembic_version ( version_num VARCHAR(32) NOT NULL, CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num) ); INSERT INTO alembic_version VALUES('3ef4c34115fd'); CREATE TABLE game ( id INTEGER NOT NULL, name VARCHAR(64) NOT NULL, state VARCHAR(11) DEFAULT 'initiated' NOT NULL, start_time DATETIME, end_time DATETIME, PRIMARY KEY (id), CONSTRAINT gamestate CHECK (state IN ('initiated', 'published', 'started', 'interrupted', 'finished')) ); INSERT INTO game VALUES(1,'Marijns Game','initiated','2020-07-09 12:56:00.000000',NULL); INSERT INTO game VALUES(2,'Spelletje','initiated',NULL,NULL); CREATE TABLE player ( id INTEGER NOT NULL, name VARCHAR(64) NOT NULL, auth_hash VARCHAR(32), password_hash VARCHAR(128), PRIMARY KEY (id), UNIQUE (auth_hash), UNIQUE (name) ); INSERT INTO player VALUES(1,'Marijn','a9df90398c66181bcb9e826e48c97d8a','pbkdf2:sha256:150000$WLe3pHiQ$ff75a3c2e8e0345be88f7f59b57f1cc27f710ef9012995b752f71d8914282cda'); INSERT INTO player VALUES(2,'Rogier','6a18131cea1be566c6a33e91349f7d91','pbkdf2:sha256:150000$YbcS3JRB$60c71304b2d148f82cd954f57d68ceb15b66fedc23bbe740cd5d97f0a60f7ce4'); INSERT INTO player VALUES(3,'Henk','df6a22a4c50abba430b82ab9e07d533e','pbkdf2:sha256:150000$PNIf5rdP$81cba639a9d12c946230411d2ba0d5bc22be4509578d7b0c9409047d907c26fc'); INSERT INTO player VALUES(4,'testplayer','79404d0d9dc869fb421c051790e74b38',NULL); INSERT INTO player VALUES(5,'test','9a9f90e959261adb50fee40b4bf0ec35',NULL); INSERT INTO player VALUES(6,'Tessa','f74c9e3d76b22368722d76a5b2445c23',NULL); INSERT INTO player VALUES(7,'Jemoeder','fc14d4b87f28da7f88c496c33b2d9fe8',NULL); INSERT INTO player VALUES(8,'jevader','a43c1704562a456bc1f098fab200805a',NULL); INSERT INTO player VALUES(9,'jekind','0e6cb60258ed1fd71a95fbd13d6751e1',NULL); CREATE TABLE game_player ( game_id INTEGER NOT NULL, player_id INTEGER NOT NULL, role VARCHAR(6) DEFAULT 'none' NOT NULL, PRIMARY KEY (game_id, player_id), FOREIGN KEY(game_id) REFERENCES game (id), FOREIGN KEY(player_id) REFERENCES player (id), CONSTRAINT role CHECK (role IN ('none', 'owner', 'hunter', 'bunny')) ); INSERT INTO game_player VALUES(1,1,'owner'); INSERT INTO game_player VALUES(1,2,'hunter'); INSERT INTO game_player VALUES(1,3,'bunny'); INSERT INTO game_player VALUES(2,1,'hunter'); INSERT INTO game_player VALUES(2,3,'bunny'); INSERT INTO game_player VALUES(2,2,'owner'); CREATE TABLE location ( id INTEGER NOT NULL, player_id INTEGER NOT NULL, longitude NUMERIC(15, 10) NOT NULL, latitude NUMERIC(15, 10) NOT NULL, timestamp DATETIME DEFAULT (CURRENT_TIMESTAMP) NOT NULL, PRIMARY KEY (id), FOREIGN KEY(player_id) REFERENCES player (id) ); INSERT INTO location VALUES(1,2,5.1690699999999996094,52.224429999999998131,'2020-07-10 10:36:26'); INSERT INTO location VALUES(2,2,6.0314899999999997959,52.180669999999999219,'2020-07-10 10:37:19'); INSERT INTO location VALUES(3,2,5.4217500000000002913,51.882429999999999381,'2020-07-11 10:15:12'); INSERT INTO location VALUES(4,3,4.4604499999999998038,51.905310000000000059,'2020-07-17 20:50:00'); INSERT INTO location VALUES(5,3,4.4604499999999998038,52.236209999999999808,'2020-07-17 20:50:00'); CREATE TABLE notification ( id INTEGER NOT NULL, game_id INTEGER NOT NULL, message TEXT NOT NULL, type VARCHAR(64) NOT NULL, timestamp DATETIME DEFAULT (CURRENT_TIMESTAMP) NOT NULL, PRIMARY KEY (id), FOREIGN KEY(game_id) REFERENCES game (id) ); CREATE TABLE objective ( id INTEGER NOT NULL, name VARCHAR(64), game_id INTEGER NOT NULL, hash VARCHAR(32) NOT NULL, longitude NUMERIC(15, 10), latitude NUMERIC(15, 10), PRIMARY KEY (id), FOREIGN KEY(game_id) REFERENCES game (id), UNIQUE (hash) ); INSERT INTO objective VALUES(1,'Je Moeder',1,'6d6ea175f38a912624b0d842230ec5a0',5.2999999999999998223,52.200000000000002843); INSERT INTO objective VALUES(5,'Amsterdam',1,'2cb430ba9120fd92ad2694ef59e8232a',4.8120099999999998985,52.37225000000000108); INSERT INTO objective VALUES(6,'Blok beton',1,'2a94b2b7ca0f01d6d6a025644ce47e46',5.2349899999999998101,52.549639999999996574); INSERT INTO objective VALUES(7,'testdit',2,'d813048690c6b804bfce0268ccd60995',5.1240500000000004376,52.093200000000003057); CREATE TABLE player_caught_player ( id INTEGER DEFAULT '-1' NOT NULL, catching_player_id INTEGER NOT NULL, caught_player_id INTEGER NOT NULL, photo_reference VARCHAR(128) NOT NULL, timestamp DATETIME DEFAULT (CURRENT_TIMESTAMP) NOT NULL, PRIMARY KEY (id), FOREIGN KEY(catching_player_id) REFERENCES player (id), FOREIGN KEY(caught_player_id) REFERENCES player (id), UNIQUE (photo_reference) ); CREATE TABLE notification_player ( notification_id INTEGER NOT NULL, player_id INTEGER NOT NULL, been_shown BOOLEAN DEFAULT 'True' NOT NULL, PRIMARY KEY (notification_id, player_id), FOREIGN KEY(notification_id) REFERENCES notification (id), FOREIGN KEY(player_id) REFERENCES player (id), CHECK (been_shown IN (0, 1)) ); CREATE TABLE player_found_objective ( objective_id INTEGER DEFAULT '-1' NOT NULL, player_id INTEGER DEFAULT '-1' NOT NULL, timestamp DATETIME DEFAULT (CURRENT_TIMESTAMP) NOT NULL, PRIMARY KEY (objective_id, player_id), FOREIGN KEY(objective_id) REFERENCES objective (id), FOREIGN KEY(player_id) REFERENCES player (id) ); INSERT INTO player_found_objective VALUES(1,2,'2020-07-10 09:49:10'); INSERT INTO player_found_objective VALUES(1,3,'2020-07-10 09:49:10'); CREATE UNIQUE INDEX ix_game_name ON game (name); COMMIT;