ваше сообщение коммита

This commit is contained in:
2025-04-21 10:40:57 +03:00
parent f371521511
commit 16c3534239
22 changed files with 637 additions and 84 deletions

View File

@@ -8,7 +8,7 @@ CREATE TABLE IF NOT EXISTS messages (
metadata JSONB,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
role VARCHAR(20) NOT NULL DEFAULT 'user',
guest_message_id INTEGER,
user_id INTEGER REFERENCES users(id) ON DELETE CASCADE,
tokens_used INTEGER DEFAULT 0,
is_processed BOOLEAN DEFAULT FALSE
);
@@ -17,4 +17,5 @@ CREATE INDEX IF NOT EXISTS idx_messages_conversation_id ON messages(conversation
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_metadata ON messages USING gin(metadata);
CREATE INDEX IF NOT EXISTS idx_messages_user_id ON messages(user_id);

View File

@@ -53,7 +53,7 @@ BEGIN
content,
role,
channel,
guest_message_id,
user_id,
created_at
)
SELECT
@@ -63,14 +63,16 @@ BEGIN
content,
CASE WHEN is_ai THEN 'assistant' ELSE 'user' END,
'chat',
id, -- Сохраняем связь с гостевым сообщением
p_user_id,
created_at
FROM guest_messages
WHERE guest_id = p_guest_id
-- Проверка, чтобы избежать дублирования сообщений
-- Проверка, чтобы избежать дублирования сообщений на основе содержимого и времени
AND NOT EXISTS (
SELECT 1 FROM messages m
WHERE m.guest_message_id = guest_messages.id
WHERE m.conversation_id = v_conversation_id
AND m.content = guest_messages.content
AND m.created_at = guest_messages.created_at
)
ORDER BY created_at
RETURNING id