import request from '@/config/axios'

// 接口设置相关类型定义
export interface ApiSettingVO {
  id?: number // 主键ID, 示例值(11099), integer(int64)
  name: string // 接口名称, 示例值(赵六), string
  interfaceKey: string // 接口标识, string
  method: string // HTTP方法：GET/POST/PUT/DELETE, string
  baseUrl: string // 基础URL, 示例值(https://www.iocoder.cn), string
  timeoutMs?: number // 超时时间（毫秒）, integer(int32)
  retryCount?: number // 重试次数, 示例值(30633), integer(int32)
  authType?: string // 认证类型：NONE/BASIC/BEARER/API_KEY, 示例值(1), string
  paramType?: string // 参数类型：QUERY/HEADER/BODY/FORM_DATA/PATH, 示例值(2), string
  contentType?: string // 内容类型（如：application/json）, 示例值(1), string
  tableName?: string // 数据表名称, 示例值(osy), string
  headerTemplate?: string // 请求头模板, string
  inputParamTemplate?: string // 入参模板, string
  status: number // 状态：0-草稿 1-生效 2-失效, 示例值(1), integer(int32)
}

// 分页查询参数
export interface ApiSettingPageParam {
  pageNo?: number
  pageSize?: number
  name?: string // 接口名称
  interfaceKey?: string // 接口标识
  baseUrl?: string // 基础URL
}

// 查询接口设置列表
export const getApiSettingPage = (params: ApiSettingPageParam) => {
  return request.get({ url: '/print/sap-api-config/page', params })
}
// 数据源精简列表
export const getApiSettingList = (params: any) => {
  return request.get({ url: '/system/dict-data/getDictDataListByDictType', params })
}
// 条码模板规则
export const tagTemplateConfigList = (data: any) => {
  return request.post({ url: '/print/tag-template-config/getConfigList', data })
}
export const tagTemplateConfigPageList = (data: any) => {
  return request.post({ url: '/print/tag-template-config/page', data })
}
// 查询接口设置详情
export const getApiSetting = (id: number) => {
  return request.get({ url: '/print/sap-api-config/get?id=' + id })
}

// 新增接口设置
export const createApiSetting = (data: ApiSettingVO) => {
  return request.post({ url: '/print/sap-api-config/create', data })
}

// 修改接口设置
export const updateApiSetting = (data: ApiSettingVO) => {
  return request.put({ url: '/print/sap-api-config/update', data })
}

// 删除接口设置
export const deleteApiSetting = (id: number) => {
  return request.delete({ url: '/print/sap-api-config/delete?id=' + id })
}

// 批量删除接口设置
export const deleteApiSettingList = (ids: number[]) => {
  return request.delete({
    url: '/print/sap-api-config/delete-list',
    params: { ids: ids.join(',') }
  })
}

// 导出接口设置
export const exportApiSetting = (params: any) => {
  return request.download({ url: '/print/sap-api-config/export-excel', params })
}

// 下载接口设置导入模板
export const importApiSettingTemplate = () => {
  return request.download({ url: '/print/sap-api-config/get-import-template' })
}

// 导入接口设置
export const importApiSetting = (data: FormData) => {
  return request.post({
    url: '/print/sap-api-config/import',
    data,
    headers: { 'Content-Type': 'multipart/form-data' }
  })
}

// 修改接口设置状态
export const updateApiSettingStatus = (id: number, status: number) => {
  const data = {
    id,
    status
  }
  return request.put({ url: '/print/sap-api-config/update-status', data })
}

// 获取接口设置精简信息列表
export const getSimpleApiSettingList = (params): Promise<ApiSettingVO[]> => {
  return request.get({ url: '/print/sap-api-config/simple-list', params })
}
