import type { ProductAttributeSchema } from '@atlas/contracts'; type AttributeDefinition = Omit; type EditorField = Exclude; /** Ozon 固定属性 ID 到编辑器内建字段的唯一映射,不使用任何名称或翻译文本判断。 */ const editorFieldByAttributeId: Readonly> = { '85': 'brand', '9048': 'model', '8229': 'category', '23171': 'tags', '11254': 'rich_content', '4191': 'description', }; /** 仅依据 Ozon 属性 ID 将类目属性绑定到编辑器内建字段。 */ export function editorFieldForAttributeId( platformAttributeId: string, ): ProductAttributeSchema['editor_field'] { return editorFieldByAttributeId[platformAttributeId] ?? null; } /** 为数据库中的原始类目属性补充前端和校验共用的内建字段绑定。 */ export function bindEditorFields( definitions: AttributeDefinition[], ): ProductAttributeSchema[] { return definitions.map((definition) => ({ ...definition, editor_field: editorFieldForAttributeId( definition.platform_attribute_id, ), })); }