import { defHttp } from '@/utils/http/axios'

export interface FileClientConfig {
  basePath: string
  host?: string
  port?: number
  username?: string
  password?: string
  mode?: string
  endpoint?: string
  bucket?: string
  accessKey?: string
  accessSecret?: string
  domain: string
}
export interface FileConfigVO {
  id: number
  name: string
  storage: number
  master: boolean
  visible: boolean
  config: FileClientConfig
  remark: string
  createTime: Date
}

export interface FileConfigPageReqVO extends PageParam {
  name?: string
  storage?: number
  createTime?: Date[]
}

// 查询文件配置列表
export function getFileConfigPage(params: FileConfigPageReqVO) {
  return defHttp.get({ url: '/infra/file-config/page', params })
}

// 查询文件配置详情
export function getFileConfig(id: number) {
  return defHttp.get({ url: `/infra/file-config/get?id=${id}` })
}

// 更新文件配置为主配置
export function updateFileConfigMaster(id: number) {
  return defHttp.put({ url: `/infra/file-config/update-master?id=${id}` })
}

// 新增文件配置
export function createFileConfig(data) {
  return defHttp.post({ url: '/infra/file-config/create', data })
}

// 修改文件配置
export function updateFileConfig(data) {
  return defHttp.put({ url: '/infra/file-config/update', data })
}

// 删除文件配置
export function deleteFileConfig(id: number) {
  return defHttp.delete({ url: `/infra/file-config/delete?id=${id}` })
}

// 测试文件配置
export function testFileConfig(id: number) {
  return defHttp.get({ url: `/infra/file-config/test?id=${id}` })
}
