From 9475684c066acdc7b637843b1d4846c1d2ac1736 Mon Sep 17 00:00:00 2001 From: adm01-debug Date: Thu, 21 May 2026 21:35:43 -0300 Subject: [PATCH] feat(db): add inbound_webhook_events.contract_version column (default '1') Required by webhook-inbound handler migrated in #45. Stores the contract version negotiated via accept-version header. Default '1' for compat with all existing rows and unversioned clients. Closes #49 --- ...ract_version_to_inbound_webhook_events.sql | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 supabase/migrations/20260522001000_add_contract_version_to_inbound_webhook_events.sql diff --git a/supabase/migrations/20260522001000_add_contract_version_to_inbound_webhook_events.sql b/supabase/migrations/20260522001000_add_contract_version_to_inbound_webhook_events.sql new file mode 100644 index 000000000..6a59bd1dd --- /dev/null +++ b/supabase/migrations/20260522001000_add_contract_version_to_inbound_webhook_events.sql @@ -0,0 +1,31 @@ +-- contracts/05 — adiciona inbound_webhook_events.contract_version +-- +-- Necessário para o handler `webhook-inbound` migrado em #45 conseguir gravar +-- a versão de contrato negociada (default '1' para compat). +-- +-- Risco: baixo. ALTER TABLE com DEFAULT em coluna nova é metadata-only no PG12+. +-- A coluna recebe '1' automaticamente em todas as linhas existentes via DEFAULT, +-- sem rewrite da tabela. + +BEGIN; + +ALTER TABLE public.inbound_webhook_events + ADD COLUMN IF NOT EXISTS contract_version text NOT NULL DEFAULT '1'; + +COMMENT ON COLUMN public.inbound_webhook_events.contract_version IS + 'Versão de contrato negociada via header accept-version. Default 1 (compat com payloads legados).'; + +-- Sanity check: deve existir após o ALTER +DO $$ +BEGIN + IF NOT EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = 'public' + AND table_name = 'inbound_webhook_events' + AND column_name = 'contract_version' + ) THEN + RAISE EXCEPTION 'contracts/05 migration: contract_version column was not created'; + END IF; +END $$; + +COMMIT;