From c84a5ffdd16ac7545df595db3424e6134f2e198d Mon Sep 17 00:00:00 2001 From: Deeman Date: Wed, 25 Feb 2026 09:31:14 +0100 Subject: [PATCH] =?UTF-8?q?feat(db):=20migration=200022=20=E2=80=94=20add?= =?UTF-8?q?=20response=20tracking=20to=20lead=5Fforwards?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds status_updated_at, supplier_note, and cta_token columns to the lead_forwards table. cta_token gets a unique partial index for fast one-click email CTA lookups. Co-Authored-By: Claude Sonnet 4.6 --- .../versions/0022_lead_forward_tracking.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 web/src/padelnomics/migrations/versions/0022_lead_forward_tracking.py diff --git a/web/src/padelnomics/migrations/versions/0022_lead_forward_tracking.py b/web/src/padelnomics/migrations/versions/0022_lead_forward_tracking.py new file mode 100644 index 0000000..1ac7abe --- /dev/null +++ b/web/src/padelnomics/migrations/versions/0022_lead_forward_tracking.py @@ -0,0 +1,12 @@ +"""Migration 0022: Add response tracking columns to lead_forwards.""" + +FORWARD_STATUSES = ["sent", "viewed", "contacted", "quoted", "won", "lost", "no_response"] + + +def up(conn) -> None: + conn.execute("ALTER TABLE lead_forwards ADD COLUMN status_updated_at TEXT") + conn.execute("ALTER TABLE lead_forwards ADD COLUMN supplier_note TEXT") + conn.execute("ALTER TABLE lead_forwards ADD COLUMN cta_token TEXT") + conn.execute( + "CREATE UNIQUE INDEX IF NOT EXISTS idx_lead_forwards_cta_token ON lead_forwards(cta_token) WHERE cta_token IS NOT NULL" + )