45 lines
1.4 KiB
PL/PgSQL
45 lines
1.4 KiB
PL/PgSQL
-- Cascade: City filtered by State on Add Lead activity (app 385)
|
|
-- Activity 26398, workflow_version 29852 (config row id 405)
|
|
-- State field = state_region_input (-> States dataset, value_key=state)
|
|
-- City field = city_input (-> Cities dataset, display=city, value=city_id)
|
|
--
|
|
-- Appends a filter_options rule to City: show only Cities rows where
|
|
-- Cities.state == current value of the State field.
|
|
-- Idempotent: skips if a rule with id 'rule_city_by_state' already exists.
|
|
|
|
BEGIN;
|
|
|
|
UPDATE workflow.tbl_wf_activity_ui_config
|
|
SET field_rules = COALESCE(field_rules, '[]'::jsonb) || '[
|
|
{
|
|
"id": "rule_city_by_state",
|
|
"action": "filter_options",
|
|
"active": true,
|
|
"conditions": null,
|
|
"action_value": null,
|
|
"target_field": "city_input",
|
|
"filter_config": {
|
|
"logic": "AND",
|
|
"conditions": [
|
|
{
|
|
"operator": "equals",
|
|
"form_field": "state_region_input",
|
|
"target_column": "state",
|
|
"source_value_key": ""
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]'::jsonb,
|
|
updated_at = now()
|
|
WHERE activity_id = 26398
|
|
AND workflow_version_id = 29852
|
|
AND NOT COALESCE(field_rules, '[]'::jsonb) @> '[{"id": "rule_city_by_state"}]'::jsonb;
|
|
|
|
-- Verify (expect the new rule present)
|
|
SELECT id, activity_id, jsonb_pretty(field_rules) AS field_rules
|
|
FROM workflow.tbl_wf_activity_ui_config
|
|
WHERE activity_id = 26398 AND workflow_version_id = 29852;
|
|
|
|
COMMIT;
|