66 lines
2.5 KiB
PL/PgSQL
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;
|