godcrm/scripts/add-review-status-column.sql
GOD CRM Release f89e074dd1
Some checks failed
CI / Lint / Typecheck / Test / Build (push) Has been cancelled
CI / PostgreSQL Integration Tests (push) Has been cancelled
GOD CRM — public scrubbed snapshot
Governed substrate for autonomous agents: scoped identity (passports),
audited actions, MCP workspace. Infra IPs and secrets redacted for public release.
2026-08-10 04:01:45 +03:00

52 lines
1.5 KiB
PL/PgSQL

-- ADR-156 Phase 5A Iteration 3: add `review_status` gate column to ADR widget
-- registry (table_id = 2197) so backend/routes/v3/bdd.js acceptance-confirm
-- gate can evaluate data.review_status.
--
-- Idempotent: safe to re-run. Architect spec:
-- column_name = review_status
-- type = select
-- display_name = Review
-- options (text) = JSON array of {value,label,color}
-- default_value = draft
-- order_index = 9 (spec said 8; position 8 is occupied by order_index column)
-- is_visible=1, is_required=0
--
-- `data` is jsonb → use jsonb concat (||) to backfill draft without clobbering.
BEGIN;
-- 1. Register the column (idempotent)
INSERT INTO table_columns (
table_id,
column_name,
display_name,
type,
options,
default_value,
order_index,
is_visible,
is_required
)
SELECT
2197,
'review_status',
'Review',
'select',
'[{"value":"draft","label":"Draft","color":"#6b7280"},{"value":"ready_for_review","label":"Ready for Review","color":"#f59e0b"},{"value":"in_review","label":"In Review","color":"#3b82f6"},{"value":"approved","label":"Approved","color":"#22c55e"},{"value":"rejected","label":"Rejected","color":"#ef4444"}]',
'draft',
9,
1,
0
WHERE NOT EXISTS (
SELECT 1 FROM table_columns
WHERE table_id = 2197 AND column_name = 'review_status'
);
-- 2. Backfill review_status=draft for rows that don't already have it
UPDATE table_rows
SET data = data || '{"review_status":"draft"}'::jsonb,
updated_at = CURRENT_TIMESTAMP
WHERE table_id = 2197
AND NOT (data ? 'review_status');
COMMIT;