owpengram-server/deploy/migrations/20260907000001_user_update_events_notify_settings.up.sql
2026-09-07 09:31:06 +03:00

21 lines
1.6 KiB
SQL

-- Adds 'notify_settings' to the allow-list: account.updateNotifySettings for a specific
-- peer (the common "mute this chat" action) now records a durable user_update_events row
-- (see RecordNotifySettings) so another of the account's sessions picks up the mute via
-- getDifference/live dispatch instead of only the account's own best-effort push, which is
-- lost if that other session isn't connected at that exact instant. Without this entry the
-- INSERT fails the CHECK constraint and the whole RPC returns 500 INTERNAL_SERVER_ERROR.
ALTER TABLE public.user_update_events DROP CONSTRAINT IF EXISTS user_update_events_type_check;
ALTER TABLE public.user_update_events ADD CONSTRAINT user_update_events_type_check CHECK (
(event_type)::text = ANY (ARRAY[
'new_message', 'read_history_inbox', 'read_history_outbox', 'read_message_contents',
'edit_message', 'web_page', 'message_reactions', 'message_poll', 'draft_message', 'quick_replies',
'new_quick_reply', 'delete_quick_reply', 'quick_reply_message', 'delete_quick_reply_messages',
'contacts_reset', 'dialog_pinned', 'pinned_dialogs', 'pinned_messages', 'dialog_unread_mark',
'peer_settings', 'notify_settings', 'peer_story_blocked', 'user_phone', 'user_emoji_status',
'delete_messages', 'dialog_filter', 'dialog_filter_order', 'dialog_filters', 'folder_peers',
'channel_view_forum_as_messages', 'channel_state',
'saved_dialog_pinned', 'pinned_saved_dialogs', 'story', 'read_stories',
'sent_story_reaction', 'new_story_reaction', 'noop',
'read_channel_discussion_inbox', 'read_channel_discussion_outbox'
]::text[])
);