将 Content 域 51 个 operation 从合同兜底推进到 dedicated / needs_verification,补齐专用 Controller、Application Service、DTO、持久化、facade 边界、幂等、审计和阶段门禁。 同时保留 P1R-1 口径:当前不宣称 completed,后续仍需真实外部 owner 和集成验收推进。
58 lines
2.6 KiB
SQL
58 lines
2.6 KiB
SQL
-- P1R-1 Content Real API 扩展 Schema。
|
||
-- 说明:本迁移只追加 Content 自有正式 planning section;AI 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();
|