-- Исправление триггера notify_new_message для использования правильной схемы notifications -- Проблема: триггер использует content и reference_id вместо data (jsonb) -- Удаляем старый триггер и функцию DROP TRIGGER IF EXISTS notify_new_message_trigger ON messages; DROP FUNCTION IF EXISTS notify_new_message(); -- Создаём новую функцию с правильной схемой CREATE OR REPLACE FUNCTION notify_new_message() RETURNS TRIGGER AS $$ DECLARE recipient_id UUID; BEGIN -- Определяем получателя сообщения (второго участника матча) SELECT CASE WHEN m.user_id_1 = NEW.sender_id THEN m.user_id_2 ELSE m.user_id_1 END INTO recipient_id FROM matches m WHERE m.id = NEW.match_id; -- Создаём уведомление с правильной структурой (data jsonb) IF recipient_id IS NOT NULL THEN INSERT INTO notifications (user_id, type, data, created_at) VALUES ( recipient_id, 'new_message', jsonb_build_object( 'message_id', NEW.id, 'match_id', NEW.match_id, 'sender_id', NEW.sender_id, 'content_preview', LEFT(NEW.content, 50) ), NOW() ); END IF; RETURN NEW; END; $$ LANGUAGE plpgsql; -- Создаём триггер заново CREATE TRIGGER notify_new_message_trigger AFTER INSERT ON messages FOR EACH ROW EXECUTE FUNCTION notify_new_message(); -- Проверка SELECT 'Trigger notify_new_message fixed successfully' AS status;