29 lines
1.2 KiB
SQL
29 lines
1.2 KiB
SQL
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);
|