Описание изменений
This commit is contained in:
45
backend/db/migrations/008_update_messages_structure.sql
Normal file
45
backend/db/migrations/008_update_messages_structure.sql
Normal file
@@ -0,0 +1,45 @@
|
||||
-- Добавляем новые поля в messages
|
||||
ALTER TABLE messages
|
||||
ADD COLUMN IF NOT EXISTS role VARCHAR(20) NOT NULL DEFAULT 'user',
|
||||
ADD COLUMN IF NOT EXISTS guest_message_id INTEGER,
|
||||
ADD COLUMN IF NOT EXISTS tokens_used INTEGER DEFAULT 0,
|
||||
ADD COLUMN IF NOT EXISTS is_processed BOOLEAN DEFAULT FALSE;
|
||||
|
||||
-- Создаем функцию для связывания сообщений
|
||||
CREATE OR REPLACE FUNCTION link_guest_messages(
|
||||
p_user_id INTEGER,
|
||||
p_guest_id VARCHAR(255)
|
||||
) RETURNS VOID AS $$
|
||||
DECLARE
|
||||
v_conversation_id INTEGER;
|
||||
BEGIN
|
||||
-- Создаем новую беседу для гостевых сообщений
|
||||
INSERT INTO conversations (created_at, updated_at)
|
||||
VALUES (NOW(), NOW())
|
||||
RETURNING id INTO v_conversation_id;
|
||||
|
||||
-- Копируем гостевые сообщения в основную таблицу
|
||||
INSERT INTO messages (
|
||||
conversation_id,
|
||||
sender_type,
|
||||
sender_id,
|
||||
content,
|
||||
role,
|
||||
channel,
|
||||
guest_message_id,
|
||||
created_at
|
||||
)
|
||||
SELECT
|
||||
v_conversation_id,
|
||||
CASE WHEN is_ai THEN 'assistant' ELSE 'user' END,
|
||||
CASE WHEN NOT is_ai THEN p_user_id ELSE NULL END,
|
||||
content,
|
||||
CASE WHEN is_ai THEN 'assistant' ELSE 'user' END,
|
||||
'chat',
|
||||
id,
|
||||
created_at
|
||||
FROM guest_messages
|
||||
WHERE guest_id = p_guest_id
|
||||
ORDER BY created_at;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
Reference in New Issue
Block a user