/**
 * getList 请求前对 payload 做格式校验
 * 数值型：非法值不传入后端
 * 地址型：自然语言转结构化可能返回 [{ value, label }]，与手动结构化查询的 code 数组对齐
 */
import { extractAddressCode, isAddressType } from './display/address-display-utils';
import { isNumericColumnType, filterValueForNumericColumn } from './numeric-column-value';
/**
 * 地址筛选入参与后端约定为 code 数组（与结构化查询 token.value 形态一致）
 */
function filterValueForAddressColumn(value) {
    if (value === undefined)
        return undefined;
    const codes = extractAddressCode(value);
    if (codes === undefined || codes === '')
        return undefined;
    if (Array.isArray(codes))
        return codes;
    return [codes];
}
/**
 * 按组件类型校验 / 规范化 value，其余原样返回
 * @param columnType - 组件类型
 * @param value - 原始值
 * @returns 数值型非法则返回 undefined（调用方跳过该参数），否则返回规范化后的 value
 */
export function filterValueForGetList(columnType, value) {
    if (value === undefined)
        return undefined;
    if (columnType == null)
        return value;
    if (isNumericColumnType(columnType)) {
        return filterValueForNumericColumn(value);
    }
    if (isAddressType(columnType)) {
        return filterValueForAddressColumn(value);
    }
    return value;
}
