import request from "@/utils/request";

const USEREXCHANGEINTEGRALRULE_BASE_URL = "/api/v1/user-exchange-integral-rule";

const UserExchangeIntegralRuleAPI = {
  /** 获取积分兑换规则分页数据 */
  getPage(queryParams?: UserExchangeIntegralRulePageQuery) {
    return request<any, PageResult<UserExchangeIntegralRulePageVO[]>>({
      url: `${USEREXCHANGEINTEGRALRULE_BASE_URL}/page`,
      method: "get",
      params: queryParams,
    });
  },
  /**
   * 获取积分兑换规则表单数据
   *
   * @param id 积分兑换规则ID
   * @returns 积分兑换规则表单数据
   */
  getFormData(id: number) {
    return request<any, UserExchangeIntegralRuleForm>({
      url: `${USEREXCHANGEINTEGRALRULE_BASE_URL}/${id}/form`,
      method: "get",
    });
  },

  /**
   *  添加积分兑换规则
   *
   *  @param data 积分兑换规则表单数据
   */
  create(data: UserExchangeIntegralRuleForm) {
    return request({
      url: `${USEREXCHANGEINTEGRALRULE_BASE_URL}`,
      method: "post",
      data,
    });
  },

  /**
   * 是否启用积分规则
   */
  enable(id: string, data: UserExchangeIntegralRuleForm) {
    return request({
      url: `${USEREXCHANGEINTEGRALRULE_BASE_URL}/editStatus/${id}`,
      method: "put",
      data,
    });
  },
  /**
   * 更新积分兑换规则
   *
   * @param id 积分兑换规则ID
   * @param data 积分兑换规则表单数据
   */
  update(id: string, data: UserExchangeIntegralRuleForm) {
    return request({
      url: `${USEREXCHANGEINTEGRALRULE_BASE_URL}/${id}`,
      method: "put",
      data,
    });
  },

  /**
   * 批量删除积分兑换规则，多个以英文逗号(,)分割
   *
   * @param ids 积分兑换规则ID字符串，多个以英文逗号(,)分割
   */
  deleteByIds(ids: string) {
    return request({
      url: `${USEREXCHANGEINTEGRALRULE_BASE_URL}/${ids}`,
      method: "delete",
    });
  },
};

export default UserExchangeIntegralRuleAPI;

/** 积分兑换规则分页查询参数 */
export interface UserExchangeIntegralRulePageQuery extends PageQuery {
  /** 是否启用（0-停用 1-启用） */
  status?: number;
}

/** 积分兑换规则表单对象 */
export interface UserExchangeIntegralRuleForm {
  /** 兑换度数基数（按照多少度进行兑换） */
  degree?: number;
  /** 1度电获得的积分（如1度1积分） */
  gainIntegral?: number;
  /** 是否启用（0-停用 1-启用） */
  status?: number;
  /** 创建时间 */
  createTime?: Date;
  /** 更新时间 */
  updateTime?: Date;
}

/** 积分兑换规则分页对象 */
export interface UserExchangeIntegralRulePageVO {
  /** 兑换度数基数（按照多少度进行兑换） */
  degree?: number;
  /** 1度电获得的积分（如1度1积分） */
  gainIntegral?: number;
  /** 是否启用（0-停用 1-启用） */
  status?: number;
  /** 创建时间 */
  createTime?: Date;
  /** 更新时间 */
  updateTime?: Date;
}
