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

enum Api {
  smsLogQueryPage = '/sys/sms/log/query/page',
  smsLogDetail = '/sys/sms/log/detail',
  smsLogAdd = '/sys/sms/log/add',
  smsLogEdit = '/sys/sms/log/edit',
  smsLogRemove = '/sys/sms/log/removeByIds',
}

/**
 *
 * @author lf
 * @date  2023/05/04 10:53
 * @description: 根据条件查询短信日志列表,权限 - sms:log:query
 * @method: POST
 * @param:
 *       {String}  channelId  eq   渠道id
 *       {String}  templateId  eq   模板id
 *       {String}  templateCode  eq   模板编码
 *       {String}  mobile  like   手机号
 *       {String}  sendStatus  eq   发送状态
 *       {Date}  sendTime  BETWEEN   发送时间
 *       {String}  receiveStatus  eq   接收状态
 * @return:
 *       {String}  channelId  渠道id
 *       {String}  templateId  模板id
 *       {String}  templateCode  模板编码
 *       {String}  templateType  模板类型
 *       {String}  templateParams  模板参数
 *       {String}  templateContent  模板内容
 *       {String}  apiTemplateId  短信API的模板编号
 *       {String}  mobile  手机号
 *       {String}  userid  接收用户id
 *       {String}  userType  用户类型
 *       {String}  sendStatus  发送状态
 *       {Date}  sendTime  发送时间
 *       {String}  sendCode  发送结果编码
 *       {String}  sendMsg  发送消息
 *       {String}  apiSendCode  API 结果编号
 *       {String}  apiSendMsg  API 错误信息
 *       {String}  apiRequestId  API 请求编号
 *       {String}  apiSerialNo  API 返回序号
 *       {String}  receiveStatus  接收状态
 *       {Date}  receiveTime  接收时间
 *       {String}  apiReceiveCode  API 接收结果编码
 *       {String}  apiReceiveMsg  API 接收结果提示
 */

export const smsLogQueryPage = (params?: object) => {
  return defHttp.post({ url: Api.smsLogQueryPage, params: setParams(params) });
};
/**
 *
 * @author lf
 * @date  2023/05/04 10:53
 * @description: 根据id查询短信日志详细信息,权限 - sms:log:query
 * @method: GET
 * @param:  id 短信日志主键id
 * @return:
 *       {String}  channelId  渠道id
 *       {String}  templateId  模板id
 *       {String}  templateCode  模板编码
 *       {String}  templateType  模板类型
 *       {String}  templateParams  模板参数
 *       {String}  templateContent  模板内容
 *       {String}  apiTemplateId  短信API的模板编号
 *       {String}  mobile  手机号
 *       {String}  userid  接收用户id
 *       {String}  userType  用户类型
 *       {String}  sendStatus  发送状态
 *       {Date}  sendTime  发送时间
 *       {String}  sendCode  发送结果编码
 *       {String}  sendMsg  发送消息
 *       {String}  apiSendCode  API 结果编号
 *       {String}  apiSendMsg  API 错误信息
 *       {String}  apiRequestId  API 请求编号
 *       {String}  apiSerialNo  API 返回序号
 *       {String}  receiveStatus  接收状态
 *       {Date}  receiveTime  接收时间
 *       {String}  apiReceiveCode  API 接收结果编码
 *       {String}  apiReceiveMsg  API 接收结果提示
 */
export const smsLogDetail = (id: string) => {
  return defHttp.get({ url: Api.smsLogDetail + '/' + id });
};

/**
 *
 * @author lf
 * @date  2023/05/04 10:53
 * @description: 添加短信日志,权限 - sms:log:add
 * @method: POST
 * @param:
 *       {String}  channelId  渠道id
 *       {String}  templateId  模板id
 *       {String}  templateCode  模板编码
 *       {String}  templateType  模板类型
 *       {String}  templateParams  模板参数
 *       {String}  templateContent  模板内容
 *       {String}  apiTemplateId  短信API的模板编号
 *       {String}  mobile  手机号
 *       {String}  userid  接收用户id
 *       {String}  userType  用户类型
 *       {String}  sendStatus  发送状态
 *       {Date}  sendTime  发送时间
 *       {String}  sendCode  发送结果编码
 *       {String}  sendMsg  发送消息
 *       {String}  apiSendCode  API 结果编号
 *       {String}  apiSendMsg  API 错误信息
 *       {String}  apiRequestId  API 请求编号
 *       {String}  apiSerialNo  API 返回序号
 *       {String}  receiveStatus  接收状态
 *       {Date}  receiveTime  接收时间
 *       {String}  apiReceiveCode  API 接收结果编码
 *       {String}  apiReceiveMsg  API 接收结果提示
 * @return:
 *       0 添加失败
 *       1 添加成功
 */
export const smsLogAdd = (params?: object) => {
  return defHttp.post({ url: Api.smsLogAdd, params: params });
};

/**
 *
 * @author lf
 * @date  2023/05/04 10:53
 * @description: 通过主键id编辑短信日志,权限 - sms:log:edit
 * @method: POST
 * @param:
 *       {String}  channelId  渠道id
 *       {String}  templateId  模板id
 *       {String}  templateCode  模板编码
 *       {String}  templateType  模板类型
 *       {String}  templateParams  模板参数
 *       {String}  templateContent  模板内容
 *       {String}  apiTemplateId  短信API的模板编号
 *       {String}  mobile  手机号
 *       {String}  userid  接收用户id
 *       {String}  userType  用户类型
 *       {String}  sendStatus  发送状态
 *       {Date}  sendTime  发送时间
 *       {String}  sendCode  发送结果编码
 *       {String}  sendMsg  发送消息
 *       {String}  apiSendCode  API 结果编号
 *       {String}  apiSendMsg  API 错误信息
 *       {String}  apiRequestId  API 请求编号
 *       {String}  apiSerialNo  API 返回序号
 *       {String}  receiveStatus  接收状态
 *       {Date}  receiveTime  接收时间
 *       {String}  apiReceiveCode  API 接收结果编码
 *       {String}  apiReceiveMsg  API 接收结果提示
 * @return:
 *       0 编辑失败
 *       1 编辑成功
 */
export const smsLogEdit = (params?: object) => {
  return defHttp.post({ url: Api.smsLogEdit, params: params });
};

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