43 lines
1.8 KiB
PL/PgSQL
43 lines
1.8 KiB
PL/PgSQL
-- Cleanup phantom Schedule-page agents (app 385, sandbox)
|
|
-- Junk test rows where owner_agent is a bare placeholder string instead of {id,name}.
|
|
-- Effect: nulls owner_agent -> these leads collapse into "Unassigned" on the Schedule page.
|
|
-- Affected instances: 4489 (Sandy), 4490 (Alex), 4502 (Owner Agent), 4511/4512 (Owner Agent*)
|
|
--
|
|
-- NOTE: recordview reads from the denormalized companion table
|
|
-- tbl_wf_385_lead_to_policy, which is kept in sync only via the app write path.
|
|
-- A raw UPDATE to tbl_appdata_workflow_instances does NOT propagate, so we must
|
|
-- clean BOTH tables.
|
|
|
|
BEGIN;
|
|
|
|
-- Preview before committing
|
|
SELECT 'main' AS tbl, instance_id, data->'owner_agent' AS owner_agent
|
|
FROM public.tbl_appdata_workflow_instances
|
|
WHERE instance_id IN (4489, 4490, 4502, 4511, 4512)
|
|
UNION ALL
|
|
SELECT 'companion', instance_id, owner_agent
|
|
FROM public.tbl_wf_385_lead_to_policy
|
|
WHERE instance_id IN (4489, 4490, 4502, 4511, 4512);
|
|
|
|
-- 1. Main instance table: drop the bad owner_agent key (only bare-string placeholders)
|
|
UPDATE public.tbl_appdata_workflow_instances
|
|
SET data = data - 'owner_agent',
|
|
updated_at = now()
|
|
WHERE instance_id IN (4489, 4490, 4502, 4511, 4512)
|
|
AND jsonb_typeof(data->'owner_agent') = 'string';
|
|
|
|
-- 2. Companion recordview table: null out the bad owner_agent (only bare-string placeholders)
|
|
UPDATE public.tbl_wf_385_lead_to_policy
|
|
SET owner_agent = NULL
|
|
WHERE instance_id IN (4489, 4490, 4502, 4511, 4512)
|
|
AND jsonb_typeof(owner_agent) = 'string';
|
|
|
|
-- Verify (should return 0 rows)
|
|
SELECT 'main' AS tbl, instance_id FROM public.tbl_appdata_workflow_instances
|
|
WHERE instance_id IN (4489, 4490, 4502, 4511, 4512) AND data ? 'owner_agent'
|
|
UNION ALL
|
|
SELECT 'companion', instance_id FROM public.tbl_wf_385_lead_to_policy
|
|
WHERE instance_id IN (4489, 4490, 4502, 4511, 4512) AND owner_agent IS NOT NULL;
|
|
|
|
COMMIT;
|