export const SCHEMA_SQL = ` CREATE TABLE IF NOT EXISTS conversations ( id TEXT PRIMARY KEY, title TEXT NOT NULL, account_id TEXT, pinned INTEGER NOT NULL DEFAULT 0, created_at TEXT NOT NULL DEFAULT (datetime('now')), updated_at TEXT NOT NULL DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS messages ( id TEXT PRIMARY KEY, conversation_id TEXT NOT NULL REFERENCES conversations(id) ON DELETE CASCADE, role TEXT NOT NULL CHECK(role IN ('user', 'assistant', 'system', 'tool')), content TEXT NOT NULL, tool_calls TEXT, created_at TEXT NOT NULL DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS assets ( id TEXT PRIMARY KEY, account_id TEXT, manifest_path TEXT, type TEXT NOT NULL CHECK(type IN ('image', 'video')), file_path TEXT NOT NULL, url TEXT, shot_index INTEGER, created_at TEXT NOT NULL DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS pipeline_runs ( id TEXT PRIMARY KEY, manifest_path TEXT NOT NULL, phase TEXT NOT NULL, status TEXT NOT NULL DEFAULT 'pending' CHECK(status IN ('pending','running','done','failed')), started_at TEXT, finished_at TEXT ); CREATE TABLE IF NOT EXISTS configs ( id TEXT PRIMARY KEY, key TEXT NOT NULL UNIQUE, value TEXT NOT NULL DEFAULT '{}', updated_at TEXT NOT NULL DEFAULT (datetime('now')) ); CREATE INDEX IF NOT EXISTS idx_messages_conv ON messages(conversation_id, created_at); CREATE INDEX IF NOT EXISTS idx_assets_account ON assets(account_id, created_at); CREATE INDEX IF NOT EXISTS idx_pipeline_manifest ON pipeline_runs(manifest_path); `;