-- =============================================
-- Table des candidatures - Recrutement OMAG
-- =============================================

CREATE TABLE IF NOT EXISTS candidatures (
    id INT AUTO_INCREMENT PRIMARY KEY,

    -- Informations du candidat
    nom VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL,
    departement ENUM('commercial', 'recherche_dev', 'support') NOT NULL,
    message TEXT NOT NULL,

    -- Fichier CV
    cv_nom_fichier VARCHAR(255) NOT NULL,
    cv_chemin VARCHAR(500) NOT NULL,
    cv_type VARCHAR(100),
    cv_taille INT,

    -- Gestion administrative
    statut ENUM('nouvelle', 'en_cours', 'entretien', 'acceptee', 'refusee', 'archivee') DEFAULT 'nouvelle',
    etoiles TINYINT DEFAULT 0 CHECK (etoiles >= 0 AND etoiles <= 5),
    commentaire TEXT,

    -- Métadonnées
    date_candidature DATETIME DEFAULT CURRENT_TIMESTAMP,
    date_modification DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

    -- Index
    INDEX idx_departement (departement),
    INDEX idx_statut (statut),
    INDEX idx_etoiles (etoiles),
    INDEX idx_date (date_candidature)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- =============================================
-- Exemples de requêtes utiles
-- =============================================

-- Toutes les candidatures par département
-- SELECT * FROM candidatures WHERE departement = 'commercial' ORDER BY date_candidature DESC;

-- Candidatures avec 4+ étoiles
-- SELECT * FROM candidatures WHERE etoiles >= 4 ORDER BY etoiles DESC;

-- Candidatures en cours de traitement
-- SELECT * FROM candidatures WHERE statut IN ('nouvelle', 'en_cours', 'entretien') ORDER BY date_candidature DESC;

-- Statistiques par département
-- SELECT departement, COUNT(*) as total, AVG(etoiles) as moyenne_etoiles FROM candidatures GROUP BY departement;
