import request from '@/config/axios'

// 识别数据集 VO
export interface DatasetVO {
  id: number // id
  name: string // 名称
  path: string // 路径，可以输入或者根据导入zip自动生成
}

// 识别数据集 API
export const DatasetApi = {
  // 查询识别数据集分页
  getDatasetPage: async (params: any) => {
    return await request.get({ url: `/annotation/dataset/page`, params })
  },

  // 查询识别数据集详情
  getDataset: async (id: number) => {
    return await request.get({ url: `/annotation/dataset/get?id=` + id })
  },

  // 新增识别数据集（仅路径）
  createDataset: async (data: DatasetVO) => {
    return await request.post({ url: `/annotation/dataset/create`, data })
  },

  // 上传文件到数据集（单独接口）
  uploadFiles: async (name: string, files: File[]) => {
    const formData = new FormData()
    files.forEach((file) => {
      formData.append('files', file)
    })
    return await request.post({ url: `/annotation/dataset/` + name + `/upload`, data: formData })
  },

  // 修改识别数据集
  updateDataset: async (data: DatasetVO) => {
    return await request.put({ url: `/annotation/dataset/update`, data })
  },

  // 删除识别数据集
  deleteDataset: async (id: number) => {
    return await request.delete({ url: `/annotation/dataset/delete?id=` + id })
  },

  // 向数据集添加图片
  addImages: async (data: { id: number; files: File[] }) => {
    const formData = new FormData()
    formData.append('id', data.id.toString())
    data.files.forEach((file) => {
      formData.append('files', file)
    })
    return await request.post({ url: `/annotation/dataset/add-images`, data: formData })
  },

  // 导出识别数据集 Excel
  exportDataset: async (params) => {
    return await request.download({ url: `/annotation/dataset/export-excel`, params })
  },
}
