-- =====================================================
--  AI 智能审核（合同 / 简历）
--  - 使用小米 MiMo 多模态大模型（mimo-v2.5）
--  - 合同：站在“我方”立场审查，找出不利条款 + 利好我方的修改建议
--  - 简历：评估候选人与目标岗位匹配度
--  本脚本可重复执行（幂等）。
--  注意：sys_menu 主键为雪花ID（非自增），必须显式指定。
-- =====================================================

-- ---------------- 审核记录表 ----------------
CREATE TABLE IF NOT EXISTS `oa_ai_review` (
  `id`            bigint(20)     NOT NULL AUTO_INCREMENT   COMMENT '主键ID',
  `review_type`   varchar(20)    NOT NULL                  COMMENT '类型 contract合同 / resume简历',
  `file_name`     varchar(255)   DEFAULT NULL              COMMENT '原始文件名',
  `oss_id`        bigint(20)     DEFAULT NULL              COMMENT 'OSS文件ID（原件留存）',
  `file_url`      varchar(500)   DEFAULT NULL              COMMENT 'OSS文件地址',
  `position`      varchar(255)   DEFAULT NULL              COMMENT '简历目标岗位',
  `requirements`  varchar(1000)  DEFAULT NULL              COMMENT '本次审核的附加要求/审核重点',
  `match_score`   int(11)        DEFAULT NULL              COMMENT '简历匹配度评分 0-100',
  `risk_level`    varchar(10)    DEFAULT NULL              COMMENT '合同风险评级 高/中/低',
  `summary`       varchar(500)   DEFAULT NULL              COMMENT 'AI审核结论摘要（列表展示）',
  `result_md`     longtext                                 COMMENT 'AI 审核结果（Markdown）',
  `model`         varchar(50)    DEFAULT NULL              COMMENT '使用的模型',
  `tokens`        int(11)        DEFAULT NULL              COMMENT '消耗 token',
  `create_by`     varchar(64)    DEFAULT NULL,
  `create_time`   datetime       DEFAULT CURRENT_TIMESTAMP,
  `update_by`     varchar(64)    DEFAULT NULL,
  `update_time`   datetime       DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `del_flag`      char(1)        DEFAULT '0'               COMMENT '删除标志：0正常 2删除（mybatis-plus logicDeleteValue=2）',
  PRIMARY KEY (`id`),
  KEY `idx_type` (`review_type`),
  KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI 审核记录（合同/简历）';

-- 若表已存在（旧版本），补加列（MySQL 不支持 ADD COLUMN IF NOT EXISTS，已存在则报错可忽略）：
-- ALTER TABLE `oa_ai_review` ADD COLUMN `summary` varchar(500) DEFAULT NULL COMMENT 'AI审核结论摘要（列表展示）' AFTER `risk_level`;
-- ALTER TABLE `oa_ai_review` ADD COLUMN `requirements` varchar(1000) DEFAULT NULL COMMENT '本次审核的附加要求/审核重点' AFTER `position`;

-- ---------------- 字典：可选审核重点（合同 / 简历），用户可在字典管理增删 ----------------
INSERT IGNORE INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
VALUES (2063920000000000001, 'AI合同审核项', 'oa_ai_review_item_contract', '0', 'admin', NOW(), 'AI合同审核可选审核重点'),
       (2063920000000000002, 'AI简历审核项', 'oa_ai_review_item_resume',   '0', 'admin', NOW(), 'AI简历审核可选审核重点');

INSERT IGNORE INTO `sys_dict_data`
  (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES
  (2063920000000000010, 1, '付款条款与节点',   '付款条款与节点',   'oa_ai_review_item_contract', '', 'default', 'N', '0', 'admin', NOW(), ''),
  (2063920000000000011, 2, '违约责任与赔偿',   '违约责任与赔偿',   'oa_ai_review_item_contract', '', 'default', 'N', '0', 'admin', NOW(), ''),
  (2063920000000000012, 3, '知识产权归属',     '知识产权归属',     'oa_ai_review_item_contract', '', 'default', 'N', '0', 'admin', NOW(), ''),
  (2063920000000000013, 4, '保密义务',         '保密义务',         'oa_ai_review_item_contract', '', 'default', 'N', '0', 'admin', NOW(), ''),
  (2063920000000000014, 5, '交付与验收标准',   '交付与验收标准',   'oa_ai_review_item_contract', '', 'default', 'N', '0', 'admin', NOW(), ''),
  (2063920000000000015, 6, '质保与售后',       '质保与售后',       'oa_ai_review_item_contract', '', 'default', 'N', '0', 'admin', NOW(), ''),
  (2063920000000000016, 7, '价格与税费',       '价格与税费',       'oa_ai_review_item_contract', '', 'default', 'N', '0', 'admin', NOW(), ''),
  (2063920000000000017, 8, '争议解决与管辖',   '争议解决与管辖',   'oa_ai_review_item_contract', '', 'default', 'N', '0', 'admin', NOW(), ''),
  (2063920000000000018, 9, '不可抗力',         '不可抗力',         'oa_ai_review_item_contract', '', 'default', 'N', '0', 'admin', NOW(), ''),
  (2063920000000000019, 10,'合同解除条件',     '合同解除条件',     'oa_ai_review_item_contract', '', 'default', 'N', '0', 'admin', NOW(), ''),
  (2063920000000000040, 1, '技术能力匹配',     '技术能力匹配',     'oa_ai_review_item_resume', '', 'default', 'N', '0', 'admin', NOW(), ''),
  (2063920000000000041, 2, '项目经验深度',     '项目经验深度',     'oa_ai_review_item_resume', '', 'default', 'N', '0', 'admin', NOW(), ''),
  (2063920000000000042, 3, '工作稳定性',       '工作稳定性',       'oa_ai_review_item_resume', '', 'default', 'N', '0', 'admin', NOW(), ''),
  (2063920000000000043, 4, '团队协作与管理',   '团队协作与管理',   'oa_ai_review_item_resume', '', 'default', 'N', '0', 'admin', NOW(), ''),
  (2063920000000000044, 5, '学历与专业背景',   '学历与专业背景',   'oa_ai_review_item_resume', '', 'default', 'N', '0', 'admin', NOW(), ''),
  (2063920000000000045, 6, '行业相关经验',     '行业相关经验',     'oa_ai_review_item_resume', '', 'default', 'N', '0', 'admin', NOW(), ''),
  (2063920000000000046, 7, '薪资期望匹配',     '薪资期望匹配',     'oa_ai_review_item_resume', '', 'default', 'N', '0', 'admin', NOW(), ''),
  (2063920000000000047, 8, '成长潜力',         '成长潜力',         'oa_ai_review_item_resume', '', 'default', 'N', '0', 'admin', NOW(), ''),
  (2063920000000000048, 9, '离职风险',         '离职风险',         'oa_ai_review_item_resume', '', 'default', 'N', '0', 'admin', NOW(), ''),
  (2063920000000000049, 10,'外语能力',         '外语能力',         'oa_ai_review_item_resume', '', 'default', 'N', '0', 'admin', NOW(), '');

-- ---------------- 菜单：信息 > AI审核 ----------------
-- 父菜单 1774989374680858626 = 「信息」
INSERT IGNORE INTO `sys_menu`
  (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`)
VALUES
  (2063910000000000001, 'AI审核', 1774989374680858626, 4,
   'aiReview', 'oa/aiReview/index', 'C', '0', '0',
   NULL, 'eye-open', 'admin', NOW());

-- ---------------- 角色授权（与「信息」下兄弟菜单一致的角色集） ----------------
INSERT IGNORE INTO `sys_role_menu` (`role_id`, `menu_id`)
VALUES
  (1743186990678077442, 2063910000000000001),  -- 总经理
  (1743204526291349506, 2063910000000000001),  -- 技术总监
  (1743205028123045890, 2063910000000000001),  -- 信息化部
  (1852970465740505090, 2063910000000000001),  -- 普通员工
  (1859257980152692738, 2063910000000000001),  -- 职工
  (1859548445766717441, 2063910000000000001),  -- 后勤
  (1893987128812761089, 2063910000000000001),  -- 新员工临时身份
  (1914212623781187585, 2063910000000000001),  -- 技术总工
  (1914213026883162113, 2063910000000000001),  -- 设计主任
  (1925062159919448065, 2063910000000000001);  -- 外贸专责

-- ---------------- 校验 ----------------
SELECT menu_id, menu_name, path, component, icon FROM sys_menu WHERE menu_id = 2063910000000000001;
