Ctrl K
ComunidadGuías…

deploy/migrations/0113_bot_api_inline_callbacks.up.sql

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
ALTER TABLE public.bot_api_updates
    ADD COLUMN callback_inline_dc_id integer NOT NULL DEFAULT 0,
    ADD COLUMN callback_inline_owner_id bigint NOT NULL DEFAULT 0,
    ADD COLUMN callback_inline_message_id integer NOT NULL DEFAULT 0,
    ADD COLUMN callback_inline_access_hash bigint NOT NULL DEFAULT 0;

ALTER TABLE public.bot_api_updates
    DROP CONSTRAINT bot_api_updates_callback_shape_check,
    DROP CONSTRAINT bot_api_updates_peer_type_check,
    DROP CONSTRAINT bot_api_updates_peer_id_check,
    DROP CONSTRAINT bot_api_updates_message_id_check;

ALTER TABLE public.bot_api_updates
    ADD CONSTRAINT bot_api_updates_peer_type_check CHECK (
        peer_type IN ('user', 'channel')
        OR (update_kind = 'callback_query' AND peer_type = '')
    ),
    ADD CONSTRAINT bot_api_updates_peer_id_check CHECK (
        peer_id > 0
        OR (update_kind = 'callback_query' AND peer_id = 0)
    ),
    ADD CONSTRAINT bot_api_updates_message_id_check CHECK (
        message_id > 0
        OR (update_kind = 'callback_query' AND message_id = 0)
    ),
    ADD CONSTRAINT bot_api_updates_callback_shape_check CHECK (
        (update_kind = 'callback_query'
            AND callback_query_id <> 0
            AND callback_user_id > 0
            AND callback_chat_instance <> 0
            AND COALESCE(octet_length(callback_data), 0) <= 64
            AND source_pts = 0
            AND (
                (peer_type IN ('user', 'channel') AND peer_id > 0 AND message_id > 0
                    AND callback_inline_dc_id = 0 AND callback_inline_owner_id = 0
                    AND callback_inline_message_id = 0 AND callback_inline_access_hash = 0)
                OR
                (peer_type = '' AND peer_id = 0 AND message_id = 0
                    AND callback_inline_dc_id > 0 AND callback_inline_owner_id > 0
                    AND callback_inline_message_id > 0 AND callback_inline_access_hash <> 0)
            ))
        OR
        (update_kind IN ('message', 'edited_message')
            AND peer_type IN ('user', 'channel') AND peer_id > 0 AND message_id > 0
            AND callback_query_id = 0 AND callback_user_id = 0
            AND callback_chat_instance = 0 AND callback_data IS NULL
            AND callback_inline_dc_id = 0 AND callback_inline_owner_id = 0
            AND callback_inline_message_id = 0 AND callback_inline_access_hash = 0)
    );