/**
 * 从单条商品行抽取 OS CRUD 所需的 identity 子集。
 *
 * 字段优先级遵循 OS 协议（参考 packages/.../OrderModule.getProductIdentityIndex）：
 *  1. metadata.unique_identification_number 是协议权威主键（v2 schema 落到 metadata）
 *  2. unique_identification_number 顶层（兼容历史调用入参）
 *  3. identity_key（已 deprecated，仅旧缓存兼容）
 *  4. product_option_item / product_bundle 参与组合匹配（同 SKU 多行场景）
 *
 * 不发明等价关系（遵循 .cursor/rules/data-field-semantics.mdc）。
 */
export function pickIdentity(line) {
  var _ref, _line$metadata$unique, _line$metadata;
  var uid = (_ref = (_line$metadata$unique = (_line$metadata = line.metadata) === null || _line$metadata === void 0 ? void 0 : _line$metadata.unique_identification_number) !== null && _line$metadata$unique !== void 0 ? _line$metadata$unique : line.unique_identification_number) !== null && _ref !== void 0 ? _ref : line.identity_key;
  var identity = {
    product_id: line.product_id,
    product_variant_id: line.product_variant_id
  };
  if (uid !== undefined && uid !== null && uid !== '') {
    identity.unique_identification_number = String(uid);
  }
  if (line.identity_key !== undefined) {
    identity.identity_key = line.identity_key;
  }
  if (Array.isArray(line.product_option_item)) {
    identity.product_option_item = line.product_option_item;
  }
  if (Array.isArray(line.product_bundle)) {
    identity.product_bundle = line.product_bundle;
  }
  return identity;
}