63 lines
1.6 KiB
SQL
63 lines
1.6 KiB
SQL
CREATE TABLE IF NOT EXISTS station (
|
|
id INTEGER PRIMARY KEY,
|
|
name TEXT NOT NULL UNIQUE,
|
|
notes TEXT,
|
|
amount_people INTEGER,
|
|
last_login DATETIME,
|
|
ready BOOLEAN NOT NULL DEFAULT false,
|
|
pw TEXT NOT NULL DEFAULT (upper(hex(randomblob(4)))),
|
|
lat REAL,
|
|
lng REAL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS route (
|
|
id INTEGER PRIMARY KEY,
|
|
name TEXT NOT NULL UNIQUE -- e.g. 'wiwö'
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS route_station (
|
|
route_id INTEGER NOT NULL,
|
|
station_id INTEGER NOT NULL,
|
|
pos INTEGER NOT NULL,
|
|
PRIMARY KEY (route_id, station_id),
|
|
FOREIGN KEY (route_id) REFERENCES route(id),
|
|
FOREIGN KEY (station_id) REFERENCES station(id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS team (
|
|
id INTEGER PRIMARY KEY,
|
|
name TEXT NOT NULL UNIQUE,
|
|
notes TEXT,
|
|
amount_people INTEGER,
|
|
first_station_id INTEGER NOT NULL,
|
|
route_id INTEGER NOT NULL,
|
|
FOREIGN KEY (first_station_id) REFERENCES station(id),
|
|
FOREIGN KEY (route_id) REFERENCES route(id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS rating (
|
|
team_id INTEGER NOT NULL,
|
|
station_id INTEGER NOT NULL,
|
|
points INTEGER,
|
|
notes TEXT,
|
|
arrived_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
started_at DATETIME,
|
|
left_at DATETIME,
|
|
PRIMARY KEY (team_id, station_id),
|
|
FOREIGN KEY (team_id) REFERENCES team(id),
|
|
FOREIGN KEY (station_id) REFERENCES station(id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS user (
|
|
id INTEGER PRIMARY KEY NOT NULL,
|
|
name TEXT NOT NULL UNIQUE,
|
|
pw TEXT NOT NULL
|
|
);
|
|
|
|
create table if not exists "tower_sessions" (
|
|
id text primary key not null,
|
|
data blob not null,
|
|
expiry_date integer not null
|
|
);
|
|
|