21 lines
1.1 KiB
SQL
21 lines
1.1 KiB
SQL
CREATE TABLE IF NOT EXISTS messages (
|
|
id SERIAL PRIMARY KEY,
|
|
conversation_id INTEGER REFERENCES conversations(id) ON DELETE CASCADE,
|
|
sender_type VARCHAR(20) NOT NULL,
|
|
sender_id INTEGER,
|
|
content TEXT,
|
|
channel VARCHAR(20) NOT NULL,
|
|
metadata JSONB,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
role VARCHAR(20) NOT NULL DEFAULT 'user',
|
|
user_id INTEGER REFERENCES users(id) ON DELETE CASCADE,
|
|
tokens_used INTEGER DEFAULT 0,
|
|
is_processed BOOLEAN DEFAULT FALSE
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_messages_conversation_id ON messages(conversation_id);
|
|
-- CREATE INDEX IF NOT EXISTS idx_messages_sender_type ON messages(sender_type); -- пропускаем, колонка зашифрована
|
|
CREATE INDEX IF NOT EXISTS idx_messages_created_at ON messages(created_at);
|
|
-- CREATE INDEX IF NOT EXISTS idx_messages_channel ON messages(channel); -- пропускаем, колонка зашифрована
|
|
-- CREATE INDEX IF NOT EXISTS idx_messages_metadata ON messages USING gin(metadata); -- пропускаем, колонки нет
|
|
CREATE INDEX IF NOT EXISTS idx_messages_user_id ON messages(user_id); |