import request from '@/utils/request'

// 获取标注任务列表
export function labelingTaskListAPI(params) {
  return request({
    url: '/smartPlatform/data/labeling/getLabelingTaskList',
    method: 'get',
    params
  })
}

// 获取标注任务列表
export function myCreateLabelingTaskListAPI(params) {
  return request({
    url: '/smartPlatform/data/labeling/getMyCreateLabelingTaskList',
    method: 'get',
    params
  })
}

// 获取标注任务列表
export function myJoinLabelingTaskListAPI(params) {
  return request({
    url: '/smartPlatform/data/labeling/getMyJoinLabelingTaskList',
    method: 'get',
    params
  })
}


// 获取标注列表
export function labelingListAPI(params) {
  return request({
    url: '/smartPlatform/data/labeling/getLabelingList',
    method: 'get',
    params
  })
}


// 新增标注任务
export function addLabelingTaskAPI(data) {
  return request({
    url: '/smartPlatform/data/labeling/addLabelingTask',
    method: 'post',
    data
  })
}

// 编辑标注任务
export function editLabelingTaskAPI(data) {
  return request({
    url: '/smartPlatform/data/labeling/editLabelingTask',
    method: 'post',
    data
  })
}

// 获取标注任务详情
export function getLabelingTaskDetailAPI(params) {
  return request({
    url: '/smartPlatform/data/labeling/getLabelingTaskDetail',
    method: 'get',
    params
  })
}

// 删除标注任务
export function delLabelingTaskAPI(data) {
  return request({
    url: '/smartPlatform/data/labeling/delLabelingTask',
    method: 'post',
    data
  })
}

// 获取数据集列表
export function getDatasetListAPI(params) {
  return request({
    url: '/smartPlatform/dataset/list',
    method: 'get',
    params
  })
}

// 新增：获取标签树形结构数据（适配el-tree渲染）
export function getLabelTreeListAPI() {
  return request({
    url: '/smartPlatform/data/label/getLabelTreeList',
    method: 'get'
  })
}

// 新增：批量查询标签（用于回显选中的标签）
export function getLabelListByIdsAPI(data) {
  return request({
    url: '/smartPlatform/data/label/getLabelListByIds',
    method: 'post',
    data
  })
}

// 发布标注任务
export function publishLabelingTaskAPI(data) {
  return request({
    url: '/smartPlatform/data/labeling/publishLabelingTask',
    method: 'post',
    data
  })
}

// 获取标注任务关联的标签树状结构
export function getLabelingTaskLabelTreeAPI(params) {
  return request({
    url: '/smartPlatform/data/labeling/getLabelingTaskLabelTree',
    method: 'get',
    params
  })
}

// 根据标注任务ID获取样本图片列表
export function getLabelPicturesAPI(params) {
  return request({
    url: '/smartPlatform/data/labeling/getLabelPictures',
    method: 'get',
    params
  })
}

// 根据标注任务ID获取样本图片列表详情
export function getLabelPicturesDetailAPI(params) {
  return request({
    url: '/smartPlatform/data/labeling/getLabelPicturesDetail',
    method: 'get',
    params
  })
}


// 保存标注数据
export function saveLabelingDataAPI(data) {
  return request({
    url: '/smartPlatform/data/labeling/saveLabelingData',
    method: 'post',
    data
  })
}

// 导出标注任务为COCO格式ZIP包（文件下载）
export function exportCocoZipAPI(params) {
  return request({
    url: '/smartPlatform/data/labeling/exportCocoZip',
    method: 'get',
    params,
    // 关键配置：文件下载需指定响应类型为blob，避免解析为JSON
    responseType: 'blob',
  })
}

// 导出标注任务为VOC格式ZIP包（文件下载，与COCO导出配置一致）
export function exportVocZipAPI(params) {
  return request({
    url: '/smartPlatform/data/labeling/exportVocZip',
    method: 'get',
    params,
    // 关键配置：文件下载必须指定响应类型为blob，避免被解析为JSON导致文件损坏
    responseType: 'blob',
  })
}

// 导出图片压缩包
export function exportImagesAPI(params) {
  return request({
    url: '/smartPlatform/data/labeling/exportOnlyImagesZip',
    method: 'get',
    params,
    // 关键配置：文件下载必须指定响应类型为blob，避免被解析为JSON导致文件损坏
    responseType: 'blob',
  })
}
