feat: add style kit production standards

This commit is contained in:
xz
2026-09-01 01:11:22 +08:00
parent 8caf947b80
commit a9c8eea271
13 changed files with 1391 additions and 13 deletions
+39
View File
@@ -709,6 +709,45 @@ CREATE TABLE IF NOT EXISTS model_route_approval_requests (
updated_at TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS style_kits (
id TEXT PRIMARY KEY,
organization_id TEXT NOT NULL REFERENCES organizations(id) ON DELETE CASCADE,
workspace_id TEXT REFERENCES workspaces(id) ON DELETE CASCADE,
project_id TEXT REFERENCES projects(id) ON DELETE CASCADE,
scope_mode TEXT NOT NULL DEFAULT 'workspace' CHECK (scope_mode IN ('organization', 'workspace', 'project')),
name TEXT NOT NULL,
description TEXT NOT NULL DEFAULT '',
status TEXT NOT NULL DEFAULT 'draft' CHECK (status IN ('draft', 'active', 'paused', 'archived')),
visual_profile_json TEXT NOT NULL DEFAULT '{}',
subtitle_preset_json TEXT NOT NULL DEFAULT '{}',
voice_policy_json TEXT NOT NULL DEFAULT '{}',
delivery_spec_json TEXT NOT NULL DEFAULT '{}',
prompt_rules_json TEXT NOT NULL DEFAULT '{}',
single_frame_policy_json TEXT NOT NULL DEFAULT '{}',
naming_rules_json TEXT NOT NULL DEFAULT '{}',
qa_policy_json TEXT NOT NULL DEFAULT '{}',
metadata_json TEXT NOT NULL DEFAULT '{}',
created_by TEXT NOT NULL REFERENCES users(id),
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS project_style_kit_bindings (
id TEXT PRIMARY KEY,
organization_id TEXT NOT NULL REFERENCES organizations(id) ON DELETE CASCADE,
workspace_id TEXT NOT NULL REFERENCES workspaces(id) ON DELETE CASCADE,
project_id TEXT NOT NULL UNIQUE REFERENCES projects(id) ON DELETE CASCADE,
style_kit_id TEXT NOT NULL REFERENCES style_kits(id) ON DELETE CASCADE,
enforcement TEXT NOT NULL DEFAULT 'locked' CHECK (enforcement IN ('advisory', 'locked', 'strict')),
notes TEXT NOT NULL DEFAULT '',
created_by TEXT NOT NULL REFERENCES users(id),
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
);
CREATE INDEX IF NOT EXISTS idx_style_kits_scope ON style_kits(organization_id, workspace_id, project_id, scope_mode, status, updated_at DESC);
CREATE INDEX IF NOT EXISTS idx_style_kit_bindings_scope ON project_style_kit_bindings(organization_id, workspace_id, project_id, style_kit_id);
CREATE TABLE IF NOT EXISTS series (
id TEXT PRIMARY KEY,
project_id TEXT NOT NULL UNIQUE REFERENCES projects(id) ON DELETE CASCADE,