-- 自动到期检测配置表
CREATE TABLE `auto_expiration_config` (
  `config_id` varchar(64) NOT NULL COMMENT '配置ID',
  `table_name` varchar(100) NOT NULL COMMENT '表名',
  `table_desc` varchar(200) DEFAULT NULL COMMENT '表描述',
  `primary_key_field` varchar(100) NOT NULL COMMENT '主键字段',
  `expire_date_field` varchar(100) NOT NULL COMMENT '到期时间字段',
  `user_id_field` varchar(100) DEFAULT NULL COMMENT '关联用户字段',
  `user_name_field` varchar(100) DEFAULT NULL COMMENT '用户姓名字段',
  `business_name_field` varchar(100) DEFAULT NULL COMMENT '业务名称字段',
  `remind_days` int(11) DEFAULT 30 COMMENT '提前提醒天数',
  `enabled` varchar(1) DEFAULT '1' COMMENT '是否启用（0-禁用，1-启用）',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
  `update_by` varchar(64) DEFAULT NULL COMMENT '更新人',
  `del_flag` varchar(1) DEFAULT '0' COMMENT '删除标志（0代表存在，1代表删除）',
  PRIMARY KEY (`config_id`),
  UNIQUE KEY `uk_table_name` (`table_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='自动到期检测配置表';

-- 到期检测结果表
CREATE TABLE `expiration_result` (
  `result_id` varchar(64) NOT NULL COMMENT '结果ID',
  `config_id` varchar(64) DEFAULT NULL COMMENT '配置ID',
  `table_name` varchar(100) NOT NULL COMMENT '表名',
  `business_id` varchar(64) NOT NULL COMMENT '业务ID',
  `business_name` varchar(200) DEFAULT NULL COMMENT '业务名称',
  `user_id` varchar(64) DEFAULT NULL COMMENT '关联用户ID',
  `user_name` varchar(100) DEFAULT NULL COMMENT '关联用户姓名',
  `expire_date` date NOT NULL COMMENT '到期日期',
  `remaining_days` int(11) DEFAULT NULL COMMENT '剩余天数',
  `status` varchar(1) DEFAULT '0' COMMENT '状态（0-正常，1-即将到期，2-已到期）',
  `check_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '检测时间',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
  `update_by` varchar(64) DEFAULT NULL COMMENT '更新人',
  `del_flag` varchar(1) DEFAULT '0' COMMENT '删除标志（0代表存在，1代表删除）',
  PRIMARY KEY (`result_id`),
  KEY `idx_table_name` (`table_name`),
  KEY `idx_status` (`status`),
  KEY `idx_expire_date` (`expire_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='到期检测结果表';

-- 插入示例配置数据
INSERT INTO `auto_expiration_config` (`config_id`, `table_name`, `table_desc`, `primary_key_field`, `expire_date_field`, `user_id_field`, `user_name_field`, `business_name_field`, `remind_days`, `enabled`, `remark`) VALUES
('1', 'certification', '人员资质证书', 'certification_id', 'validity_date_end', 'user_id', NULL, 'certification_name', 30, '1', '人员资质证书到期检测'),
('2', 'insurance_info', '人员保险', 'insurance_info_id', 'expire_date', 'user_id', 'name', 'insurance_type_name', 30, '1', '人员保险到期检测'),
('3', 'regulation', '制度管理', 'regulation_id', 'expire_time', NULL, NULL, 'regulation_name', 30, '1', '制度到期检测'); 