-- ALTER USER 'root'@'localhost' IDENTIFIED BY 'p';

-- CREATE DATABASE scripted;
-- USE scripted;

DROP TABLE Contenir;
DROP TABLE Gerer;
DROP TABLE ResoudreMulti;
DROP TABLE Participer;
DROP TABLE ResoudreEnSolo;
DROP TABLE Enigme;
DROP TABLE Partie;
DROP TABLE Admin;
DROP TABLE Joueur;

CREATE TABLE Joueur(
email varchar(50) PRIMARY KEY,
pseudo varchar(50),
mdp varchar(50)
);

CREATE TABLE Admin(
email varchar(50) PRIMARY KEY,
pseudo varchar(50),
mdp varchar(50)
);

CREATE TABLE Enigme(
id int PRIMARY KEY AUTO_INCREMENT,
admin varchar(50) REFERENCES Admin(email),
enonce varchar(250) NOT NULL,
aide varchar(250),
rappel varchar(250),
solution varchar(250) NOT NULL,
test varchar(250) NOT NULL,
tempsDeResolution numeric CHECK (tempsDeResolution >0),
points numeric
);

CREATE TABLE Partie(
id int PRIMARY KEY AUTO_INCREMENT,
);

CREATE TABLE ResoudreEnSolo(
joueur varchar(50) REFERENCES Joueur(email),
enigme varchar(5) REFERENCES Enigme(id),
indexEnigme numeric UNIQUE,
PRIMARY KEY(joueur, enigme)
);

CREATE TABLE PasserEnMulti(
joueur varchar(50) REFERENCES Joueur(email),
enigme char(5) REFERENCES Enigme(id),
partie char(5) REFERENCES Partie(id),
passer bool NOT NULL,
points numeric NOT NULL,
temps time,
PRIMARY KEY(joueur, enigme, partie)
);

CREATE TABLE Contenir(
partie int REFERENCES Partie(id),
enigme int REFERENCES Enigme(id),
indexEnigme numeric UNIQUE,
PRIMARY KEY(partie, enigme)
);

CREATE TABLE Participer(
    partie int REFERENCES Partie(id),
    joueur varchar(50) REFERENCES Joueur(email),
    PRIMARY KEY(partie, joueur)
);

CREATE TABLE Gerer(
    admin varchar(50) REFERENCES Admin(id),
    enigme int REFERENCES Enigme(id)
);
