lead-to-policy/rebuild_city_state_from_branches.sql
Bhanu Prakash Sai Potteri 66d4c91f32 Initial import of lead-to-policy (dev env)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 15:28:12 +05:30

66 lines
2.5 KiB
PL/PgSQL

-- Rebuild the State + City datasets from tbl_branches so every captured city is
-- always assignable (Create Lead → Assign cascade dependency).
--
-- App 385. Cities dataset=264, States dataset=265. City field=46815, State field=46814.
--
-- WHY: Assign Lead's region cascade matches assign_city == tbl_branches.city (city
-- NAMES), then owner agent by region. So the city captured at Create Lead must be a
-- branch city name. We therefore (a) source the City/State option lists straight from
-- tbl_branches, and (b) store the city NAME as the value (value_key=city), not city_id.
--
-- Datasets are read live from tbl_datasets (no redeploy needed for the data). The field
-- property changes live in the deployed workflow config, so REDEPLOY the version after
-- running this. Re-runnable: deterministic full rebuild from the current branches.
BEGIN;
-- Cities dataset ← distinct (state_name, city) from branches. keys: state, city.
UPDATE tbl_datasets
SET keys = '["state","city"]'::jsonb,
items = (
SELECT COALESCE(
jsonb_agg(jsonb_build_object('state', state_name, 'city', city) ORDER BY state_name, city),
'[]'::jsonb)
FROM (SELECT DISTINCT state_name, city FROM lead_to_policy.tbl_branches) t
),
updated_at = now()
WHERE id = 264;
-- States dataset ← distinct state_name from branches. key: state.
UPDATE tbl_datasets
SET keys = '["state"]'::jsonb,
items = (
SELECT COALESCE(
jsonb_agg(jsonb_build_object('state', state_name) ORDER BY state_name),
'[]'::jsonb)
FROM (SELECT DISTINCT state_name FROM lead_to_policy.tbl_branches) t
),
updated_at = now()
WHERE id = 265;
-- City field (46815): store the city NAME so it matches tbl_branches.city in the
-- Assign region cascade (and displays correctly).
UPDATE workflow.tbl_wf_fields
SET properties = jsonb_set(
jsonb_set(properties, '{value_key}', '"city"'::jsonb),
'{dataset_keys}', '["state","city"]'::jsonb)
WHERE id = 46815;
-- State field (46814): value + label + keys all on `state`.
UPDATE workflow.tbl_wf_fields
SET properties = jsonb_set(
jsonb_set(
jsonb_set(properties, '{value_key}', '"state"'::jsonb),
'{display_keys}', '["state"]'::jsonb),
'{dataset_keys}', '["state"]'::jsonb)
WHERE id = 46814;
-- Verify
SELECT id, name, jsonb_array_length(items) AS rows, keys FROM tbl_datasets WHERE id IN (264,265);
SELECT id, field_s_id,
properties->>'value_key' AS value_key,
properties->'display_keys' AS display_keys
FROM workflow.tbl_wf_fields WHERE id IN (46814,46815);
COMMIT;