const territoryKeys = [ 'province_id', 'district_id', 'admin_post_id', 'locality_id', ]; /** No fallback scope: an explicit empty path means all; a selected path replaces its old descendants. */ export function territorialSearchParams( entries: Iterable<[string, FormDataEntryValue]>, path?: { id: string; location_type: string }[], ): URLSearchParams { const params = new URLSearchParams(); for (const [key, value] of entries) if (typeof value === 'string' && value !== '' && key !== 'page') params.set(key, value); if (path) { territoryKeys.forEach((key) => params.delete(key)); for (const node of path) { const key = `${node.location_type}_id`; if (territoryKeys.includes(key)) params.set(key, node.id); } } return params; }