ALTER TABLE mortals_xhx_product_interface ADD COLUMN    `authInfo` varchar(255)      COMMENT '授权信息' ;
ALTER TABLE mortals_xhx_product_interface ADD COLUMN    `flowInfo` varchar(255)      COMMENT '流控信息' ;

-- ----------------------------
-- 产品接口表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_product_interface_log`;
CREATE TABLE mortals_xhx_product_interface_log(
    `id` bigint(20)   AUTO_INCREMENT   COMMENT '序号，主键，自增长',
    `interfaceId` bigint(20)      COMMENT '接口id',
    `requestParameters` text      COMMENT '请求参数',
    `version` varchar(255)      COMMENT '版本号',
    `content` varchar(255)      COMMENT '内容说明',
    `remark` varchar(255)      COMMENT '备注',
    `createUserId` bigint(20) NOT NULL     COMMENT '创建用户',
    `createTime` datetime NOT NULL     COMMENT '创建时间',
    `updateUserId` bigint(20)      COMMENT '更新用户',
    `updateTime` datetime      COMMENT '更新时间',
PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='产品接口';

ALTER TABLE `mortals_xhx_user`
ADD COLUMN `saltKey` varchar(32)  DEFAULT NULL  COMMENT '密码盐值',
ADD COLUMN `lastUpdatePwdTime` datetime  DEFAULT NULL  COMMENT '最后一次修改密码时间',
ADD COLUMN `errorCount` tinyint(2)  DEFAULT '0'  COMMENT '当日登录失败数',
ADD COLUMN `loginLock` tinyint(2)  DEFAULT '0'  COMMENT '登录锁定状态0未锁定1已锁定',
ADD COLUMN `lockTime` datetime DEFAULT NULL COMMENT '锁定时间';

-- ----------------------------
-- 用户密码修改记录表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_user_pwd_record`;
CREATE TABLE `mortals_xhx_user_pwd_record` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键，自增长',
  `userId` bigint(20) DEFAULT NULL COMMENT '用户ID，主键，自增长',
  `loginName` varchar(50) DEFAULT NULL COMMENT '登录名',
  `loginPwd` varchar(128) DEFAULT NULL COMMENT '登录密码，使用md5双次加密',
  `createTime` datetime DEFAULT NULL COMMENT '创建时间',
  `createUserId` bigint(20) DEFAULT NULL COMMENT '创建用户',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户密码修改记录';

UPDATE mortals_xhx_user SET lastUpdatePwdTime=NOW();

-- ----------------------------
-- 2023-08-29
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_user_model_collect`;
CREATE TABLE `mortals_xhx_user_model_collect` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键，自增长',
  `userId` bigint(20) DEFAULT NULL COMMENT '用户ID，主键，自增长',
  `realName` varchar(64) DEFAULT NULL COMMENT '登录名',
  `modelIds` varchar(128) DEFAULT NULL COMMENT '收藏模块',
  `createTime` datetime DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户模块收藏';

-- ----------------------------
-- 2023-10-10
-- ----------------------------
ALTER TABLE `mortals_xhx_user_model_collect`
ADD COLUMN `siteId` bigint(20) DEFAULT NULL COMMENT '站点ID';

UPDATE mortals_xhx_user_model_collect SET siteId=1;

-- ----------------------------
-- 2023-11-13
-- ----------------------------
ALTER TABLE mortals_xhx_role_auth ADD COLUMN `resourceId` bigint(20)      COMMENT '资源ID';
ALTER TABLE mortals_xhx_role_auth ADD COLUMN  `createTime` datetime      COMMENT '创建时间';
ALTER TABLE mortals_xhx_role_auth ADD COLUMN  `createUserId` bigint(20)      COMMENT '创建用户';
ALTER TABLE mortals_xhx_role_auth ADD COLUMN `createUserName` varchar(50)      COMMENT '创建用户名称';


-- ----------------------------
-- 2024-12-9   添加消息模板表与发送任务表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_message_template`;
CREATE TABLE `mortals_xhx_message_template` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `code` varchar(255) DEFAULT '' COMMENT '模板编码，唯一',
  `site_id` bigint(20) DEFAULT NULL COMMENT '站点ID',
  `site_name` varchar(255) DEFAULT NULL COMMENT '站点名称',
  `site_code` varchar(255) DEFAULT NULL COMMENT '站点编码',
  `app_name` varchar(64) DEFAULT NULL COMMENT '应用平台标识',
  `category` varchar(64) DEFAULT NULL COMMENT '分组，便于将模板归类，如“系统通知”、“营销推广”',
  `name` varchar(255) DEFAULT NULL COMMENT '模板名称，用于标识模板的用途或类型。例如 "注册成功通知"、"验证码短信"。',
  `type` varchar(255) DEFAULT NULL COMMENT '模板类型，指定消息模板适用的发送渠道或用途',
  `content` varchar(1024) COMMENT '模板内容，支持包含动态占位符。占位符用特殊语法（如 {{变量名}}）表示，发送时动态替换。例如："您好，{{name}}，您的验证码是 {{code}}"。',
  `placeholders` varchar(255) DEFAULT NULL COMMENT '模板占位符的定义，描述模板中各占位符的名称和含义。以 JSON 格式存储，例如：{"name": "用户姓名", "code": "验证码"}，用于接口生成提示或校验必需参数。',
  `description` varchar(255) DEFAULT NULL COMMENT '模板描述，简要说明模板的用途和使用场景，方便管理员理解。例如："此模板用于向用户发送验证码短信。"',
  `priority` tinyint(2) DEFAULT '0' COMMENT '优先级，用于在消息任务调度时区分重要性 (0.普通，1.优先，2.紧急)',
  `enabled` tinyint(2) DEFAULT '0' COMMENT '启用状态 (0.停用，1.启用)',
  `create_user_id` bigint(20) DEFAULT NULL COMMENT '创建用户',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY  `uni_code`(`code`) USING BTREE,
  INDEX `idx_site_id`(`site_id`) USING BTREE,
  INDEX `idx_app_name`(`app_name`) USING BTREE,
  INDEX `idx_category`(`category`) USING BTREE

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='消息模板表';


DROP TABLE IF EXISTS `mortals_xhx_message_task`;
CREATE TABLE `mortals_xhx_message_task` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `code` varchar(255) DEFAULT '' COMMENT '模板编码，唯一',
  `template_id` bigint(20) DEFAULT NULL COMMENT '消息模板ID',
  `app_name` varchar(64) DEFAULT NULL COMMENT '应用平台标识',
  `site_id` bigint(20) DEFAULT NULL COMMENT '站点ID',
  `site_name` varchar(255) DEFAULT NULL COMMENT '站点名称',
  `site_code` varchar(255) DEFAULT NULL COMMENT '站点编码',
  `recipient` varchar(64) DEFAULT NULL COMMENT '接收者信息，例如手机号、邮箱或用户 ID，具体格式依据模板类型（SMS 为手机号，EMAIL 为邮箱，PUSH 为用户 ID）',
  `parameters` varchar(64) DEFAULT NULL COMMENT '动态参数，用于替换消息模板中的占位符。例如：{"name": "张三", "code": "123456"}',
  `channel` varchar(64) DEFAULT NULL COMMENT '消息发送渠道，例如 SMS（短信）、EMAIL（邮件）、PUSH（推送通知)',
  `priority` tinyint(2) DEFAULT '0' COMMENT '优先级，用于在消息任务调度时区分重要性 (0.普通，1.优先，2.紧急)',
  `send_status` tinyint(2) DEFAULT '0' COMMENT '状态 (0.待发送，1.发送中，2.成功，3.失败)',
  `retry_count` tinyint(2) DEFAULT '0' COMMENT '任务重试次数，记录任务失败后已尝试重新发送的次数。默认值为 0，用于防止无限重试。',
  `create_user_id` bigint(20) DEFAULT NULL COMMENT '创建用户',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX  `idx_code`(`code`) USING BTREE,
  INDEX `idx_template_id`(`template_id`) USING BTREE,
  INDEX `idx_site_id`(`site_id`) USING BTREE,
  INDEX `idx_app_name`(`app_name`) USING BTREE,
  INDEX `idx_send_status`(`send_status`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='消息任务表';

DROP TABLE IF EXISTS `mortals_xhx_message_log`;
CREATE TABLE `mortals_xhx_message_log` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `code` varchar(255) DEFAULT '' COMMENT '模板编码，唯一',
  `task_id` bigint(20) DEFAULT NULL COMMENT '任务ID',
  `app_name` varchar(64) DEFAULT NULL COMMENT '应用平台标识',
  `site_id` bigint(20) DEFAULT NULL COMMENT '站点ID',
  `site_name` varchar(255) DEFAULT NULL COMMENT '站点名称',
  `site_code` varchar(255) DEFAULT NULL COMMENT '站点编码',
  `response` varchar(64) DEFAULT NULL COMMENT '返回的响应结果，记录发送的详细反馈信息',
  `error_code` varchar(64) DEFAULT NULL COMMENT '错误代码，标识具体的失败原因。例如 "400"（参数错误）、"503"（服务不可用）',
  `error_msg` varchar(512) DEFAULT NULL COMMENT '错误描述信息，对 error_code 进行补充说明。例如："Invalid recipient address"',
  `priority` tinyint(2) DEFAULT '0' COMMENT '优先级，用于在消息任务调度时区分重要性 (0.普通，1.优先，2.紧急)',
  `send_status` tinyint(2) DEFAULT '0' COMMENT '状态 (0.待发送，1.发送中，2.成功，3.失败)',
  `retry_count` tinyint(2) DEFAULT '0' COMMENT '任务重试次数，记录任务失败后已尝试重新发送的次数。默认值为 0，用于防止无限重试。',
  `send_time` datetime DEFAULT NULL COMMENT '发送时间',
  `create_user_id` bigint(20) DEFAULT NULL COMMENT '创建用户',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_task_id`(`task_id`) USING BTREE,
  INDEX `idx_code`(`code`) USING BTREE,
  INDEX `idx_site_id`(`site_id`) USING BTREE,
  INDEX `idx_app_name`(`app_name`) USING BTREE,
  INDEX `idx_send_status`(`send_status`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='消息日志表';
