38 lines
1.4 KiB
SQL
38 lines
1.4 KiB
SQL
CREATE TABLE IF NOT EXISTS chat_sessions (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
user_id BIGINT NOT NULL,
|
|
title TEXT NOT NULL DEFAULT '新对话',
|
|
summary TEXT DEFAULT '',
|
|
memory_json TEXT NOT NULL DEFAULT '{}',
|
|
last_symbol TEXT DEFAULT '',
|
|
last_intent TEXT DEFAULT '',
|
|
created_at TEXT NOT NULL,
|
|
updated_at TEXT NOT NULL,
|
|
archived_at TEXT DEFAULT ''
|
|
);
|
|
CREATE INDEX IF NOT EXISTS idx_chat_sessions_user_updated ON chat_sessions(user_id, updated_at DESC);
|
|
|
|
CREATE TABLE IF NOT EXISTS chat_messages (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
session_id BIGINT NOT NULL,
|
|
user_id BIGINT NOT NULL,
|
|
role TEXT NOT NULL,
|
|
content_text TEXT DEFAULT '',
|
|
content_json TEXT NOT NULL DEFAULT '{}',
|
|
context_json TEXT NOT NULL DEFAULT '{}',
|
|
intent TEXT DEFAULT '',
|
|
symbol TEXT DEFAULT '',
|
|
timeframe TEXT DEFAULT '',
|
|
model TEXT DEFAULT '',
|
|
created_at TEXT NOT NULL
|
|
);
|
|
CREATE INDEX IF NOT EXISTS idx_chat_messages_session_time ON chat_messages(session_id, created_at ASC);
|
|
CREATE INDEX IF NOT EXISTS idx_chat_messages_user_time ON chat_messages(user_id, created_at DESC);
|
|
|
|
CREATE TABLE IF NOT EXISTS chat_user_preferences (
|
|
user_id BIGINT PRIMARY KEY,
|
|
preferences_json TEXT NOT NULL DEFAULT '{}',
|
|
updated_at TEXT NOT NULL
|
|
);
|
|
CREATE INDEX IF NOT EXISTS idx_chat_user_preferences_updated ON chat_user_preferences(updated_at DESC);
|