-- ============================================================
-- 事件通知（邮件 + 企业微信）数据升级包
-- ============================================================
-- 作用：
--   1) 创建 psi_events 紧急事件表（Notify 服务使用，首次触发也会自动建表，这里提前建好）
--   2) 写入 notify_* 通知设置（INSERT IGNORE，重复执行不会重复插入）
-- 说明：
--   本文件专供后台「数据库升级」面板（/admin/upgrade）使用；
--   若已通过「数据升级」按钮执行过，这里仍为幂等安全。
-- ============================================================

-- -------------------------------------------
-- 1. 紧急事件表（站内提醒 + 邮件/企业微信推送记录）
-- -------------------------------------------
CREATE TABLE IF NOT EXISTS `psi_events` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `sys` VARCHAR(20) NOT NULL DEFAULT 'psi',
  `type` VARCHAR(40) NOT NULL DEFAULT '',
  `level` VARCHAR(20) NOT NULL DEFAULT 'urgent',
  `title` VARCHAR(255) NOT NULL DEFAULT '',
  `body` TEXT,
  `url` VARCHAR(255) NOT NULL DEFAULT '',
  `ref_no` VARCHAR(64) NOT NULL DEFAULT '',
  `recipients` TEXT,
  `channels` VARCHAR(255) NOT NULL DEFAULT '["inapp"]',
  `read_by` TEXT,
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- -------------------------------------------
-- 2. 通知设置（缺则插入）
-- -------------------------------------------
INSERT IGNORE INTO `settings` (`skey`,`sval`,`sgroup`) VALUES
  ('notify_enabled','0','notify'),
  ('notify_email_enabled','0','notify'),
  ('notify_email_smtp_host','','notify'),
  ('notify_email_smtp_port','465','notify'),
  ('notify_email_smtp_user','','notify'),
  ('notify_email_smtp_pass','','notify'),
  ('notify_email_from','','notify'),
  ('notify_email_to','','notify'),
  ('notify_wechat_enabled','0','notify'),
  ('notify_wechat_webhook','','notify'),
  ('notify_wechat_mention','','notify'),
  ('notify_lowstock_enabled','1','notify'),
  ('notify_lowstock_threshold','20','notify');
