oh-my-muse/muse-cloud/sql/muse/V9__extend_content_real_api_schema.sql
zizi 3230382d0f feat(p1r): 推进 Content 真实 API 收口
将 Content 域 51 个 operation 从合同兜底推进到 dedicated / needs_verification,补齐专用 Controller、Application Service、DTO、持久化、facade 边界、幂等、审计和阶段门禁。

同时保留 P1R-1 口径:当前不宣称 completed,后续仍需真实外部 owner 和集成验收推进。
2026-05-27 02:24:48 +08:00

58 lines
2.6 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- P1R-1 Content Real API 扩展 Schema。
-- 说明:本迁移只追加 Content 自有正式 planning sectionAI candidate / style check 运行事实仍归外部 owner。
CREATE TABLE muse_content_planning_section (
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
work_id BIGINT NOT NULL,
section_key VARCHAR(100) NOT NULL,
content_payload JSONB NOT NULL DEFAULT '{}'::jsonb,
schema_version INT NOT NULL DEFAULT 1,
projection_version INT NOT NULL DEFAULT 1,
source_snapshot JSONB,
revision INT NOT NULL DEFAULT 1,
creator VARCHAR(64) NOT NULL DEFAULT '',
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updater VARCHAR(64) NOT NULL DEFAULT '',
update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
deleted BOOLEAN NOT NULL DEFAULT FALSE,
tenant_id BIGINT NOT NULL DEFAULT 0,
CONSTRAINT uk_muse_content_planning_section UNIQUE (tenant_id, work_id, section_key)
);
CREATE INDEX idx_muse_content_planning_section_work ON muse_content_planning_section(tenant_id, work_id);
CREATE TRIGGER trg_muse_content_planning_section_updated_at
BEFORE UPDATE ON muse_content_planning_section
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
ALTER TABLE muse_content_export_task
ADD COLUMN IF NOT EXISTS download_expires_at TIMESTAMP,
ADD COLUMN IF NOT EXISTS completed_at TIMESTAMP,
ADD COLUMN IF NOT EXISTS progress INT NOT NULL DEFAULT 0,
ADD COLUMN IF NOT EXISTS source_snapshot JSONB;
CREATE TABLE muse_content_governance_action (
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
work_id BIGINT NOT NULL,
operator_user_id BIGINT NOT NULL,
action VARCHAR(64) NOT NULL,
reason TEXT NOT NULL,
target_scope VARCHAR(32) NOT NULL DEFAULT 'work',
target_ids JSONB NOT NULL DEFAULT '[]'::jsonb,
expected_version INT NOT NULL,
status VARCHAR(64) NOT NULL,
audit_log_id VARCHAR(128),
command_id VARCHAR(128) NOT NULL,
creator VARCHAR(64) NOT NULL DEFAULT '',
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updater VARCHAR(64) NOT NULL DEFAULT '',
update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
deleted BOOLEAN NOT NULL DEFAULT FALSE,
tenant_id BIGINT NOT NULL DEFAULT 0,
CONSTRAINT uk_muse_content_governance_action_command UNIQUE (tenant_id, command_id)
);
CREATE INDEX idx_muse_content_governance_action_work ON muse_content_governance_action(tenant_id, work_id);
CREATE TRIGGER trg_muse_content_governance_action_updated_at
BEFORE UPDATE ON muse_content_governance_action
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();