-- create a table
CREATE TABLE ALUMNOS (
  id_alumno INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
  nombre VARCHAR(255) NOT NULL,
  apellido1 VARCHAR(255),
  apellido2 VARCHAR(255),
  email VARCHAR(255) NOT NULL,
  password VARCHAR(255) NOT NULL
);

CREATE TABLE PROFESORES (
  id_profesor INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
  nombre VARCHAR(255) NOT NULL,
  apellido1 VARCHAR(255),
  apellido2 VARCHAR(255),
  email VARCHAR(255) NOT NULL,
  password VARCHAR(255) NOT NULL
);

CREATE TABLE CUESTIONARIOS (
  id_cuestionario INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
  id_profesor INT NOT NULL,
  titulo VARCHAR(255) NOT NULL,
  descripcion VARCHAR(255),
  CONSTRAINT fk_profesor FOREIGN KEY(id_profesor) REFERENCES PROFESORES(id_profesor)
);

CREATE TABLE PREGUNTAS (
  id_pregunta INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
  id_cuestionario INT NOT NULL,
  enunciado VARCHAR(255) NOT NULL,
  CONSTRAINT fk_cuestionario FOREIGN KEY(id_cuestionario) REFERENCES CUESTIONARIOS(id_cuestionario)
);

CREATE TABLE RESPUESTAS (
  id_respuesta INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
  id_pregunta INT NOT NULL,
  respuesta VARCHAR(255) NOT NULL,
  es_verdadera BOOLEAN NOT NULL,
  CONSTRAINT fk_pregunta FOREIGN KEY(id_pregunta) REFERENCES PREGUNTAS(id_pregunta)
);

CREATE TABLE JUEGA (
  id_intento INT PRIMARY KEY,
  id_alumno INT NOT NULL,
  id_cuestionario INT NOT NULL,
  num_correctas INT NOT NULL,
  CONSTRAINT fk_alumno FOREIGN KEY(id_alumno) REFERENCES ALUMNOS(id_alumno),
  CONSTRAINT id_cuestionario FOREIGN KEY(id_cuestionario) REFERENCES CUESTIONARIOS(id_cuestionario)
);

-- add test data
INSERT INTO ALUMNOS (nombre, apellido1, apellido2, email, password)
  VALUES ('Raúl', 'Bulgariu', 'Suciu', 'raul@bulgariu.xyz', 'ef92b778bafe771e89245b89ecbc08a44a4e166c06659911881f383d4473e94f'),
  ('Pepito', 'Prueba', 'de Ejemplo', 'pepito@gmail.com', 'ef92b778bafe771e89245b89ecbc08a44a4e166c06659911881f383d4473e94f');

INSERT INTO PROFESORES (nombre, apellido1, apellido2, email, password)
  VALUES ('Jacinto', 'Sánchez', 'Villa', 'j.sanchezvilla@gmail.com', 'ef92b778bafe771e89245b89ecbc08a44a4e166c06659911881f383d4473e94f');

INSERT INTO PROFESORES (nombre, apellido1, email, password)
  VALUES ('David', 'Balaguer', 'david@gmail.com', 'ef92b778bafe771e89245b89ecbc08a44a4e166c06659911881f383d4473e94f');

INSERT INTO CUESTIONARIOS (id_profesor, titulo, descripcion)
  VALUES (1, 'Examen SOM', 'Cuestionario con preguntas sobre SOM'),
  (2, 'Examen OFI', 'Cuestionario con preguntas sobre OFI');

INSERT INTO PREGUNTAS (id_cuestionario, enunciado)
  VALUES (1, 'Qué comando muestra los archivos del directorio actual?'),
  (1, 'Como podemos editar un archivo de texto?'),
  (2, 'Es GIMP un editor de texto?');

INSERT INTO RESPUESTAS (id_pregunta, respuesta, es_verdadera)
  VALUES (1, 'whoami', false),
  (1, 'ls', true),
  (1, 'chmod', false),
  (1, 'sudo', false),
  (2, 'nano', true),
  (2, 'cat', false),
  (2, 'vim', true),
  (2, 'less', false),
  (3, 'Verdadero', false),
  (3, 'Falso', true);

