import { defHttp } from '/@/utils/http/axios';
import { setParams } from '/@/utils/index';

enum Api {
  serialNumStrategyQueryPage = '/sys/numStrategy/query/page',
  serialNumStrategyDetail = '/sys/numStrategy/detail',
  serialNumStrategyAdd = '/sys/numStrategy/add',
  serialNumStrategyEdit = '/sys/numStrategy/edit',
  serialNumStrategyRemove = '/sys/numStrategy/removeByIds',
}

/**
 *
 * @author lf
 * @date  2023/04/25 10:10
 * @description: 根据条件查询编号策略列表,权限 - sys:numStrategy:query
 * @method: POST
 * @param:
 *       {String}  code  like   策略编码
 *       {String}  name  like   策略名称
 * @return:
 *       {String}  code  策略编码
 *       {String}  name  策略名称
 *       {String}  prefix  编号前缀
 *       {String}  type  生成模式
 *       {Integer}  limitLen  流水号长度
 *       {String}  fillChar  填充字符
 *       {String}  remark  备注
 */

export const serialNumStrategyQueryPage = (params?: object) => {
  return defHttp.post({ url: Api.serialNumStrategyQueryPage, params: setParams(params) });
};
/**
 *
 * @author lf
 * @date  2023/04/25 10:10
 * @description: 根据id查询编号策略详细信息,权限 - sys:numStrategy:query
 * @method: GET
 * @param:  id 编号策略主键id
 * @return:
 *       {String}  code  策略编码
 *       {String}  name  策略名称
 *       {String}  prefix  编号前缀
 *       {String}  type  生成模式
 *       {Integer}  limitLen  流水号长度
 *       {String}  fillChar  填充字符
 *       {String}  remark  备注
 */
export const serialNumStrategyDetail = (id: string) => {
  return defHttp.get({ url: Api.serialNumStrategyDetail + '/' + id });
};

/**
 *
 * @author lf
 * @date  2023/04/25 10:10
 * @description: 添加编号策略,权限 - sys:numStrategy:add
 * @method: POST
 * @param:
 *       {String}  code  策略编码
 *       {String}  name  策略名称
 *       {String}  prefix  编号前缀
 *       {String}  type  生成模式
 *       {Integer}  nextNum  下一个编号
 *       {Integer}  limitLen  流水号长度
 *       {String}  fillChar  填充字符
 *       {String}  remark  备注
 * @return:
 *       0 添加失败
 *       1 添加成功
 */
export const serialNumStrategyAdd = (params?: object) => {
  return defHttp.post({ url: Api.serialNumStrategyAdd, params: params });
};

/**
 *
 * @author lf
 * @date  2023/04/25 10:10
 * @description: 通过主键id编辑编号策略,权限 - sys:numStrategy:edit
 * @method: POST
 * @param:
 *       {String}  code  策略编码
 *       {String}  name  策略名称
 *       {String}  prefix  编号前缀
 *       {String}  type  生成模式
 *       {Integer}  nextNum  下一个编号
 *       {Integer}  limitLen  流水号长度
 *       {String}  fillChar  填充字符
 *       {String}  remark  备注
 * @return:
 *       0 编辑失败
 *       1 编辑成功
 */
export const serialNumStrategyEdit = (params?: object) => {
  return defHttp.post({ url: Api.serialNumStrategyEdit, params: params });
};

/**
 * @description: 删除,权限 - sys:numStrategy:remove
 * @method: POST
 */
export const serialNumStrategyRemove = (params: Array<string | number>) => {
  return defHttp.post({ url: Api.serialNumStrategyRemove, params: params });
};
