You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
5.4 KiB
121 lines
5.4 KiB
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;
|
|
|