import request from "@/utils/request";
const baseURL = "/account/admin/";

const RegisterApi = {
  /** 获取当前用户菜单列表*/
  getList(params: getListRequest) {
    return request<any, getListResponse>({
      url: `${baseURL}merchantRegister`,
      method: "get",
      params: params,
    });
  },
  /**生成激活码 */
  add(data: addRequest) {
    return request<any, getListResponse>({
      url: `${baseURL}merchantRegister`,
      method: "post",
      data: data,
    });
  },
};

export default RegisterApi;

/** 请求激活码列表参数 */
export interface getListRequest {
  /**
   * 结束时间
   */
  endTime?: string;
  page: number;
  size: number;
  /**
   * 开始时间
   */
  startTime?: string;
  /**
   * 状态 0未激活 1已激活
   */
  state?: number;
  [property: string]: any;
}

/**
 * 激活码列表
 *
 * CzgResult«Page«MerchantRegister»»
 */
export interface getListResponse {
  code?: number | null;
  data?: PageMerchantRegister;
  msg?: null | string;
  [property: string]: any;
}

/**
 * Page«MerchantRegister»
 */
export interface PageMerchantRegister {
  /**
   * 每页数据数量最大限制。
   */
  maxPageSize?: number | null;
  /**
   * 是否优化分页查询 COUNT 语句。
   */
  optimizeCountQuery?: boolean | null;
  /**
   * 当前页码。
   */
  pageNumber?: number | null;
  /**
   * 每页数据数量。
   */
  pageSize?: number | null;
  /**
   * 当前页数据。
   */
  records?: MerchantRegister[] | null;
  /**
   * 总页数。
   */
  totalPage?: number | null;
  /**
   * 总数据数量。
   */
  totalRow?: number | null;
  [property: string]: any;
}

/**
 * 激活码 实体类。
 *
 * MerchantRegister
 */
export interface MerchantRegister {
  /**
   * 激活码金额
   */
  amount?: number | null;
  /**
   * 创建时间
   */
  createTime?: null | string;
  id?: number | null;
  /**
   * 激活时长（月）
   */
  periodMonth?: number | null;
  /**
   * 激活码
   */
  registerCode?: null | string;
  /**
   * 店铺id
   */
  shopId?: null | string;
  /**
   * 状态0未使用1已使用
   */
  status?: number | null;
  updateTime?: null | string;
  [property: string]: any;
}

/**
 * 激活码信息
 *
 * MerchantRegisterDTO
 */
export interface addRequest {
  /**
   * 生成数量
   */
  num: number | null;
  /**
   * 激活时长
   */
  periodMonth: number | null;
  [property: string]: any;
}
