-- =====================================================
-- 内容安全模块数据库表
-- 模块：business-content-security
-- 创建时间：2026-06-27
-- =====================================================

DROP TABLE IF EXISTS `biz_content_security_task`;
DROP TABLE IF EXISTS `biz_content_security_log`;

CREATE TABLE `biz_content_security_log` (
  `id` VARCHAR(64) NOT NULL COMMENT '主键ID',
  `member_id` VARCHAR(64) DEFAULT NULL COMMENT '会员ID',
  `member_no` VARCHAR(32) DEFAULT NULL COMMENT '会员编号（冗余）',
  `member_nickname` VARCHAR(64) DEFAULT NULL COMMENT '会员姓名/昵称（冗余）',
  `member_mobile` VARCHAR(20) DEFAULT NULL COMMENT '会员手机号码（冗余）',
  `member_id_card` VARCHAR(64) DEFAULT NULL COMMENT '会员身份证号（冗余）',
  `content_type` VARCHAR(16) NOT NULL COMMENT 'TEXT/IMAGE',
  `scene` VARCHAR(32) DEFAULT NULL COMMENT 'COMMENT/FEEDBACK/...',
  `provider_code` VARCHAR(32) NOT NULL COMMENT 'WECHAT_MINI/...',
  `decision` VARCHAR(16) NOT NULL COMMENT 'PASS/REJECT/REVIEW/PENDING',
  `biz_module` VARCHAR(32) DEFAULT NULL COMMENT '业务模块',
  `biz_type` VARCHAR(32) DEFAULT NULL COMMENT '业务子类型',
  `biz_id` VARCHAR(64) DEFAULT NULL COMMENT '业务主键',
  `request_digest` VARCHAR(64) DEFAULT NULL COMMENT '内容摘要SHA256',
  `content_text` TEXT DEFAULT NULL COMMENT '检测文本原文',
  `media_url` VARCHAR(1000) DEFAULT NULL COMMENT '检测图片URL',
  `trace_id` VARCHAR(128) DEFAULT NULL COMMENT '微信trace_id',
  `result_code` VARCHAR(64) DEFAULT NULL COMMENT '厂商结果码',
  `result_label` VARCHAR(128) DEFAULT NULL COMMENT '厂商标签',
  `error_message` VARCHAR(500) DEFAULT NULL COMMENT '错误信息',
  `duration_ms` INT DEFAULT NULL COMMENT '耗时毫秒',
  `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者',
  `create_date` DATETIME DEFAULT NULL COMMENT '创建时间',
  `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者',
  `update_date` DATETIME DEFAULT NULL COMMENT '更新时间',
  `del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标记：0-正常 1-删除',
  `remarks` VARCHAR(255) DEFAULT NULL COMMENT '备注信息',
  `tenant_code` VARCHAR(64) DEFAULT NULL COMMENT '租户编码',
  `tenant_id` VARCHAR(64) DEFAULT NULL COMMENT '租户ID',
  PRIMARY KEY (`id`),
  KEY `idx_member_id` (`member_id`),
  KEY `idx_biz` (`biz_module`, `biz_id`),
  KEY `idx_trace_id` (`trace_id`),
  KEY `idx_create_date` (`create_date`),
  KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='内容安全检测流水';

CREATE TABLE `biz_content_security_task` (
  `id` VARCHAR(64) NOT NULL COMMENT '主键ID',
  `log_id` VARCHAR(64) DEFAULT NULL COMMENT '关联流水ID',
  `trace_id` VARCHAR(128) NOT NULL COMMENT '微信trace_id',
  `media_url` VARCHAR(1000) NOT NULL COMMENT '媒体URL',
  `task_status` TINYINT NOT NULL DEFAULT 0 COMMENT '0-待回调 1-通过 2-拒绝 3-异常 4-超时',
  `biz_module` VARCHAR(32) NOT NULL COMMENT '业务模块',
  `biz_id` VARCHAR(64) DEFAULT NULL COMMENT '业务主键',
  `member_id` VARCHAR(64) DEFAULT NULL COMMENT '会员ID',
  `provider_code` VARCHAR(32) NOT NULL DEFAULT 'WECHAT_MINI' COMMENT 'Provider编码',
  `callback_date` DATETIME DEFAULT NULL COMMENT '回调时间',
  `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者',
  `create_date` DATETIME DEFAULT NULL COMMENT '创建时间',
  `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者',
  `update_date` DATETIME DEFAULT NULL COMMENT '更新时间',
  `del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标记：0-正常 1-删除',
  `remarks` VARCHAR(255) DEFAULT NULL COMMENT '备注信息',
  `tenant_code` VARCHAR(64) DEFAULT NULL COMMENT '租户编码',
  `tenant_id` VARCHAR(64) DEFAULT NULL COMMENT '租户ID',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_trace_id` (`trace_id`),
  KEY `idx_biz` (`biz_module`, `biz_id`),
  KEY `idx_task_status` (`task_status`),
  KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='内容安全异步任务';

-- 已有库增量（2026-06-29）：检测流水冗余会员信息
-- ALTER TABLE `biz_content_security_log`
--   ADD COLUMN `member_no` VARCHAR(32) DEFAULT NULL COMMENT '会员编号（冗余）' AFTER `member_id`,
--   ADD COLUMN `member_nickname` VARCHAR(64) DEFAULT NULL COMMENT '会员姓名/昵称（冗余）' AFTER `member_no`,
--   ADD COLUMN `member_mobile` VARCHAR(20) DEFAULT NULL COMMENT '会员手机号码（冗余）' AFTER `member_nickname`,
--   ADD COLUMN `member_id_card` VARCHAR(64) DEFAULT NULL COMMENT '会员身份证号（冗余）' AFTER `member_mobile`;

-- 已有库增量（2026-07-01）：检测流水保存原文与图片
-- ALTER TABLE `biz_content_security_log`
--   ADD COLUMN `content_text` TEXT DEFAULT NULL COMMENT '检测文本原文' AFTER `request_digest`,
--   ADD COLUMN `media_url` VARCHAR(1000) DEFAULT NULL COMMENT '检测图片URL' AFTER `content_text`;
