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

enum Api {
  smsChannelQueryPage = '/sys/sms/channel/query/page',
  smsChannelDetail = '/sys/sms/channel/detail',
  smsChannelAdd = '/sys/sms/channel/add',
  smsChannelEdit = '/sys/sms/channel/edit',
  smsChannelRemove = '/sys/sms/channel/removeByIds',
}

/**
 *
 * @author fan
 * @date  2023/05/04 11:07
 * @description: 根据条件查询短信渠道列表,权限 - sms:channel:query
 * @method: POST
 * @param:
 *       {String}  name  like   渠道名称
 *       {String}  type  eq   渠道类型
 *       {Boolean}  disable  eq   是否启用
 * @return:
 *       {String}  name  渠道名称
 *       {String}  signature  短信签名
 *       {String}  type  渠道类型
 *       {String}  apiKey  短信 API 的账号
 *       {String}  apiSecret  短信 API 的秘钥
 *       {String}  callbackUrl  短信发送回调 URL
 *       {Boolean}  disable  是否启用
 *       {String}  remark  备注
 */

export const smsChannelQueryPage = (params?: object) => {
  return defHttp.post({ url: Api.smsChannelQueryPage, params: setParams(params) });
};
/**
 *
 * @author fan
 * @date  2023/05/04 11:07
 * @description: 根据id查询短信渠道详细信息,权限 - sms:channel:query
 * @method: GET
 * @param:  id 短信渠道主键id
 * @return:
 *       {String}  name  渠道名称
 *       {String}  signature  短信签名
 *       {String}  type  渠道类型
 *       {String}  apiKey  短信 API 的账号
 *       {String}  apiSecret  短信 API 的秘钥
 *       {String}  callbackUrl  短信发送回调 URL
 *       {Boolean}  disable  是否启用
 *       {String}  remark  备注
 */
export const smsChannelDetail = (id: string) => {
  return defHttp.get({ url: Api.smsChannelDetail + '/' + id });
};

/**
 *
 * @author fan
 * @date  2023/05/04 11:07
 * @description: 添加短信渠道,权限 - sms:channel:add
 * @method: POST
 * @param:
 *       {String}  name  渠道名称
 *       {String}  signature  短信签名
 *       {String}  type  渠道类型
 *       {String}  apiKey  短信 API 的账号
 *       {String}  apiSecret  短信 API 的秘钥
 *       {String}  callbackUrl  短信发送回调 URL
 *       {Boolean}  disable  是否启用
 *       {String}  remark  备注
 * @return:
 *       0 添加失败
 *       1 添加成功
 */
export const smsChannelAdd = (params?: object) => {
  return defHttp.post({ url: Api.smsChannelAdd, params: params });
};

/**
 *
 * @author fan
 * @date  2023/05/04 11:07
 * @description: 通过主键id编辑短信渠道,权限 - sms:channel:edit
 * @method: POST
 * @param:
 *       {String}  name  渠道名称
 *       {String}  signature  短信签名
 *       {String}  type  渠道类型
 *       {String}  apiKey  短信 API 的账号
 *       {String}  apiSecret  短信 API 的秘钥
 *       {String}  callbackUrl  短信发送回调 URL
 *       {Boolean}  disable  是否启用
 *       {String}  remark  备注
 * @return:
 *       0 编辑失败
 *       1 编辑成功
 */
export const smsChannelEdit = (params?: object) => {
  return defHttp.post({ url: Api.smsChannelEdit, params: params });
};

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