-- drop tables here DROP TABLE IF EXISTS Account; DROP TABLE IF EXISTS Tactic; DROP TABLE IF EXISTS Team; DROP TABLE IF EXISTS User; DROP TABLE IF EXISTS Member; DROP TABLE IF EXISTS TacticFolder; DROP TABLE IF EXISTS TacticFolderLink; -- CREATE TABLE Account ( id integer PRIMARY KEY AUTOINCREMENT, email varchar UNIQUE NOT NULL, username varchar NOT NULL, token varchar UNIQUE NOT NULL, hash varchar NOT NULL, profilePicture varchar NOT NULL ); CREATE TABLE Tactic ( id integer PRIMARY KEY AUTOINCREMENT, name varchar NOT NULL, creation_date timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, owner integer NOT NULL, content varchar DEFAULT '{"players": [], "actions": [], "objects": []}' NOT NULL, court_type varchar CHECK ( court_type IN ('HALF', 'PLAIN')) NOT NULL, FOREIGN KEY (owner) REFERENCES Account ); CREATE TABLE TacticFolder ( id integer PRIMARY KEY AUTOINCREMENT, name varchar NOT NULL, owner integer NOT NULL, tactic_folder_parent integer, FOREIGN KEY (owner) REFERENCES Account, FOREIGN KEY (tactic_folder_parent) REFERENCES TacticFolder ); CREATE TABLE TacticFolderLink ( id_folder integer NOT NULL, id_tactic integer NOT NULL, FOREIGN KEY (id_folder) REFERENCES TacticFolder, FOREIGN KEY (id_tactic) REFERENCES Tactic ); CREATE TABLE Team ( id integer PRIMARY KEY AUTOINCREMENT NOT NULL, name varchar NOT NULL, picture varchar NOT NULL, main_color varchar NOT NULL, second_color varchar NOT NULL ); CREATE TABLE Member ( id_team integer NOT NULL, id_user integer NOT NULL, role text CHECK (role IN ('COACH', 'PLAYER')) NOT NULL, FOREIGN KEY (id_team) REFERENCES Team (id), FOREIGN KEY (id_user) REFERENCES Account (id) );