Files
mnote/rust/crates/control-plane/migrations/008-ai-external-conversation-bindings.sql
T

29 lines
1.2 KiB
SQL
Raw Normal View History

2026-06-01 09:29:12 +08:00
CREATE TABLE IF NOT EXISTS ai_external_conversation_bindings (
id TEXT PRIMARY KEY,
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
workspace_id TEXT,
mnote_session_id TEXT NOT NULL,
acp_session_id TEXT,
agent_id TEXT NOT NULL,
profile TEXT NOT NULL,
provider TEXT NOT NULL,
remote_conversation_id TEXT NOT NULL,
remote_url TEXT,
status TEXT NOT NULL DEFAULT 'active',
metadata_json TEXT NOT NULL DEFAULT '{}',
created_at TEXT NOT NULL DEFAULT (datetime('now')),
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
deleted_at TEXT,
revision INTEGER NOT NULL DEFAULT 1,
CHECK (status IN ('active', 'local_deleted', 'remote_deleted', 'remote_delete_failed', 'remote_missing'))
);
CREATE UNIQUE INDEX IF NOT EXISTS idx_ai_external_conv_user_session_provider
ON ai_external_conversation_bindings(user_id, mnote_session_id, provider);
CREATE UNIQUE INDEX IF NOT EXISTS idx_ai_external_conv_user_provider_remote
ON ai_external_conversation_bindings(user_id, provider, remote_conversation_id);
CREATE INDEX IF NOT EXISTS idx_ai_external_conv_lookup
ON ai_external_conversation_bindings(user_id, workspace_id, mnote_session_id, provider, status);