/**
 * 商品服务 - 处理商品管理、克隆工具等
 * @module services/goods
 */
import request from '@/utils/request'

/**
 * 商品管理 API
 */
export const goodsApi = {
  /**
   * 获取商品列表
   * @param {Object} params - 查询参数
   * @param {String} params.keyword - 搜索关键词
   * @param {String} params.status - 商品状态
   * @param {Number} params.pageNum - 页码
   * @param {Number} params.pageSize - 每页数量
   * @returns {Promise<Object>} 商品列表
   */
  getList(params) {
    return request({
      url: '/zhishu/shopGoods/xcx',
      method: 'GET',
      data: params,
      loading: true
    })
  },

  /**
   * 获取商品详情
   * @param {String} id - 商品 ID
   * @returns {Promise<Object>} 商品详情
   */
  getDetail(id) {
    return request({
      url: `/zhishu/shopGoods/${id}`,
      method: 'GET'
    })
  },

  /**
   * 更新商品信息
   * @param {String} id - 商品 ID
   * @param {Object} data - 商品信息
   * @returns {Promise<Object>} 更新结果
   */
  update(id, data) {
    return request({
      url: `/zhishu/shopGoods/${id}`,
      method: 'PUT',
      data
    })
  },

  /**
   * 删除商品
   * @param {String} id - 商品 ID
   * @returns {Promise<Object>} 删除结果
   */
  delete(id) {
    return request({
      url: `/zhishu/shopGoods/${id}`,
      method: 'DELETE',
      loading: true
    })
  },

  /**
   * 批量更新孔网平台 ID
   * @param {Array} items - 更新项列表
   * @param {String} items[].goodsId - 商品 ID
   * @param {String} items[].kongfzId - 孔网 ID
   * @returns {Promise<Object>} 更新结果
   */
  batchUpdateKongfzId(items) {
    return request({
      url: '/zhishu/shopGoodsPublished/batchUpdateKfzPlatformId',
      method: 'POST',
      data: { items },
      loading: true
    })
  },

  /**
   * 商品上下架
   * @param {String} id - 商品 ID
   * @param {Number} status - 状态（1=上架, 0=下架）
   * @returns {Promise<Object>} 操作结果
   */
  toggleStatus(id, status) {
    return request({
      url: `/zhishu/shopGoods/${id}/status`,
      method: 'PUT',
      data: { status }
    })
  }
}

/**
 * 克隆工具 API（孔夫子旧书网）
 */
export const cloneApi = {
  /**
   * 从孔夫子克隆商品
   * @param {Object} data - 克隆参数
   * @param {String} data.kongfzId - 孔夫子商品 ID
   * @param {Object} data.priceAdjust - 价格调整配置
   * @returns {Promise<Object>} 克隆结果
   */
  cloneFromKongfz(data) {
    return request({
      url: '/zhishu/goods/clone/kongfz',
      method: 'POST',
      data,
      loading: true
    })
  },

  /**
   * 批量克隆商品
   * @param {Array} items - 克隆项列表
   * @returns {Promise<Object>} 批量克隆结果
   */
  batchClone(items) {
    return request({
      url: '/zhishu/goods/clone/batch',
      method: 'POST',
      data: { items },
      loading: true
    })
  },

  /**
   * 获取克隆历史
   * @param {Number} pageNum - 页码
   * @param {Number} pageSize - 每页数量
   * @returns {Promise<Object>} 克隆历史记录
   */
  getCloneHistory(pageNum = 1, pageSize = 20) {
    return request({
      url: '/zhishu/goods/clone/history',
      method: 'GET',
      data: { pageNum, pageSize }
    })
  }
}

/**
 * 价格对比 API
 */
export const priceCompareApi = {
  /**
   * 获取各平台价格对比
   * @param {String} isbn - ISBN 号
   * @returns {Promise<Object>} 各平台价格信息
   */
  comparePrices(isbn) {
    return request({
      url: '/zhishu/price/compare',
      method: 'GET',
      data: { isbn },
      loading: true
    })
  },

  /**
   * 获取孔夫子价格
   * @param {String} isbn - ISBN 号
   * @returns {Promise<Object>} 孔夫子价格信息
   */
  getKongfzPrice(isbn) {
    return request({
      url: '/zhishu/price/kongfz',
      method: 'GET',
      data: { isbn }
    })
  },

  /**
   * 获取当当价格
   * @param {String} isbn - ISBN 号
   * @returns {Promise<Object>} 当当价格信息
   */
  getDangdangPrice(isbn) {
    return request({
      url: '/zhishu/price/dangdang',
      method: 'GET',
      data: { isbn }
    })
  }
}

export default {
  goods: goodsApi,
  clone: cloneApi,
  priceCompare: priceCompareApi
}