-- ============================================================
-- Blog Alexandra - Création des tables (préfixe pa_)
-- ============================================================

-- Table utilisateur (admin du blog)
CREATE TABLE IF NOT EXISTS pa_user (
    userID INT AUTO_INCREMENT PRIMARY KEY,
    login VARCHAR(50) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    createdAt DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Table article
CREATE TABLE IF NOT EXISTS pa_article (
    articleID INT AUTO_INCREMENT PRIMARY KEY,
    userID INT NOT NULL,
    datePublication DATE NOT NULL,
    titre VARCHAR(255) NOT NULL,
    resume TEXT,
    statutAffichage ENUM('publie', 'masque') DEFAULT 'masque',
    createdAt DATETIME DEFAULT CURRENT_TIMESTAMP,
    updatedAt DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (userID) REFERENCES pa_user(userID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Table paragraphe
CREATE TABLE IF NOT EXISTS pa_paragraphe (
    paragrapheID INT AUTO_INCREMENT PRIMARY KEY,
    articleID INT NOT NULL,
    texte TEXT,
    photo VARCHAR(255) DEFAULT NULL,
    photoLegende VARCHAR(255) DEFAULT NULL,
    ordre INT DEFAULT 1,
    FOREIGN KEY (articleID) REFERENCES pa_article(articleID) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Table catégorie
CREATE TABLE IF NOT EXISTS pa_categorie (
    categorieID INT AUTO_INCREMENT PRIMARY KEY,
    nom VARCHAR(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Table de liaison catégorie <-> article
CREATE TABLE IF NOT EXISTS pa_lien_cat_art (
    categorieID INT NOT NULL,
    articleID INT NOT NULL,
    PRIMARY KEY (categorieID, articleID),
    FOREIGN KEY (categorieID) REFERENCES pa_categorie(categorieID),
    FOREIGN KEY (articleID) REFERENCES pa_article(articleID) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
