interface FlowNodeMapping {
  formId?: string;
  formMapping?: {
    departmentField?: string;
    fillToForm?: boolean;
  };
}

export function getFormMappingDepartmentFields(flowNodes: Record<string, FlowNodeMapping> | undefined, formId: string | undefined): string[] {
  if (!flowNodes || !formId) return [];
  return [
    ...new Set(
      Object.values(flowNodes)
        .filter((node) => node?.formMapping?.fillToForm && (!node.formId || node.formId === formId))
        .map((node) => node.formMapping?.departmentField)
        .filter((field): field is string => typeof field === 'string' && !!field),
    ),
  ];
}
