CREATE TABLE IF NOT EXISTS `block_monitor_settings` (
  `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  `prepared_alert_enabled` TINYINT(1) NOT NULL DEFAULT 1,
  `prepared_minutes_before` SMALLINT UNSIGNED NOT NULL DEFAULT 15,
  `missed_alert_enabled` TINYINT(1) NOT NULL DEFAULT 0,
  `missed_minutes_after` SMALLINT UNSIGNED NOT NULL DEFAULT 10,
  `email_enabled` TINYINT(1) NOT NULL DEFAULT 0,
  `email_recipients` TEXT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `block_monitor_settings`
  (`prepared_alert_enabled`, `prepared_minutes_before`, `missed_alert_enabled`, `missed_minutes_after`, `email_enabled`, `created_at`, `updated_at`)
SELECT 1, 15, 0, 10, 0, NOW(), NOW()
WHERE NOT EXISTS (SELECT 1 FROM `block_monitor_settings`);

CREATE TABLE IF NOT EXISTS `block_alerts` (
  `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  `type` VARCHAR(40) NOT NULL,
  `play_date` DATE NOT NULL,
  `block_template_id` BIGINT UNSIGNED NOT NULL,
  `severity` VARCHAR(20) NOT NULL DEFAULT 'warning',
  `title` VARCHAR(255) NOT NULL,
  `message` TEXT NOT NULL,
  `detected_at` TIMESTAMP NOT NULL,
  `resolved_at` TIMESTAMP NULL DEFAULT NULL,
  `read_at` TIMESTAMP NULL DEFAULT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `block_alerts_type_date_block_unique` (`type`, `play_date`, `block_template_id`),
  KEY `block_alerts_type_index` (`type`),
  KEY `block_alerts_play_date_index` (`play_date`),
  KEY `block_alerts_resolved_at_index` (`resolved_at`),
  KEY `block_alerts_read_at_index` (`read_at`),
  CONSTRAINT `block_alerts_block_template_id_foreign`
    FOREIGN KEY (`block_template_id`) REFERENCES `broadcast_block_templates` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
