/**
 * lookup 搜索配置更新来源。
 * - `hydrate`：页面初始化回填（如 setAllViews 后）
 * - `create`：新增引用字段
 * - `update`：编辑引用字段（通常是标题/描述等）
 * - `delete`：删除引用字段
 */
export type LookupFieldConfigUpdateSource = 'hydrate' | 'create' | 'update' | 'delete';
/**
 * 引用字段在子表配置接口中返回的 model DSL 结构。
 * 该结构会在 CnAiFilter 中被转换为 Formily 字段配置。
 */
export interface LookupFieldModelDsl {
    /** 组件类型，例如 `CnInput` / `CnSelect` */
    type?: string;
    /** 组件属性透传 */
    props?: Record<string, unknown>;
    /** 兼容额外 DSL 字段 */
    [key: string]: unknown;
}
/**
 * 单个引用字段用于搜索链路的标准配置。
 */
export interface LookupFieldSearchConfig {
    /** 当前引用字段在主表中的列 code（唯一标识） */
    columnCode: string;
    /** 引用字段显示名（主表列名） */
    fieldName: string;
    /** 子表标识（join 的 table key） */
    sourceTableId: string;
    /** 子表显示名（可选） */
    sourceTableName?: string;
    /** 子表字段标识（join 条件字段） */
    targetFieldCode: string;
    /** 子表字段显示名（可选） */
    targetFieldName?: string;
    /** 是否可参与 CnAiFilter 搜索 */
    canSearch?: boolean;
    /** 字段渲染 DSL（用于构建 Formily schema） */
    model?: LookupFieldModelDsl;
}
/**
 * 引用字段搜索配置集合。
 * key 为 `columnCode`，value 为对应配置。
 */
export type LookupFieldSearchConfigMap = Record<string, LookupFieldSearchConfig>;
/**
 * 通过事件总线同步给 CnAiFilter 的 payload 契约。
 */
export interface LookupFieldSearchConfigUpdatePayload {
    /** 最新 lookup 搜索配置快照 */
    lookupSearchConfigs: LookupFieldSearchConfigMap;
    /** 本次变化来源 */
    source: LookupFieldConfigUpdateSource;
    /** 版本号（时间戳），用于消费侧幂等/去抖 */
    revision: number;
}
