import https from '../interface'
/* handle: 默认false，true时自己处理401/404等错误，不交给全局处理 */

export default {
  /**
   * 分页查询订单列表
   * @param {Object} data - 查询参数
   * @param {number} data.pageNum - 页码
   * @param {number} data.pageSize - 每页条数
   * @param {string} [data.customerName] - 顾客姓名
   * @param {string} [data.tableId] - 桌号
   * @param {string} [data.startDate] - 开始日期(yyyy-MM-dd)
   * @param {string} [data.endDate] - 结束日期(yyyy-MM-dd)
   * @param {string} [data.paymentMethod] - 支付方式
   * @returns {Promise}
   */
  getOrderPage(data) {
    return https({
      url: '/eatery/eateryOrder/pageList',
      method: 'get',
      data
    })
  },

  /**
   * 获取订单详情
   * @param {Object} data - 参数
   * @param {string|number} data.id - 订单ID
   * @returns {Promise}
   */
  getOrderDetail(data) {
    return https({
      url: `/eatery/eateryOrder/${data.id}`,
      method: 'get'
    })
  },

  /**
   * 新增订单
   * @param {Object} data - 订单数据
   * @param {string} data.customerName - 顾客姓名
   * @param {string} data.tableId - 桌号
   * @param {string} data.orderDate - 订单日期(yyyy-MM-dd)
   * @param {number} data.totalAmount - 应收金额
   * @param {number} [data.discountAmount=0] - 优惠金额
   * @param {number} data.actualReceivedAmount - 实收金额
   * @param {number} [data.changeAmount=0] - 找零金额
   * @param {number} [data.zeroAmount=0] - 抹零金额
   * @param {string} data.paymentMethod - 支付方式
   * @param {number} data.productTotalCount - 商品总数量
   * @param {string} [data.remark] - 备注
   * @returns {Promise}
   */
  addOrder(data) {
    return https({
      url: '/eatery/eateryOrder/order',
      method: 'post',
      data
    })
  },

  /**
   * 修改订单
   * @param {Object} data - 订单数据（含id）
   * @param {string|number} data.id - 订单ID
   * @param {string} [data.customerName] - 顾客姓名
   * @param {string} [data.tableId] - 桌号
   * @param {string} [data.orderDate] - 订单日期(yyyy-MM-dd)
   * @param {number} [data.totalAmount] - 应收金额
   * @param {number} [data.discountAmount] - 优惠金额
   * @param {number} [data.actualReceivedAmount] - 实收金额
   * @param {number} [data.changeAmount] - 找零金额
   * @param {number} [data.zeroAmount] - 抹零金额
   * @param {string} [data.paymentMethod] - 支付方式
   * @param {number} [data.productTotalCount] - 商品总数量
   * @param {string} [data.remark] - 备注
   * @returns {Promise}
   */
  updateOrder(data) {
    return https({
      url: '/eatery/eateryOrder',
      method: 'put',
      data
    })
  },

  /**
   * 删除订单
   * @param {Object} data - 参数
   * @param {string|number} data.id - 订单ID（单个删除）或IDs（批量删除，逗号分隔）
   * @returns {Promise}
   */
  deleteOrder(data) {
    return https({
      url: `/eatery/eateryOrder/${data.id}`,
      method: 'delete'
    })
  },

  /**
   * 订单结算
   * @param {Object} data - 结算数据
   * @param {string|number} data.id - 订单ID
   * @param {string} data.paymentMethod - 支付方式
   * @param {number} [data.discountAmount=0] - 优惠金额
   * @param {number} [data.zeroAmount=0] - 抹零金额
   * @returns {Promise}
   */
  settleOrder(data) {
    return https({
      url: '/eatery/eateryOrder/checkout',
      method: 'post',
      data
    })
  },

  /**
   * 获取支付方式列表
   * @returns {Promise}
   */
  getPaymentMethods() {
    return https({
      url: '/system/config/getPaymentConfig',
      method: 'get'
    })
  },

  /**
   * 导出订单数据
   * @param {Object} data - 查询参数（同分页查询）
   * @returns {Promise}
   */
  exportOrders(data) {
    return https({
      url: '/eatery/eateryOrder/export',
      method: 'get',
      data,
      responseType: 'blob' // 导出文件需指定响应类型
    })
  }
}