CREATE TABLE IF NOT EXISTS sys_broadcast_message (
  id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
  title VARCHAR(100) NOT NULL COMMENT '广播标题',
  content VARCHAR(500) NOT NULL COMMENT '广播内容',
  tone VARCHAR(32) NOT NULL DEFAULT 'INFO' COMMENT '提示类型：INFO/SUCCESS/WARNING/DANGER',
  status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE' COMMENT '状态：ACTIVE/PAUSED',
  starts_at DATETIME NULL COMMENT '开始展示时间',
  ends_at DATETIME NULL COMMENT '结束展示时间',
  sort_no INT NOT NULL DEFAULT 0 COMMENT '排序号，越大越优先',
  created_by BIGINT NULL COMMENT '创建用户ID',
  created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  KEY idx_broadcast_status_time (status, starts_at, ends_at),
  CONSTRAINT fk_broadcast_created_by FOREIGN KEY (created_by) REFERENCES sys_user(id)
) ENGINE=InnoDB COMMENT='系统广播消息';

CREATE TABLE IF NOT EXISTS sys_ai_assistant_config (
  id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
  assistant_name VARCHAR(100) NOT NULL DEFAULT '嘉恒工艺助手' COMMENT '助手名称',
  provider_name VARCHAR(100) NULL COMMENT 'LLM供应商名称',
  api_base_url VARCHAR(255) NULL COMMENT 'LLM API基础地址',
  api_key VARCHAR(512) NULL COMMENT 'LLM API密钥',
  model_name VARCHAR(100) NULL COMMENT '模型名称',
  temperature DECIMAL(6,3) NOT NULL DEFAULT 0.300 COMMENT '温度参数',
  system_prompt TEXT NULL COMMENT '新建对话系统提示词',
  enabled TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否启用真实LLM',
  created_by BIGINT NULL COMMENT '创建用户ID',
  updated_by BIGINT NULL COMMENT '更新用户ID',
  created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  CONSTRAINT fk_ai_config_created_by FOREIGN KEY (created_by) REFERENCES sys_user(id),
  CONSTRAINT fk_ai_config_updated_by FOREIGN KEY (updated_by) REFERENCES sys_user(id)
) ENGINE=InnoDB COMMENT='AI助手配置';

INSERT INTO sys_permission (permission_code, permission_name, module_code, action_code, status)
SELECT 'MENU_SYSTEM_EXTENSION', '系统拓展菜单', 'SYSTEM_EXTENSION', 'VIEW', 'ACTIVE'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_permission WHERE permission_code = 'MENU_SYSTEM_EXTENSION');

INSERT INTO sys_role_permission (role_id, permission_id)
SELECT r.id, p.id
FROM sys_role r
JOIN sys_permission p ON p.permission_code = 'MENU_SYSTEM_EXTENSION'
LEFT JOIN sys_role_permission existing ON existing.role_id = r.id AND existing.permission_id = p.id
WHERE r.role_code = 'ADMIN'
  AND existing.id IS NULL;

INSERT INTO sys_broadcast_message (title, content, tone, status, sort_no)
SELECT '系统提示', '系统拓展模块已启用，后续通知会在右上角喇叭横幅展示。', 'INFO', 'ACTIVE', 10
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_broadcast_message);
