/**
 * 将 EntityMetaData 转换为 DataDictItem
 * @param entityMetaData 实体元数据数组
 * @returns 转换后的数据字典数组
 */
export function convertDataDict(entityMetaData) {
    return entityMetaData.map((entity) => {
        const dataDictItem = {
            displayName: entity.entityChineseKey || entity.entityKey,
            columnName: entity.entityKey,
            columnType: entity.entityType,
        };
        // 如果有枚举字典，转换为 options
        if (entity.enumDicts && entity.enumDicts.length > 0) {
            dataDictItem.options = entity.enumDicts.map((enumItem) => {
                // 处理不同的枚举格式
                if (typeof enumItem === 'object') {
                    // 如果已经是对象格式，直接使用
                    if (enumItem.label !== undefined && enumItem.value !== undefined) {
                        return {
                            label: enumItem.label,
                            value: enumItem.value,
                            ...enumItem,
                        };
                    }
                    // 如果是 { key, value } 格式
                    if (enumItem.key !== undefined && enumItem.value !== undefined) {
                        return {
                            label: enumItem.key,
                            value: enumItem.value,
                            ...enumItem,
                        };
                    }
                }
                // 如果是字符串或其他格式，尝试转换
                return {
                    label: String(enumItem),
                    value: enumItem,
                };
            });
        }
        return dataDictItem;
    });
}
