-- 188_tg_support_chat_id_scope.sql
-- Симметричная колонка для web_support_messages.support_chat_id (см.
-- data/sql/187_web_support_chat.sql — полный разбор проблемы в блоке "CROSS-TABLE
-- КОЛЛИЗИЯ topic_message_id" там же).
--
-- ПОЧЕМУ ОТДЕЛЬНАЯ МИГРАЦИЯ, А НЕ ПРАВКА 186:
--   tg_support_messages создана в data/sql/186_tg_support.sql — миграция, которая
--   к моменту написания этого файла уже смержена в main отдельным PR (#2526) и,
--   по конвенции проекта (deploy-tradein.yml применяет каждый data/sql/*.sql РОВНО
--   ОДИН РАЗ по bare filename через _schema_migrations), скорее всего уже
--   применена на проде. Редактирование СОДЕРЖИМОГО уже применённого файла НЕ
--   долетает до прода повторным прогоном — прод просто пропустит файл с тем же
--   именем. Единственный корректный способ добавить колонку в уже существующую
--   таблицу — новый ALTER-файл.
--
-- ЧТО: tg_support_messages.support_chat_id bigint (nullable) — TELEGRAM_SUPPORT_
-- CHAT_ID в момент записи 'in'-сообщения. bridge.py.find_chat_by_topic_message
-- матчит (support_chat_id, topic_message_id) вместо topic_message_id в одиночку;
-- NULL (все строки ДО этой миграции) — лениентный wildcard-матч, т.к. до
-- появления этой колонки действовал ровно один support-чат за раз.
--
-- Бэкфилл существующих строк текущим TELEGRAM_SUPPORT_CHAT_ID НЕ делаем: значение
-- живёт в Python `settings`/env, разное на каждом окружении (dev/staging/prod), а
-- plain-SQL миграция не имеет доступа к процессным env vars — хардкодить
-- конкретный chat_id в SQL-файл было бы хрупко и окружение-специфично. NULL
-- (wildcard) для существующих строк — безопасный дефолт: они писались, когда
-- support-чат был ровно один, коллизии из-за смены чата у НИХ по определению
-- невозможны (см. 187 — только смена чата ПОСЛЕ появления этой колонки создаёт
-- сценарий, который она защищает).
--
-- IDEMPOTENCY: ADD COLUMN IF NOT EXISTS — безопасный re-run. Не трогает
-- существующие данные/constraints tg_support_messages.

BEGIN;

ALTER TABLE tg_support_messages ADD COLUMN IF NOT EXISTS support_chat_id bigint;

COMMENT ON COLUMN tg_support_messages.support_chat_id IS 'TELEGRAM_SUPPORT_CHAT_ID в момент записи ''in''-сообщения — скоупит резолв topic_message_id к ТЕКУЩЕЙ support-группе (review M1, см. data/sql/187_web_support_chat.sql). NULL — строки до этой колонки (лениентный wildcard-матч).';

COMMIT;
