-- Migration: trade_in_leads — контактные заявки с результата оценки (issue #2376, -- sub-issue родителя #1971 "лидогенерация"). Пользователь оставляет телефон на -- странице результата (или лендинге) с явным согласием на обработку персональных -- данных. Уведомление (Telegram/email) сюда НЕ входит — нет существующей -- SMTP/Telegram интеграции в коде (подтверждено), только persist + log; -- notified_at зарезервирован под будущую доставку. BEGIN; CREATE TABLE IF NOT EXISTS trade_in_leads ( id uuid PRIMARY KEY DEFAULT gen_random_uuid(), estimate_id uuid REFERENCES trade_in_estimates(id) ON DELETE SET NULL, phone text NOT NULL, consent boolean NOT NULL, source text, -- 'result', 'landing' user_agent text, created_at timestamptz NOT NULL DEFAULT now(), notified_at timestamptz, -- когда/если ушло уведомление (пока не используется) CONSTRAINT trade_in_leads_consent_required CHECK (consent IS TRUE) ); CREATE INDEX IF NOT EXISTS trade_in_leads_created_idx ON trade_in_leads (created_at DESC); CREATE INDEX IF NOT EXISTS trade_in_leads_estimate_idx ON trade_in_leads (estimate_id); COMMENT ON TABLE trade_in_leads IS '#2376 лид с контактом с результата оценки trade-in; notified_at зарезервирован под будущую Telegram/email-интеграцию (не реализована).'; COMMIT;