DROP DATABASE IF EXISTS entretiens;
CREATE DATABASE entretiens CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE entretiens;

-- -----------------
-- Formulaires
-- -----------------
CREATE TABLE formulaires (
    id INT AUTO_INCREMENT PRIMARY KEY,
    titre VARCHAR(255) NOT NULL,
    annee YEAR NOT NULL,
    date_creation DATETIME DEFAULT CURRENT_TIMESTAMP
);

-- -----------------
-- Questions
-- -----------------
CREATE TABLE questions (
    id INT AUTO_INCREMENT PRIMARY KEY,
    formulaire_id INT NOT NULL,
    intitule TEXT NOT NULL,
    type ENUM('texte','etoiles') DEFAULT 'texte',
    ordre INT DEFAULT 0,
    FOREIGN KEY (formulaire_id) REFERENCES formulaires(id) ON DELETE CASCADE
);

-- -----------------
-- Fiches d’entretien
-- -----------------
CREATE TABLE fiche_entretien (
    id INT AUTO_INCREMENT PRIMARY KEY,
    formulaire_id INT NOT NULL,
    employe_id INT NOT NULL,
    manager_id INT NOT NULL,
    date_creation DATETIME DEFAULT CURRENT_TIMESTAMP,
    date_modification DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    commentaire TEXT,
    FOREIGN KEY (formulaire_id) REFERENCES formulaires(id),
    FOREIGN KEY (employe_id) REFERENCES users(id),
    FOREIGN KEY (manager_id) REFERENCES users(id)
);

-- -----------------
-- Réponses
-- -----------------
CREATE TABLE reponses (
    id INT AUTO_INCREMENT PRIMARY KEY,
    fiche_id INT NOT NULL,
    question_id INT NOT NULL,
    reponse_texte TEXT,
    reponse_note INT,
    UNIQUE KEY(fiche_id, question_id),
    FOREIGN KEY (fiche_id) REFERENCES fiche_entretien(id) ON DELETE CASCADE,
    FOREIGN KEY (question_id) REFERENCES questions(id) ON DELETE CASCADE
);

-- -----------------
-- Formulaire exemple
-- -----------------
INSERT INTO formulaires (titre, annee) VALUES ('Entretien Annuel 2025', 2025);

INSERT INTO questions (formulaire_id,intitule,type,ordre) VALUES
(1,'Quels sont les objectifs atteints cette année ?','texte',1),
(1,'Comment évaluez-vous vos compétences techniques ?','etoiles',2),
(1,'Quels sont vos axes de progression ?','texte',3);
