/**
 * 牛只交易相关 API 接口
 */

import request from '@/common/utils/request'

export const tradingApi = {
  /**
   * 获取交易列表
   * @param {Object} params 查询参数
   */
  getTradeList(params) {
    return request.get('/trading/trades', { params })
  },

  /**
   * 获取交易详情
   * @param {number} id 交易ID
   */
  getTradeDetail(id) {
    return request.get(`/trading/trades/${id}`)
  },

  /**
   * 发布交易信息
   * @param {Object} tradeData 交易数据
   */
  publishTrade(tradeData) {
    return request.post('/trading/trades', tradeData)
  },

  /**
   * 更新交易信息
   * @param {number} id 交易ID
   * @param {Object} tradeData 交易数据
   */
  updateTrade(id, tradeData) {
    return request.put(`/trading/trades/${id}`, tradeData)
  },

  /**
   * 删除交易信息
   * @param {number} id 交易ID
   */
  deleteTrade(id) {
    return request.delete(`/trading/trades/${id}`)
  },

  /**
   * 获取我的发布列表
   * @param {Object} params 查询参数
   */
  getMyPublishList(params) {
    return request.get('/trading/my-publish', { params })
  },

  /**
   * 获取我的购买列表
   * @param {Object} params 查询参数
   */
  getMyPurchaseList(params) {
    return request.get('/trading/my-purchase', { params })
  },

  /**
   * 获取订单列表
   * @param {Object} params 查询参数
   */
  getOrderList(params) {
    return request.get('/trading/orders', { params })
  },

  /**
   * 获取订单详情
   * @param {number} id 订单ID
   */
  getOrderDetail(id) {
    return request.get(`/trading/orders/${id}`)
  },

  /**
   * 创建订单
   * @param {Object} orderData 订单数据
   */
  createOrder(orderData) {
    return request.post('/trading/orders', orderData)
  },

  /**
   * 支付订单
   * @param {number} orderId 订单ID
   * @param {Object} paymentData 支付数据
   */
  payOrder(orderId, paymentData) {
    return request.post(`/trading/orders/${orderId}/pay`, paymentData)
  },

  /**
   * 取消订单
   * @param {number} orderId 订单ID
   * @param {Object} cancelData 取消数据
   */
  cancelOrder(orderId, cancelData) {
    return request.post(`/trading/orders/${orderId}/cancel`, cancelData)
  },

  /**
   * 确认收货
   * @param {number} orderId 订单ID
   */
  confirmReceive(orderId) {
    return request.post(`/trading/orders/${orderId}/confirm-receive`)
  },

  /**
   * 获取价格行情数据
   * @param {Object} params 查询参数
   */
  getPriceData(params) {
    return request.get('/trading/price-data', { params })
  },

  /**
   * 获取市场统计数据
   */
  getMarketStats() {
    return request.get('/trading/market-stats')
  },

  /**
   * 获取交易分类
   */
  getCategories() {
    return request.get('/trading/categories')
  },

  /**
   * 获取地区列表
   */
  getRegions() {
    return request.get('/trading/regions')
  },

  /**
   * 收藏交易
   * @param {number} tradeId 交易ID
   */
  favoriteTrade(tradeId) {
    return request.post('/trading/favorite', { tradeId })
  },

  /**
   * 取消收藏交易
   * @param {number} tradeId 交易ID
   */
  unfavoriteTrade(tradeId) {
    return request.delete(`/trading/favorite/${tradeId}`)
  },

  /**
   * 获取收藏的交易列表
   * @param {Object} params 查询参数
   */
  getFavoriteTradeList(params) {
    return request.get('/trading/favorites', { params })
  },

  /**
   * 举报交易
   * @param {Object} reportData 举报数据
   */
  reportTrade(reportData) {
    return request.post('/trading/report', reportData)
  },

  /**
   * 获取交易评价
   * @param {number} tradeId 交易ID
   * @param {Object} params 查询参数
   */
  getTradeReviews(tradeId, params) {
    return request.get(`/trading/trades/${tradeId}/reviews`, { params })
  },

  /**
   * 添加交易评价
   * @param {Object} reviewData 评价数据
   */
  addTradeReview(reviewData) {
    return request.post('/trading/reviews', reviewData)
  },

  /**
   * 获取用户信誉信息
   * @param {number} userId 用户ID
   */
  getUserCredit(userId) {
    return request.get(`/trading/users/${userId}/credit`)
  },

  /**
   * 申请退款
   * @param {number} orderId 订单ID
   * @param {Object} refundData 退款数据
   */
  applyRefund(orderId, refundData) {
    return request.post(`/trading/orders/${orderId}/refund`, refundData)
  },

  /**
   * 获取物流信息
   * @param {number} orderId 订单ID
   */
  getLogistics(orderId) {
    return request.get(`/trading/orders/${orderId}/logistics`)
  },

  /**
   * 更新物流信息
   * @param {number} orderId 订单ID
   * @param {Object} logisticsData 物流数据
   */
  updateLogistics(orderId, logisticsData) {
    return request.put(`/trading/orders/${orderId}/logistics`, logisticsData)
  },

  /**
   * 获取推荐交易
   * @param {Object} params 查询参数
   */
  getRecommendTrades(params) {
    return request.get('/trading/recommend', { params })
  },

  /**
   * 搜索交易
   * @param {Object} params 搜索参数
   */
  searchTrades(params) {
    return request.get('/trading/search', { params })
  },

  /**
   * 获取热门搜索关键词
   */
  getHotKeywords() {
    return request.get('/trading/hot-keywords')
  },

  /**
   * 获取交易历史记录
   * @param {Object} params 查询参数
   */
  getTradeHistory(params) {
    return request.get('/trading/history', { params })
  }
}