All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI / changes (pull_request) Successful in 9s
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 1m48s
Contact capture (phone + consent) from estimate result / landing page. New trade_in_leads table (migration 172), estimate_id FK validated before insert (404 if unknown). Notification (Telegram/email) intentionally out of scope — no existing SMTP/Telegram integration anywhere in the codebase (same gap as pilot.py's TODO).
29 lines
1.7 KiB
PL/PgSQL
29 lines
1.7 KiB
PL/PgSQL
-- 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;
|