-- ============================================================
-- Muse 后端-04a：核心业务建表 SQL（第一批）
-- 更新日期：2026-05-24
-- 目标数据库：MySQL 8.0+
-- 状态：需要与后端-04 Schema 文档对齐，当前为旧实现快照
-- ============================================================
--
-- !! 重要说明 !!
-- 本文件当前内容为旧实现快照，尚未与最新的后端-04 Schema 文档对齐。
-- 已知差异包括但不限于：
--   1. Entitlement 模型已改为可变表 + 审计日志（非 append-only ledger）
--   2. MetaSchema 表已迁移至独立 yudao-module-meta 模块（表前缀改为 muse_meta_）
--   3. 知识实体唯一键已加 scope 字段
--   4. Candidate Decision Envelope 已去掉，简化为候选记录 source_version
--   5. needs_recheck 已从 SourceStatus 枚举中移除
--   6. source_snapshot 表 DDL 归属已改为 infra 模块
--   7. API 版本策略已确定为 X-API-Version header 方式
-- 请勿直接执行到 yudao-cloud 目标库，需等后端-04 完全确认后重新生成。
--
-- ============================================================

-- ============================================================
-- 一、Member 模块（Account BC 物理承载）的 Muse 扩展表
-- ============================================================

-- 用户画像/偏好扩展
CREATE TABLE `muse_member_profile` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` BIGINT NOT NULL COMMENT '用户ID，引用 Yudao system_users',
  `display_name` VARCHAR(100) DEFAULT NULL COMMENT 'Muse 展示名',
  `avatar_url` VARCHAR(500) DEFAULT NULL COMMENT '头像URL',
  `bio` VARCHAR(500) DEFAULT NULL COMMENT '个人简介',
  `writing_preference` JSON DEFAULT NULL COMMENT '创作偏好（JSON）',
  `notification_preference` JSON DEFAULT NULL COMMENT '通知偏好（JSON）',
  `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` BIGINT NOT NULL DEFAULT 0 COMMENT '租户ID',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Muse 用户画像扩展（member 模块）';

-- 用户权益
CREATE TABLE `muse_member_entitlement` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` BIGINT NOT NULL COMMENT '用户ID',
  `plan_type` VARCHAR(50) NOT NULL COMMENT '套餐类型：free/basic/pro/enterprise',
  `plan_started_at` DATETIME DEFAULT NULL COMMENT '套餐开始时间',
  `plan_expires_at` DATETIME DEFAULT NULL COMMENT '套餐过期时间',
  `ai_call_quota` INT NOT NULL DEFAULT 0 COMMENT 'AI 调用配额（次/月）',
  `ai_call_used` INT NOT NULL DEFAULT 0 COMMENT 'AI 调用已用量',
  `storage_quota_mb` BIGINT NOT NULL DEFAULT 0 COMMENT '存储配额（MB）',
  `storage_used_mb` BIGINT NOT NULL DEFAULT 0 COMMENT '存储已用量（MB）',
-- PLACEHOLDER_SQL_PART2
  `kb_count_quota` INT NOT NULL DEFAULT 0 COMMENT '知识库数量配额',
  `work_count_quota` INT NOT NULL DEFAULT 0 COMMENT '作品数量配额',
  `export_quota` INT NOT NULL DEFAULT 0 COMMENT '导出配额（次/月）',
  `features_json` JSON DEFAULT NULL COMMENT '功能开关集合（JSON）',
  `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` BIGINT NOT NULL DEFAULT 0 COMMENT '租户ID',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Muse 用户权益（member 模块）';

-- 用户配额
CREATE TABLE `muse_member_quota` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` BIGINT NOT NULL COMMENT '用户ID',
  `quota_type` VARCHAR(50) NOT NULL COMMENT '配额类型：ai_call/storage/kb_count/work_count/export',
  `total_amount` BIGINT NOT NULL DEFAULT 0 COMMENT '总配额',
  `used_amount` BIGINT NOT NULL DEFAULT 0 COMMENT '已使用量',
  `reset_cycle` VARCHAR(20) DEFAULT NULL COMMENT '重置周期：monthly/yearly/never',
  `last_reset_at` DATETIME DEFAULT NULL COMMENT '上次重置时间',
  `next_reset_at` DATETIME DEFAULT NULL COMMENT '下次重置时间',
  `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` BIGINT NOT NULL DEFAULT 0 COMMENT '租户ID',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_user_quota_type` (`user_id`, `quota_type`),
  KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Muse 用户配额（member 模块）';

-- 用量记录
CREATE TABLE `muse_member_usage_record` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` BIGINT NOT NULL COMMENT '用户ID',
  `usage_type` VARCHAR(50) NOT NULL COMMENT '用量类型：ai_generation/ai_parse/retrieval/export/evaluation',
  `work_id` BIGINT DEFAULT NULL COMMENT '关联作品ID',
  `task_id` BIGINT DEFAULT NULL COMMENT '关联任务ID',
  `token_input` INT DEFAULT 0 COMMENT '输入 token 数',
  `token_output` INT DEFAULT 0 COMMENT '输出 token 数',
  `cost_reference` VARCHAR(100) DEFAULT NULL COMMENT '成本参考（非 authority，仅摘要）',
  `gateway_request_id` VARCHAR(200) DEFAULT NULL COMMENT 'New-API 网关请求ID',
-- PLACEHOLDER_SQL_PART3
  `correlation_id` VARCHAR(200) DEFAULT NULL COMMENT '关联ID，用于去重和归属',
  `status` VARCHAR(20) NOT NULL DEFAULT 'completed' COMMENT '状态：completed/failed/compensated',
  `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` BIGINT NOT NULL DEFAULT 0 COMMENT '租户ID',
  PRIMARY KEY (`id`),
  KEY `idx_user_create_time` (`user_id`, `create_time`),
  KEY `idx_correlation_id` (`correlation_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Muse 用量记录（member 模块）';

-- 安全事件
CREATE TABLE `muse_member_security_event` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` BIGINT NOT NULL COMMENT '用户ID',
  `event_type` VARCHAR(50) NOT NULL COMMENT '事件类型：login_anomaly/credential_expired/sensitive_export/access_denied_burst/device_change/permission_escalation',
  `severity` VARCHAR(20) NOT NULL DEFAULT 'info' COMMENT '严重级别：info/warning/critical',
  `occurred_at` DATETIME NOT NULL COMMENT '事件发生时间',
  `source_ip` VARCHAR(50) DEFAULT NULL COMMENT '来源IP',
  `device_info` JSON DEFAULT NULL COMMENT '设备信息（JSON）',
  `affected_scope` VARCHAR(200) DEFAULT NULL COMMENT '影响范围描述',
  `description` VARCHAR(500) DEFAULT NULL COMMENT '事件描述',
  `suggested_actions` JSON DEFAULT NULL COMMENT '建议处理措施（JSON数组）',
  `acknowledged_at` DATETIME DEFAULT NULL COMMENT '用户确认时间',
  `acknowledged_action` VARCHAR(50) DEFAULT NULL COMMENT '用户确认动作：acknowledged/password_changed/session_revoked/false_positive',
  `acknowledge_note` VARCHAR(500) DEFAULT NULL COMMENT '用户确认备注',
  `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` BIGINT NOT NULL DEFAULT 0 COMMENT '租户ID',
  PRIMARY KEY (`id`),
  KEY `idx_user_occurred` (`user_id`, `occurred_at`),
  KEY `idx_user_severity` (`user_id`, `severity`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Muse 安全事件（member 模块）';

-- New-API 绑定
CREATE TABLE `muse_member_api_binding` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` BIGINT NOT NULL COMMENT '用户ID',
  `gateway_user_ref` VARCHAR(200) NOT NULL COMMENT 'New-API 网关用户引用（不存明文 token）',
  `binding_status` VARCHAR(20) NOT NULL DEFAULT 'active' COMMENT '绑定状态：active/expired/revoked/recheck_needed',
-- PLACEHOLDER_SQL_PART4
  `last_recheck_at` DATETIME DEFAULT NULL COMMENT '上次重验时间',
  `correlation_id` VARCHAR(200) DEFAULT NULL COMMENT '关联ID',
  `idempotency_key` VARCHAR(200) DEFAULT NULL COMMENT '幂等键',
  `failure_code` VARCHAR(50) DEFAULT NULL COMMENT '失败错误码',
  `failure_message` VARCHAR(500) DEFAULT NULL COMMENT '失败原因',
  `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` BIGINT NOT NULL DEFAULT 0 COMMENT '租户ID',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Muse New-API 绑定（member 模块）';

-- ============================================================
-- 二、Content 模块核心表
-- ============================================================

-- 作品
CREATE TABLE `muse_content_work` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  `owner_user_id` BIGINT NOT NULL COMMENT '所属用户ID',
  `title` VARCHAR(200) NOT NULL COMMENT '作品标题',
  `genre` VARCHAR(50) DEFAULT NULL COMMENT '作品类型/体裁',
  `summary` TEXT DEFAULT NULL COMMENT '作品简介',
  `status` VARCHAR(20) NOT NULL DEFAULT 'writing' COMMENT '状态：writing/completed/archived',
  `work_schema_id` BIGINT DEFAULT NULL COMMENT '关联 MetaSchema ID',
  `import_status` VARCHAR(20) DEFAULT NULL COMMENT '导入摘要状态',
  `parse_status` VARCHAR(20) DEFAULT NULL COMMENT '全书解析摘要状态',
  `word_count` INT NOT NULL DEFAULT 0 COMMENT '总字数（读模型）',
  `chapter_count` INT NOT NULL DEFAULT 0 COMMENT '章节数（读模型）',
  `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` BIGINT NOT NULL DEFAULT 0 COMMENT '租户ID',
  PRIMARY KEY (`id`),
  KEY `idx_owner_update` (`owner_user_id`, `update_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Muse 作品（content 模块）';

-- 章节
CREATE TABLE `muse_content_chapter` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  `work_id` BIGINT NOT NULL COMMENT '所属作品ID',
  `title` VARCHAR(200) NOT NULL COMMENT '章节标题',
  `order_no` INT NOT NULL COMMENT '章节排序',
-- PLACEHOLDER_SQL_PART5
  `status` VARCHAR(20) NOT NULL DEFAULT 'draft' COMMENT '状态：draft/writing/completed/archived',
  `goal_snapshot` JSON DEFAULT NULL COMMENT '已确认规划摘要',
  `outline_snapshot` JSON DEFAULT NULL COMMENT '大纲摘要',
  `parse_review_status` VARCHAR(20) DEFAULT NULL COMMENT '全书解析章节审阅状态',
  `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` BIGINT NOT NULL DEFAULT 0 COMMENT '租户ID',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_work_order` (`work_id`, `order_no`),
  KEY `idx_work_id` (`work_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Muse 章节（content 模块）';

-- 正文块
CREATE TABLE `muse_content_block` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  `work_id` BIGINT NOT NULL COMMENT '所属作品ID',
  `chapter_id` BIGINT NOT NULL COMMENT '所属章节ID',
  `order_no` INT NOT NULL COMMENT '章节内排序',
  `content_doc` JSON DEFAULT NULL COMMENT '富文本结构化内容（JSON）',
  `revision` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本，保存正文必须带 expectedRevision',
  `word_count` INT NOT NULL DEFAULT 0 COMMENT '当前字数',
  `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` BIGINT NOT NULL DEFAULT 0 COMMENT '租户ID',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_chapter_order` (`chapter_id`, `order_no`),
  KEY `idx_work_id` (`work_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Muse 正文块（content 模块）';

-- 叙事运行态
CREATE TABLE `muse_content_narrative_state` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  `work_id` BIGINT NOT NULL COMMENT '所属作品ID',
  `chapter_id` BIGINT DEFAULT NULL COMMENT '章节ID（章节维度时填写）',
  `entity_id` BIGINT DEFAULT NULL COMMENT '实体ID（实体维度时填写）',
  `scope` VARCHAR(20) NOT NULL COMMENT '维度：work/chapter/entity',
  `state_payload` JSON NOT NULL COMMENT '叙事运行态数据（JSON）',
  `revision` INT NOT NULL DEFAULT 1 COMMENT '版本',
  `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` BIGINT NOT NULL DEFAULT 0 COMMENT '租户ID',
  PRIMARY KEY (`id`),
  KEY `idx_work_scope` (`work_id`, `scope`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Muse 叙事运行态（content 模块）';

-- ============================================================
-- 三、AI 模块核心表
-- ============================================================
-- PLACEHOLDER_SQL_PART6

-- AI 任务
CREATE TABLE `muse_ai_task` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  `work_id` BIGINT DEFAULT NULL COMMENT '关联作品ID',
  `chapter_id` BIGINT DEFAULT NULL COMMENT '关联章节ID',
  `actor_user_id` BIGINT NOT NULL COMMENT '发起用户ID',
  `task_type` VARCHAR(50) NOT NULL COMMENT '任务类型：generation/continuation/expansion/polish/detection/planning/parse/evaluation',
  `agent_version_id` BIGINT DEFAULT NULL COMMENT '使用的 Agent 版本ID',
  `runtime_envelope_id` BIGINT DEFAULT NULL COMMENT '运行时权限包ID',
  `status` VARCHAR(20) NOT NULL DEFAULT 'queued' COMMENT '状态：queued/running/completed/failed/canceled',
  `idempotency_key` VARCHAR(200) NOT NULL COMMENT '幂等键',
  `input_snapshot` JSON DEFAULT NULL COMMENT '输入上下文摘要（不含敏感全文）',
  `output_summary` JSON DEFAULT NULL COMMENT '输出摘要',
  `error_code` VARCHAR(50) DEFAULT NULL COMMENT '失败错误码',
  `error_message` VARCHAR(500) DEFAULT NULL COMMENT '失败原因',
  `retry_count` INT NOT NULL DEFAULT 0 COMMENT '重试次数',
  `started_at` DATETIME DEFAULT NULL COMMENT '开始执行时间',
  `finished_at` DATETIME DEFAULT NULL COMMENT '完成时间',
  `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` BIGINT NOT NULL DEFAULT 0 COMMENT '租户ID',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_idempotency_key` (`idempotency_key`),
  KEY `idx_work_status` (`work_id`, `status`, `update_time`),
  KEY `idx_actor_status` (`actor_user_id`, `task_type`, `status`, `update_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Muse AI 任务（ai 模块）';

-- AI 候选
CREATE TABLE `muse_ai_candidate` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  `work_id` BIGINT NOT NULL COMMENT '关联作品ID',
  `chapter_id` BIGINT DEFAULT NULL COMMENT '关联章节ID',
  `block_id` BIGINT DEFAULT NULL COMMENT '目标 Block ID',
  `task_id` BIGINT NOT NULL COMMENT '来源任务ID',
  `candidate_type` VARCHAR(50) NOT NULL COMMENT '候选类型：suggestion/planning_candidate',
  `content_snapshot` JSON DEFAULT NULL COMMENT '候选内容快照',
  `status` VARCHAR(20) NOT NULL DEFAULT 'pending' COMMENT '状态：pending/accepted/rejected/expired/invalidated',
  `quality_result_id` BIGINT DEFAULT NULL COMMENT '质量门控结果ID',
  `source_snapshot_id` BIGINT DEFAULT NULL COMMENT '来源快照ID',
  `authorization_snapshot_id` BIGINT DEFAULT NULL COMMENT '授权快照ID',
-- PLACEHOLDER_SQL_PART7
  `source_status` VARCHAR(30) DEFAULT NULL COMMENT '来源状态',
  `decision_archive_id` BIGINT DEFAULT NULL COMMENT '决策归档ID',
  `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` BIGINT NOT NULL DEFAULT 0 COMMENT '租户ID',
  PRIMARY KEY (`id`),
  KEY `idx_work_status` (`work_id`, `status`, `create_time`),
  KEY `idx_task_id` (`task_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Muse AI 候选（ai 模块）';

-- AI Agent
CREATE TABLE `muse_ai_agent` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
  `agent_key` VARCHAR(100) NOT NULL COMMENT '智能体稳定业务键',
  `agent_name` VARCHAR(200) NOT NULL COMMENT '智能体名称',
  `agent_type` VARCHAR(20) NOT NULL COMMENT '类型：system/user/market_installed',
  `owner_user_id` BIGINT DEFAULT NULL COMMENT '所属用户（user 类型时填写）',
  `description` VARCHAR(500) DEFAULT NULL COMMENT '描述',
  `status` VARCHAR(20) NOT NULL DEFAULT 'active' COMMENT '状态：active/disabled/archived',
  `current_version_id` BIGINT DEFAULT NULL COMMENT '当前激活版本ID',
  `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` BIGINT NOT NULL DEFAULT 0 COMMENT '租户ID',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_agent_key` (`agent_key`),
  KEY `idx_type_status` (`agent_type`, `status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Muse 智能体（ai 模块）';
