-- Script SQL pour créer la base de données Sky Organisation DJ

-- Créer la base de données
CREATE DATABASE IF NOT EXISTS sky_organisation_dj_test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE sky_organisation_dj_test;

-- Table pour les administrateurs
CREATE TABLE admin (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) UNIQUE NOT NULL,
    password_hash VARCHAR(64) NOT NULL, -- SHA256 = 64 caractères
    email VARCHAR(100) UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    last_login TIMESTAMP NULL,
    is_active BOOLEAN DEFAULT TRUE
);

-- Table pour le contenu modifiable des pages
CREATE TABLE contenu_pages (
    id INT AUTO_INCREMENT PRIMARY KEY,
    page VARCHAR(50) NOT NULL, -- 'accueil', 'prestations', 'evenements'
    section VARCHAR(100) NOT NULL, -- nom de la section
    titre TEXT,
    contenu LONGTEXT,
    image_url VARCHAR(255),
    ordre INT DEFAULT 0,
    is_active BOOLEAN DEFAULT TRUE,
    date_modification TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    UNIQUE KEY unique_page_section (page, section)
);

-- Table pour les événements à venir
CREATE TABLE evenements (
    id INT AUTO_INCREMENT PRIMARY KEY,
    titre VARCHAR(200) NOT NULL,
    description LONGTEXT,
    date_evenement DATETIME NOT NULL,
    lieu VARCHAR(200),
    type_evenement VARCHAR(100),
    prix DECIMAL(8,2),
    places_disponibles INT,
    statut ENUM('actif', 'annule', 'complet') DEFAULT 'actif',
    image_url VARCHAR(255),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

-- Table pour les prestations
CREATE TABLE prestations (
    id INT AUTO_INCREMENT PRIMARY KEY,
    titre VARCHAR(200) NOT NULL,
    description LONGTEXT,
    categorie VARCHAR(100), -- DJ, Sonorisation, Lumière, etc.
    prix_debut DECIMAL(8,2),
    duree VARCHAR(50), -- 2h, 4h, soirée complète, etc.
    image_url VARCHAR(255),
    ordre INT DEFAULT 0,
    is_active BOOLEAN DEFAULT TRUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

-- Insérer l'admin par défaut (root/root)
INSERT INTO admin (username, password_hash, email) VALUES
('root', '4813494d137e1631bba301d5acab6e7bb7aa74ce1185d456565ef51d737677b2', 'admin@sky-organisation-dj.com');

-- Insérer du contenu par défaut pour l'accueil
INSERT INTO contenu_pages (page, section, titre, contenu) VALUES
('accueil', 'hero_titre', 'Sky Organisation DJ', 'Votre partenaire pour des événements inoubliables'),
('accueil', 'hero_sous_titre', '', 'Nous transformons vos moments spéciaux en souvenirs magiques avec notre expertise en DJing et organisation événementielle.'),
('accueil', 'presentation_titre', 'À Propos de Sky Organisation DJ', ''),
('accueil', 'presentation_contenu', '', 'Depuis plus de 10 ans, Sky Organisation DJ accompagne particuliers et entreprises dans l\'organisation de leurs événements. Notre équipe de professionnels passionnés met tout en œuvre pour créer des ambiances uniques et mémorables.');

-- Insérer des prestations par défaut
INSERT INTO prestations (titre, description, categorie, prix_debut, duree, ordre) VALUES
('DJ Professionnel', 'Animation musicale complète pour votre événement avec une sélection adaptée à votre public.', 'DJ', 500.00, '4h', 1),
('Pack Sonorisation', 'Matériel audio professionnel de haute qualité pour une acoustique parfaite.', 'Sonorisation', 300.00, 'soirée', 2),
('Éclairage LED', 'Installation d\'éclairage dynamique pour créer l\'ambiance parfaite.', 'Lumière', 250.00, 'soirée', 3),
('Organisation Complète', 'Service clé en main : DJ + sono + lumière + coordination.', 'Pack Complet', 1200.00, 'soirée', 4);

-- Insérer des événements d'exemple
INSERT INTO evenements (titre, description, date_evenement, lieu, type_evenement, prix) VALUES
('Mariage Dupont-Martin', 'Cérémonie et réception avec DJ professionnel', '2024-06-15 16:00:00', 'Salle des Fêtes de Paris', 'mariage', 1500.00),
('Anniversaire Entreprise TechCorp', 'Soirée d\'anniversaire pour les 10 ans de TechCorp', '2024-03-20 19:00:00', 'Hôtel Hilton', 'soiree_entreprise', 2500.00),
('Concert Privé - Soirée Jazz', 'Concert privé avec DJ spécialisé jazz et musique lounge', '2024-04-05 20:00:00', 'Club Privé', 'concert', 800.00);

-- Table pour les paramètres de thème
CREATE TABLE theme_settings (
    id INT AUTO_INCREMENT PRIMARY KEY,
    setting_key VARCHAR(100) UNIQUE NOT NULL,
    setting_value LONGTEXT,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

-- Table pour les informations de contact
CREATE TABLE contact_info (
    id INT AUTO_INCREMENT PRIMARY KEY,
    contact_key VARCHAR(50) UNIQUE NOT NULL,
    contact_value TEXT,
    contact_label VARCHAR(100),
    contact_type ENUM('text', 'email', 'phone', 'address', 'social') DEFAULT 'text',
    is_active BOOLEAN DEFAULT TRUE,
    ordre INT DEFAULT 0,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

-- Insérer les paramètres de thème par défaut
INSERT INTO theme_settings (setting_key, setting_value) VALUES
('header_gradient', '{"direction":"135deg","color1":"#6f42c1","color2":"#e83e8c"}'),
('body_text_color', '#1a1a1a'),
('secondary_text_color', '#666'),
('h3_color', '#6f42c1'),
('about_border_color', '#6f42c1'),
('button_gradient', '{"direction":"135deg","color1":"#6f42c1","color2":"#e83e8c"}'),
('service_icon_color', '#6f42c1'),
('service_price_color', '#e83e8c'),
('service_title_color', '#333'),
('service_text_color', '#666'),
('event_image_gradient', '{"direction":"135deg","color1":"#6f42c1","color2":"#e83e8c"}'),
('event_date_color', '#6f42c1'),
('event_price_color', '#e83e8c'),
('event_title_color', '#333'),
('event_text_color', '#666'),
('contact_bg_color', '#f8f9fa'),
('contact_title_color', '#1a1a1a'),
('contact_text_color', '#666'),
('contact_info_color', '#333'),
('footer_h3_color', '#6f42c1'),
('footer_text_color', '#ccc'),
('footer_link_hover_color', '#6f42c1'),
('loading_color', '#6f42c1');

-- Insérer les informations de contact par défaut
INSERT INTO contact_info (contact_key, contact_value, contact_label, contact_type, ordre) VALUES
('phone', '01 23 45 67 89', 'Téléphone', 'phone', 1),
('email', 'contact@sky-organisation-dj.com', 'Email', 'email', 2),
('address', '123 Rue de la Musique, 75000 Paris', 'Adresse', 'address', 3),
('facebook', 'https://facebook.com/skyorganisationdj', 'Facebook', 'social', 4),
('instagram', 'https://instagram.com/skyorganisationdj', 'Instagram', 'social', 5);

-- Index pour optimiser les performances
CREATE INDEX idx_admin_username ON admin(username);
CREATE INDEX idx_contenu_pages_page ON contenu_pages(page);
CREATE INDEX idx_evenements_date ON evenements(date_evenement);
CREATE INDEX idx_evenements_statut ON evenements(statut);
CREATE INDEX idx_prestations_categorie ON prestations(categorie);
CREATE INDEX idx_prestations_active ON prestations(is_active);
CREATE INDEX idx_theme_settings_key ON theme_settings(setting_key);
CREATE INDEX idx_contact_info_key ON contact_info(contact_key);
CREATE INDEX idx_contact_info_active ON contact_info(is_active);