/**
 * 牛肉商城相关 API 接口
 */

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

export const mallApi = {
  /**
   * 获取商品列表
   * @param {Object} params 查询参数
   */
  getProductList(params) {
    return request.get('/mall/products', { params })
  },

  /**
   * 获取商品详情
   * @param {number} id 商品ID
   */
  getProductDetail(id) {
    return request.get(`/mall/products/${id}`)
  },

  /**
   * 获取商品分类
   */
  getCategories() {
    return request.get('/mall/categories')
  },

  /**
   * 获取推荐商品
   * @param {Object} params 查询参数
   */
  getRecommendProducts(params) {
    return request.get('/mall/products/recommend', { params })
  },

  /**
   * 获取热销商品
   * @param {Object} params 查询参数
   */
  getHotProducts(params) {
    return request.get('/mall/products/hot', { params })
  },

  /**
   * 获取新品推荐
   * @param {Object} params 查询参数
   */
  getNewProducts(params) {
    return request.get('/mall/products/new', { params })
  },

  /**
   * 搜索商品
   * @param {Object} params 搜索参数
   */
  searchProducts(params) {
    return request.get('/mall/products/search', { params })
  },

  /**
   * 获取购物车商品
   */
  getCartItems() {
    return request.get('/mall/cart')
  },

  /**
   * 添加商品到购物车
   * @param {Object} productData 商品数据
   */
  addToCart(productData) {
    return request.post('/mall/cart', productData)
  },

  /**
   * 更新购物车商品
   * @param {number} cartItemId 购物车商品ID
   * @param {Object} updateData 更新数据
   */
  updateCartItem(cartItemId, updateData) {
    return request.put(`/mall/cart/${cartItemId}`, updateData)
  },

  /**
   * 删除购物车商品
   * @param {number} cartItemId 购物车商品ID
   */
  removeCartItem(cartItemId) {
    return request.delete(`/mall/cart/${cartItemId}`)
  },

  /**
   * 清空购物车
   */
  clearCart() {
    return request.delete('/mall/cart/clear')
  },

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

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

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

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

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

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

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

  /**
   * 获取收货地址列表
   */
  getAddressList() {
    return request.get('/mall/addresses')
  },

  /**
   * 添加收货地址
   * @param {Object} addressData 地址数据
   */
  addAddress(addressData) {
    return request.post('/mall/addresses', addressData)
  },

  /**
   * 更新收货地址
   * @param {number} id 地址ID
   * @param {Object} addressData 地址数据
   */
  updateAddress(id, addressData) {
    return request.put(`/mall/addresses/${id}`, addressData)
  },

  /**
   * 删除收货地址
   * @param {number} id 地址ID
   */
  deleteAddress(id) {
    return request.delete(`/mall/addresses/${id}`)
  },

  /**
   * 设置默认地址
   * @param {number} id 地址ID
   */
  setDefaultAddress(id) {
    return request.put(`/mall/addresses/${id}/default`)
  },

  /**
   * 获取优惠券列表
   */
  getCouponList() {
    return request.get('/mall/coupons')
  },

  /**
   * 获取可用优惠券
   * @param {Object} params 查询参数
   */
  getAvailableCoupons(params) {
    return request.get('/mall/coupons/available', { params })
  },

  /**
   * 领取优惠券
   * @param {number} couponId 优惠券ID
   */
  receiveCoupon(couponId) {
    return request.post(`/mall/coupons/${couponId}/receive`)
  },

  /**
   * 使用优惠券
   * @param {number} couponId 优惠券ID
   * @param {number} orderId 订单ID
   */
  useCoupon(couponId, orderId) {
    return request.post(`/mall/coupons/${couponId}/use`, { orderId })
  },

  /**
   * 获取商品评价
   * @param {number} productId 商品ID
   * @param {Object} params 查询参数
   */
  getProductReviews(productId, params) {
    return request.get(`/mall/products/${productId}/reviews`, { params })
  },

  /**
   * 添加商品评价
   * @param {Object} reviewData 评价数据
   */
  addProductReview(reviewData) {
    return request.post('/mall/reviews', reviewData)
  },

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

  /**
   * 获取商城统计数据
   */
  getMallStats() {
    return request.get('/mall/stats')
  },

  /**
   * 获取品牌列表
   */
  getBrands() {
    return request.get('/mall/brands')
  },

  /**
   * 获取产地列表
   */
  getOrigins() {
    return request.get('/mall/origins')
  },

  /**
   * 收藏商品
   * @param {number} productId 商品ID
   */
  favoriteProduct(productId) {
    return request.post('/mall/favorite', { productId })
  },

  /**
   * 取消收藏商品
   * @param {number} productId 商品ID
   */
  unfavoriteProduct(productId) {
    return request.delete(`/mall/favorite/${productId}`)
  },

  /**
   * 获取收藏的商品列表
   * @param {Object} params 查询参数
   */
  getFavoriteProductList(params) {
    return request.get('/mall/favorites', { params })
  },

  /**
   * 获取浏览历史
   * @param {Object} params 查询参数
   */
  getBrowseHistory(params) {
    return request.get('/mall/browse-history', { params })
  },

  /**
   * 添加浏览历史
   * @param {number} productId 商品ID
   */
  addBrowseHistory(productId) {
    return request.post('/mall/browse-history', { productId })
  },

  /**
   * 清除浏览历史
   */
  clearBrowseHistory() {
    return request.delete('/mall/browse-history/clear')
  },

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

  /**
   * 获取搜索建议
   * @param {string} keyword 关键词
   */
  getSearchSuggestions(keyword) {
    return request.get('/mall/search-suggestions', { params: { keyword } })
  },

  /**
   * 获取秒杀活动
   */
  getSeckillActivities() {
    return request.get('/mall/seckill')
  },

  /**
   * 参与秒杀
   * @param {number} activityId 活动ID
   * @param {Object} seckillData 秒杀数据
   */
  joinSeckill(activityId, seckillData) {
    return request.post(`/mall/seckill/${activityId}/join`, seckillData)
  },

  /**
   * 获取团购活动
   */
  getGroupBuyActivities() {
    return request.get('/mall/group-buy')
  },

  /**
   * 参与团购
   * @param {number} activityId 活动ID
   * @param {Object} groupBuyData 团购数据
   */
  joinGroupBuy(activityId, groupBuyData) {
    return request.post(`/mall/group-buy/${activityId}/join`, groupBuyData)
  }
}