-- ============================================================
--  Radio Quartz – Création des tables (préfixe : site_)
-- ============================================================


-- ------------------------------------------------------------
-- Animateurs / Équipe
-- ------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `site_animateurs` (
  `id`          INT UNSIGNED  NOT NULL AUTO_INCREMENT,
  `nom`         VARCHAR(100)  NOT NULL,
  `prenom`      VARCHAR(100)  NOT NULL,
  `pseudo`      VARCHAR(100)           DEFAULT NULL,
  `bio`         TEXT                   DEFAULT NULL,
  `photo`       VARCHAR(255)           DEFAULT NULL,  -- chemin relatif
  `email`       VARCHAR(150)           DEFAULT NULL,
  `ordre`       TINYINT UNSIGNED NOT NULL DEFAULT 0,
  `actif`       TINYINT(1)    NOT NULL DEFAULT 1,
  `created_at`  DATETIME      NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ------------------------------------------------------------
-- Émissions
-- ------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `site_emissions` (
  `id`                  INT UNSIGNED  NOT NULL AUTO_INCREMENT,
  `nom`                 VARCHAR(150)  NOT NULL,
  `description`         TEXT                   DEFAULT NULL,
  `logo`                VARCHAR(255)           DEFAULT NULL,
  `animateur_id`        INT UNSIGNED           DEFAULT NULL,
  `affichage_homepage`  TINYINT(1)    NOT NULL DEFAULT 0,  -- TRUE = affiché dans "en cours"
  `actif`               TINYINT(1)    NOT NULL DEFAULT 1,
  `ordre`               SMALLINT UNSIGNED NOT NULL DEFAULT 0,
  `created_at`          DATETIME      NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  FOREIGN KEY (`animateur_id`) REFERENCES `site_animateurs`(`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ------------------------------------------------------------
-- Grille horaire
-- ------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `site_grille` (
  `id`           INT UNSIGNED  NOT NULL AUTO_INCREMENT,
  `emission_id`  INT UNSIGNED  NOT NULL,
  `jour`         TINYINT UNSIGNED NOT NULL,  -- 0=Lundi … 6=Dimanche
  `heure_debut`  TIME          NOT NULL,
  `heure_fin`    TIME          NOT NULL,
  `recurrence`   ENUM('quotidien','hebdo') NOT NULL DEFAULT 'hebdo',
  PRIMARY KEY (`id`),
  FOREIGN KEY (`emission_id`) REFERENCES `site_emissions`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ------------------------------------------------------------
-- Dernières nouveautés musicales
-- ------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `site_lastnews` (
  `id`         INT UNSIGNED  NOT NULL AUTO_INCREMENT,
  `artiste`    VARCHAR(150)  NOT NULL,
  `titre`      VARCHAR(200)  NOT NULL,
  `pochette`   VARCHAR(255)           DEFAULT NULL,  -- URL ou chemin
  `video_url`  VARCHAR(500)           DEFAULT NULL,  -- lien YouTube du clip
  `actif`      TINYINT(1)    NOT NULL DEFAULT 1,
  `created_at` DATETIME      NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ------------------------------------------------------------
-- Podcasts
-- ------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `site_podcasts` (
  `id`           INT UNSIGNED  NOT NULL AUTO_INCREMENT,
  `titre`        VARCHAR(200)  NOT NULL,
  `description`  TEXT                   DEFAULT NULL,
  `emission_id`  INT UNSIGNED           DEFAULT NULL,
  `animateur_id` INT UNSIGNED           DEFAULT NULL,
  `fichier_url`  VARCHAR(500)           DEFAULT NULL,
  `couverture`   VARCHAR(255)           DEFAULT NULL,
  `duree`        INT UNSIGNED           DEFAULT NULL,  -- en secondes
  `date_podcast` DATE                   DEFAULT NULL,
  `actif`        TINYINT(1)    NOT NULL DEFAULT 1,
  `created_at`   DATETIME      NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  FOREIGN KEY (`emission_id`)  REFERENCES `site_emissions`(`id`)  ON DELETE SET NULL,
  FOREIGN KEY (`animateur_id`) REFERENCES `site_animateurs`(`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ------------------------------------------------------------
-- Agenda / Événements
-- ------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `site_agenda` (
  `id`           INT UNSIGNED  NOT NULL AUTO_INCREMENT,
  `titre`        VARCHAR(200)  NOT NULL,
  `description`  TEXT                   DEFAULT NULL,
  `lieu`         VARCHAR(200)           DEFAULT NULL,
  `date_debut`   DATETIME      NOT NULL,
  `date_fin`     DATETIME               DEFAULT NULL,
  `image`        VARCHAR(255)           DEFAULT NULL,
  `lien`         VARCHAR(500)           DEFAULT NULL,
  `actif`        TINYINT(1)    NOT NULL DEFAULT 1,
  `created_at`   DATETIME      NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ------------------------------------------------------------
-- Partenaires
-- ------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `site_partenaires` (
  `id`        INT UNSIGNED  NOT NULL AUTO_INCREMENT,
  `nom`       VARCHAR(150)  NOT NULL,
  `logo`      VARCHAR(255)           DEFAULT NULL,
  `site_web`  VARCHAR(500)           DEFAULT NULL,
  `ordre`     SMALLINT UNSIGNED NOT NULL DEFAULT 0,
  `actif`     TINYINT(1)    NOT NULL DEFAULT 1,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ------------------------------------------------------------
-- Publicité – annonceurs
-- ------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `site_publicite` (
  `id`           INT UNSIGNED  NOT NULL AUTO_INCREMENT,
  `titre`        VARCHAR(200)  NOT NULL,
  `contenu`      TEXT                   DEFAULT NULL,
  `contact_nom`  VARCHAR(150)           DEFAULT NULL,
  `contact_tel`  VARCHAR(30)            DEFAULT NULL,
  `contact_mail` VARCHAR(150)           DEFAULT NULL,
  `actif`        TINYINT(1)    NOT NULL DEFAULT 1,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ------------------------------------------------------------
-- Départements contact + emails
-- ------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `site_departements` (
  `id`     INT UNSIGNED  NOT NULL AUTO_INCREMENT,
  `nom`    VARCHAR(100)  NOT NULL,
  `email`  VARCHAR(150)  NOT NULL,
  `ordre`  TINYINT UNSIGNED NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT INTO `site_departements` (`nom`, `email`, `ordre`) VALUES
('Programmation', 'programmation@radioquartz.be', 1),
('Publicité',     'publicite@radioquartz.be',     2),
('Technique',     'technique@radioquartz.be',     3),
('Général',       'info@radioquartz.be',          4);

-- ------------------------------------------------------------
-- Messages de contact
-- ------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `site_contacts` (
  `id`              INT UNSIGNED  NOT NULL AUTO_INCREMENT,
  `departement_id`  INT UNSIGNED  NOT NULL,
  `nom`             VARCHAR(150)  NOT NULL,
  `email`           VARCHAR(150)  NOT NULL,
  `telephone`       VARCHAR(30)            DEFAULT NULL,
  `sujet`           VARCHAR(200)           DEFAULT NULL,
  `message`         TEXT          NOT NULL,
  `lu`              TINYINT(1)    NOT NULL DEFAULT 0,
  `created_at`      DATETIME      NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  FOREIGN KEY (`departement_id`) REFERENCES `site_departements`(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ------------------------------------------------------------
-- Contenu des pages (textes éditables via CMS)
-- ------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `site_pages` (
  `id`           INT UNSIGNED  NOT NULL AUTO_INCREMENT,
  `slug`         VARCHAR(100)  NOT NULL UNIQUE,
  `titre`        VARCHAR(200)  NOT NULL,
  `contenu`      LONGTEXT               DEFAULT NULL,
  `updated_at`   DATETIME      NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT INTO `site_pages` (`slug`, `titre`, `contenu`) VALUES
('accueil',    'Accueil',     '<p>Bienvenue sur Radio Quartz, la radio au Cœur des 3 provinces !</p>'),
('publicite',  'Publicité',   '<p>Vous souhaitez faire de la publicité sur Radio Quartz ? Contactez-nous !</p>');

-- ------------------------------------------------------------
-- Données de démonstration – Animateurs
-- ------------------------------------------------------------
INSERT INTO `site_animateurs` (`nom`, `prenom`, `pseudo`, `bio`, `photo`, `ordre`) VALUES
('Dupont',    'Marc',    'Marc D.',    'Animateur vedette du matin, Marc vous réveille chaque jour avec bonne humeur et les meilleures chansons depuis plus de 15 ans.', 'assets/images/animateurs/marc.jpg', 1),
('Lambert',   'Sophie',  'Sophie L.',  'Passionnée de musique des années 80 et 90, Sophie vous accompagne chaque midi avec sa sélection incontournable.', 'assets/images/animateurs/sophie.jpg', 2),
('Renard',    'Nicolas', 'Nico',       'Nicolas anime le drive avec une énergie communicative et une sélection de hits qui rythment votre retour à la maison.', 'assets/images/animateurs/nicolas.jpg', 3),
('Lecomte',   'Isabelle','Belle Isa',  'Voix douce du soir, Isabelle vous propose une programmation musicale apaisante pour terminer votre journée en beauté.', 'assets/images/animateurs/isabelle.jpg', 4),
('Charlier',  'Pierre',  'Pierre C.',  'Le spécialiste du week-end ! Pierre vous propose les meilleurs tubes du moment et vos dédicaces chaque samedi et dimanche.', 'assets/images/animateurs/pierre.jpg', 5);

-- ------------------------------------------------------------
-- Données de démonstration – Émissions
-- ------------------------------------------------------------
INSERT INTO `site_emissions` (`nom`, `description`, `logo`, `animateur_id`, `affichage_homepage`, `ordre`) VALUES
('Le Grand Réveil',       'Démarrez votre journée du bon pied avec Marc ! Infos, humour, musique et bonne humeur au programme chaque matin.',                     'assets/images/emissions/grand_reveil.jpg',   1, 1, 1),
('Le Midi Musicale',      'Sophie vous concocte chaque midi une heure de musique pure, de l\'actualité culturelle et des anecdotes insolites.',                    'assets/images/emissions/midi_musicale.jpg',  2, 1, 2),
('Le Drive',              'Nicolas vous accompagne dans les embouteillages avec le meilleur de la musique actuelle et rétro pour rendre le trajet agréable.',      'assets/images/emissions/le_drive.jpg',       3, 1, 3),
('Bonsoir les Quartz',    'La détente du soir signée Isabelle : une sélection musicale douce, des interviews et un coup de cœur chaque semaine.',                 'assets/images/emissions/bonsoir.jpg',        4, 1, 4),
('Weekend Non-Stop',      'Le week-end, Pierre prend les commandes et vous propose le meilleur de la musique pop, variété et rétro en continu.',                  'assets/images/emissions/weekend.jpg',        5, 1, 5);

-- ------------------------------------------------------------
-- Données de démonstration – Grille horaire
-- ------------------------------------------------------------
-- Lundi=0, Mardi=1, Mercredi=2, Jeudi=3, Vendredi=4, Samedi=5, Dimanche=6
INSERT INTO `site_grille` (`emission_id`, `jour`, `heure_debut`, `heure_fin`, `recurrence`) VALUES
(1, 0, '06:00:00', '09:00:00', 'hebdo'),
(1, 1, '06:00:00', '09:00:00', 'hebdo'),
(1, 2, '06:00:00', '09:00:00', 'hebdo'),
(1, 3, '06:00:00', '09:00:00', 'hebdo'),
(1, 4, '06:00:00', '09:00:00', 'hebdo'),
(2, 0, '12:00:00', '13:00:00', 'hebdo'),
(2, 1, '12:00:00', '13:00:00', 'hebdo'),
(2, 2, '12:00:00', '13:00:00', 'hebdo'),
(2, 3, '12:00:00', '13:00:00', 'hebdo'),
(2, 4, '12:00:00', '13:00:00', 'hebdo'),
(3, 0, '16:00:00', '19:00:00', 'hebdo'),
(3, 1, '16:00:00', '19:00:00', 'hebdo'),
(3, 2, '16:00:00', '19:00:00', 'hebdo'),
(3, 3, '16:00:00', '19:00:00', 'hebdo'),
(3, 4, '16:00:00', '19:00:00', 'hebdo'),
(4, 0, '20:00:00', '22:00:00', 'hebdo'),
(4, 1, '20:00:00', '22:00:00', 'hebdo'),
(4, 2, '20:00:00', '22:00:00', 'hebdo'),
(4, 3, '20:00:00', '22:00:00', 'hebdo'),
(4, 4, '20:00:00', '22:00:00', 'hebdo'),
(5, 5, '06:00:00', '22:00:00', 'hebdo'),
(5, 6, '06:00:00', '22:00:00', 'hebdo');

-- ------------------------------------------------------------
-- Données de démonstration – Nouveautés
-- ------------------------------------------------------------
INSERT INTO `site_lastnews` (`artiste`, `titre`, `pochette`, `video_url`) VALUES
('Céline Dion',    'L\'amour existe encore',   'https://via.placeholder.com/300x300/1a1a2e/ffffff?text=C%C3%A9line+Dion',  'https://www.youtube.com/watch?v=dQw4w9WgXcQ'),
('Jean-Jacques Goldman', 'Encore un matin',     'https://via.placeholder.com/300x300/16213e/ffffff?text=Goldman',            'https://www.youtube.com/watch?v=dQw4w9WgXcQ'),
('Stromae',        'Santé',                    'https://via.placeholder.com/300x300/0f3460/ffffff?text=Stromae',             'https://www.youtube.com/watch?v=dQw4w9WgXcQ'),
('Angèle',         'Bruxelles je t\'aime',     'https://via.placeholder.com/300x300/533483/ffffff?text=Ang%C3%A8le',         'https://www.youtube.com/watch?v=dQw4w9WgXcQ'),
('Francis Cabrel', 'Je l\'aime à mourir',      'https://via.placeholder.com/300x300/e94560/ffffff?text=Cabrel',              'https://www.youtube.com/watch?v=dQw4w9WgXcQ'),
('Louane',         'Avenir',                   'https://via.placeholder.com/300x300/2b2d42/ffffff?text=Louane',              'https://www.youtube.com/watch?v=dQw4w9WgXcQ'),
('Christophe Maé', 'On s\'attache',            'https://via.placeholder.com/300x300/8d99ae/ffffff?text=Ma%C3%A9',            'https://www.youtube.com/watch?v=dQw4w9WgXcQ'),
('M',              'Je dis aime',              'https://via.placeholder.com/300x300/ef233c/ffffff?text=M',                   'https://www.youtube.com/watch?v=dQw4w9WgXcQ'),
('Bigflo & Oli',   'La vie de rêve',           'https://via.placeholder.com/300x300/d90429/ffffff?text=Bigflo+%26+Oli',      'https://www.youtube.com/watch?v=dQw4w9WgXcQ'),
('Patrick Bruel',  'Place des grands hommes',  'https://via.placeholder.com/300x300/023e8a/ffffff?text=Bruel',               'https://www.youtube.com/watch?v=dQw4w9WgXcQ'),
('Calogero',       'Si seulement je pouvais lui manquer', 'https://via.placeholder.com/300x300/03045e/ffffff?text=Calogero', 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'),
('Véronique Sanson','Amoureuse',               'https://via.placeholder.com/300x300/48cae4/000000?text=Sanson',              'https://www.youtube.com/watch?v=dQw4w9WgXcQ');

-- ------------------------------------------------------------
-- Données de démonstration – Agenda
-- ------------------------------------------------------------
INSERT INTO `site_agenda` (`titre`, `description`, `lieu`, `date_debut`, `date_fin`) VALUES
('Concert de la Saint-Jean', 'Grande soirée musicale en plein air avec les artistes de Radio Quartz.', 'Grand-Place de Namur', '2026-06-21 19:00:00', '2026-06-21 23:00:00'),
('Festival des 3 Provinces',  'Deux jours de musique, animations et convivialité au cœur de la Wallonie.', 'Parc de la Citadelle, Liège', '2026-07-12 10:00:00', '2026-07-13 23:00:00'),
('Quartz en Fête',            'La journée portes ouvertes de Radio Quartz : visite des studios, rencontres avec les animateurs.', 'Studios Radio Quartz', '2026-09-05 10:00:00', '2026-09-05 18:00:00');

-- ------------------------------------------------------------
-- Données de démonstration – Partenaires
-- ------------------------------------------------------------
INSERT INTO `site_partenaires` (`nom`, `logo`, `site_web`, `ordre`) VALUES
('Province de Namur',   'assets/images/partenaires/namur.png',    'https://www.province.namur.be', 1),
('Province de Liège',   'assets/images/partenaires/liege.png',    'https://www.provincedeliege.be', 2),
('Province du Hainaut', 'assets/images/partenaires/hainaut.png',  'https://www.hainaut.be', 3);
