基于产品/架构/流程/前端/后端五维度并行review,澄清并落地22项关键决策: 架构层:Governance按消费者归属拆散、MetaSchema独立模块、 Source传播改为事件驱动自治、去掉Candidate Decision Envelope 和needs_recheck中间状态、Neo4j决策为依赖RAGFlow GraphRAG 后端层:Entitlement统一为可变表+审计日志、API版本策略采用 X-API-Version Header、知识实体唯一键加scope字段 前端层:SSE实时通信(AI stream独立+事件统一)、正文持久化 IndexedDB安全网、Block粒度为场景/小节级 产品层:范围不变UX解决复杂度、知识确认默认自动+冲突时人工
335 lines
20 KiB
SQL
335 lines
20 KiB
SQL
-- ============================================================
|
||
-- 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 模块)';
|