/**
 * 平台适配器基类
 * 
 * 所有商城平台的适配器必须继承此类并实现关键方法。
 * 适配器负责将不同平台的数转换为LiteMall通用格式。
 */

class PlatformAdapter {
  constructor(meta) {
    this.name = meta.name;           // 唯一标识符: 'crmeB', 'shopxo', 'likeshop'
    this.label = meta.label;         // 显示名称: 'CRMEB标准版'
    this.version = meta.version || '1.0';  // 适配器版本
    this.platformVersion = meta.platformVersion || '*'; // 支持的平台版本
    this.description = meta.description || '';
    this.icon = meta.icon || '📦';
    
    // 支持的输入格式
    this.formats = meta.formats || ['sql', 'json'];
  }

  /**
   * 检测输入数据是否来自此平台
   * @param {Object} input - { type: 'sql'|'json', content: string }
   * @returns {number} 0-1 的匹配度
   */
  detect(input) {
    return 0;
  }

  /**
   * 将平台数据转换为LiteMall通用格式
   * @param {Object} input - { type: 'sql'|'json', content: string }
   * @returns {Object} { manifest, data } 通用格式
   */
  async convert(input) {
    throw new Error(`[${this.name}] 未实现 convert() 方法`);
  }

  /**
   * 获取从该平台导出的帮助说明
   * @returns {string} HTML格式的帮助文本
   */
  getHelp() {
    return `<p>暂无该平台的导出帮助文档</p>`;
  }

  /**
   * 获取支持的字段映射
   * @returns {Object} 字段映射表
   */
  getFieldMap() {
    return {};
  }
}

module.exports = PlatformAdapter;
