-- Schéma MySQL — Site vitrine formateur informatique
-- Alternative aux migrations Doctrine, à importer directement si besoin.

CREATE TABLE categorie (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nom VARCHAR(100) NOT NULL,
    slug VARCHAR(120) NOT NULL UNIQUE,
    description TEXT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE prestation (
    id INT AUTO_INCREMENT PRIMARY KEY,
    categorie_id INT NOT NULL,
    titre VARCHAR(150) NOT NULL,
    slug VARCHAR(170) NOT NULL UNIQUE,
    type VARCHAR(30) NOT NULL DEFAULT 'formation',
    description TEXT NOT NULL,
    contenu TEXT NULL,
    duree VARCHAR(50) NULL,
    niveau VARCHAR(50) NULL,
    image VARCHAR(255) NULL,
    actif TINYINT(1) NOT NULL DEFAULT 1,
    FOREIGN KEY (categorie_id) REFERENCES categorie(id) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Sessions/dates planifiées pour une prestation (gestion admin uniquement,
-- non exposée sur le site public ni via l'API)
CREATE TABLE session (
    id INT AUTO_INCREMENT PRIMARY KEY,
    prestation_id INT NOT NULL,
    date_debut DATETIME NOT NULL,
    date_fin DATETIME NULL,
    format VARCHAR(20) NOT NULL DEFAULT 'presentiel',
    lieu VARCHAR(150) NULL,
    places_disponibles INT NULL,
    statut VARCHAR(20) NOT NULL DEFAULT 'planifiee',
    notes TEXT NULL,
    FOREIGN KEY (prestation_id) REFERENCES prestation(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE article (
    id INT AUTO_INCREMENT PRIMARY KEY,
    titre VARCHAR(150) NOT NULL,
    slug VARCHAR(170) NOT NULL UNIQUE,
    extrait VARCHAR(300) NULL,
    contenu TEXT NOT NULL,
    image VARCHAR(255) NULL,
    date_publication DATETIME NOT NULL,
    auteur VARCHAR(100) NULL,
    publie TINYINT(1) NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE contact_message (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nom VARCHAR(100) NOT NULL,
    email VARCHAR(180) NOT NULL,
    sujet VARCHAR(150) NULL,
    message TEXT NOT NULL,
    date_envoi DATETIME NOT NULL,
    traite TINYINT(1) NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE user (
    id INT AUTO_INCREMENT PRIMARY KEY,
    email VARCHAR(180) NOT NULL UNIQUE,
    roles JSON NOT NULL,
    password VARCHAR(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Exemple de données de départ
INSERT INTO categorie (nom, slug, description) VALUES
    ('Développement', 'developpement', 'Formations développement web et logiciel'),
    ('Systèmes & Réseaux', 'systemes-reseaux', 'Administration système, réseaux, virtualisation'),
    ('Data', 'data', 'Data science, bases de données, analyse de données');
