feat(messages): sync saved message tags
This commit is contained in:
parent
a785ae7491
commit
6b3eba6c5d
42 changed files with 1581 additions and 551 deletions
|
|
@ -2892,7 +2892,7 @@ CREATE TABLE public.user_saved_reaction_tags (
|
|||
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
||||
updated_at timestamp with time zone DEFAULT now() NOT NULL,
|
||||
CONSTRAINT user_saved_reaction_tags_reaction_count_check CHECK ((reaction_count >= 0)),
|
||||
CONSTRAINT user_saved_reaction_tags_reaction_type_check CHECK (((reaction_type)::text = 'emoji'::text)),
|
||||
CONSTRAINT user_saved_reaction_tags_reaction_type_check CHECK (((reaction_type)::text = ANY (ARRAY['emoji'::text, 'custom_emoji'::text]))),
|
||||
CONSTRAINT user_saved_reaction_tags_reaction_value_check CHECK ((reaction_value <> ''::text)),
|
||||
CONSTRAINT user_saved_reaction_tags_title_check CHECK ((char_length(title) <= 12))
|
||||
);
|
||||
|
|
@ -2948,7 +2948,7 @@ CREATE TABLE public.user_update_events (
|
|||
story_payload jsonb DEFAULT '{}'::jsonb NOT NULL,
|
||||
reaction_payload jsonb DEFAULT '{}'::jsonb NOT NULL,
|
||||
CONSTRAINT user_update_events_peer_type_check CHECK (((peer_type IS NULL) OR ((peer_type)::text = ANY (ARRAY[('user'::character varying)::text, ('channel'::character varying)::text])))),
|
||||
CONSTRAINT user_update_events_type_check CHECK (((event_type)::text = ANY (ARRAY[('new_message'::character varying)::text, ('read_history_inbox'::character varying)::text, ('read_history_outbox'::character varying)::text, ('read_message_contents'::character varying)::text, ('edit_message'::character varying)::text, ('message_reactions'::character varying)::text, ('message_poll'::character varying)::text, ('draft_message'::character varying)::text, ('quick_replies'::character varying)::text, ('new_quick_reply'::character varying)::text, ('delete_quick_reply'::character varying)::text, ('quick_reply_message'::character varying)::text, ('delete_quick_reply_messages'::character varying)::text, ('contacts_reset'::character varying)::text, ('dialog_pinned'::character varying)::text, ('pinned_dialogs'::character varying)::text, ('pinned_messages'::character varying)::text, ('dialog_unread_mark'::character varying)::text, ('peer_settings'::character varying)::text, ('peer_story_blocked'::character varying)::text, ('delete_messages'::character varying)::text, ('dialog_filter'::character varying)::text, ('dialog_filter_order'::character varying)::text, ('dialog_filters'::character varying)::text, ('folder_peers'::character varying)::text, ('channel_available_messages'::character varying)::text, ('channel_view_forum_as_messages'::character varying)::text, ('channel_state'::character varying)::text, ('saved_dialog_pinned'::character varying)::text, ('pinned_saved_dialogs'::character varying)::text, ('story'::character varying)::text, ('read_stories'::character varying)::text, ('sent_story_reaction'::character varying)::text, ('new_story_reaction'::character varying)::text, ('noop'::character varying)::text])))
|
||||
CONSTRAINT user_update_events_type_check CHECK (((event_type)::text = ANY (ARRAY[('new_message'::character varying)::text, ('read_history_inbox'::character varying)::text, ('read_history_outbox'::character varying)::text, ('read_message_contents'::character varying)::text, ('edit_message'::character varying)::text, ('message_poll'::character varying)::text, ('draft_message'::character varying)::text, ('quick_replies'::character varying)::text, ('new_quick_reply'::character varying)::text, ('delete_quick_reply'::character varying)::text, ('quick_reply_message'::character varying)::text, ('delete_quick_reply_messages'::character varying)::text, ('contacts_reset'::character varying)::text, ('dialog_pinned'::character varying)::text, ('pinned_dialogs'::character varying)::text, ('pinned_messages'::character varying)::text, ('dialog_unread_mark'::character varying)::text, ('peer_settings'::character varying)::text, ('peer_story_blocked'::character varying)::text, ('delete_messages'::character varying)::text, ('dialog_filter'::character varying)::text, ('dialog_filter_order'::character varying)::text, ('dialog_filters'::character varying)::text, ('folder_peers'::character varying)::text, ('channel_available_messages'::character varying)::text, ('channel_view_forum_as_messages'::character varying)::text, ('channel_state'::character varying)::text, ('saved_dialog_pinned'::character varying)::text, ('pinned_saved_dialogs'::character varying)::text, ('story'::character varying)::text, ('read_stories'::character varying)::text, ('sent_story_reaction'::character varying)::text, ('new_story_reaction'::character varying)::text, ('noop'::character varying)::text])))
|
||||
);
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ ALTER TABLE public.user_update_events DROP CONSTRAINT IF EXISTS user_update_even
|
|||
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',
|
||||
'edit_message', 'web_page', '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', 'peer_story_blocked', 'user_phone', 'user_emoji_status',
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
DROP TABLE IF EXISTS public.saved_message_reaction_tags;
|
||||
|
||||
ALTER TABLE public.user_saved_reaction_tags
|
||||
DROP CONSTRAINT IF EXISTS user_saved_reaction_tags_reaction_type_check;
|
||||
DELETE FROM public.user_saved_reaction_tags
|
||||
WHERE (reaction_type)::text <> 'emoji'::text;
|
||||
ALTER TABLE public.user_saved_reaction_tags
|
||||
ADD CONSTRAINT user_saved_reaction_tags_reaction_type_check
|
||||
CHECK ((reaction_type)::text = 'emoji'::text);
|
||||
33
deploy/migrations/0148_saved_message_reaction_tags.up.sql
Normal file
33
deploy/migrations/0148_saved_message_reaction_tags.up.sql
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
CREATE TABLE public.saved_message_reaction_tags (
|
||||
user_id bigint NOT NULL,
|
||||
message_box_id integer NOT NULL,
|
||||
reaction_type character varying(16) NOT NULL,
|
||||
reaction_value text NOT NULL,
|
||||
chosen_order integer NOT NULL,
|
||||
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
||||
updated_at timestamp with time zone DEFAULT now() NOT NULL,
|
||||
CONSTRAINT saved_message_reaction_tags_pkey
|
||||
PRIMARY KEY (user_id, message_box_id, reaction_type, reaction_value),
|
||||
CONSTRAINT saved_message_reaction_tags_order_check CHECK (chosen_order > 0),
|
||||
CONSTRAINT saved_message_reaction_tags_type_check
|
||||
CHECK ((reaction_type)::text = ANY (ARRAY['emoji'::text, 'custom_emoji'::text])),
|
||||
CONSTRAINT saved_message_reaction_tags_value_check CHECK (reaction_value <> ''),
|
||||
CONSTRAINT saved_message_reaction_tags_user_id_fkey
|
||||
FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE,
|
||||
CONSTRAINT saved_message_reaction_tags_message_box_fkey
|
||||
FOREIGN KEY (user_id, message_box_id)
|
||||
REFERENCES public.message_boxes(owner_user_id, box_id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX saved_message_reaction_tags_reaction_message_idx
|
||||
ON public.saved_message_reaction_tags
|
||||
(user_id, ((reaction_type)::text || ':' || reaction_value), message_box_id DESC);
|
||||
|
||||
ALTER TABLE public.user_saved_reaction_tags
|
||||
DROP CONSTRAINT user_saved_reaction_tags_reaction_type_check;
|
||||
ALTER TABLE public.user_saved_reaction_tags
|
||||
ADD CONSTRAINT user_saved_reaction_tags_reaction_type_check
|
||||
CHECK ((reaction_type)::text = ANY (ARRAY['emoji'::text, 'custom_emoji'::text]));
|
||||
|
||||
COMMENT ON COLUMN public.user_saved_reaction_tags.reaction_count IS
|
||||
'Legacy unused column; visible counts are aggregated from saved_message_reaction_tags.';
|
||||
Loading…
Add table
Add a link
Reference in a new issue