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

// 获取展示数据表格
export interface TableQueryForm {
  pageNumber: Number,     // 页码
  pageSize: Number,       // 页大小
  source?: Number,        // 问题单来源：1-AI检测、2-人工上报
  issueType?: Number,     // 问题单类型
  workspaceId?: Number[], // 工位id/地点
  issueState?: Number,    // 问题单状态：1-待审核、2-待处理、3-待复核、4-已退回、5-已处理
};
export const getShowTableData = (body: TableQueryForm) => {
  return http.request({
    url: '/issueManagement/getIssueDisplayListPageByCondition',
    method: 'post',
    data: body,
  });
};

// 添加展示表格接口（添加btn）
export interface AddForm {
  source: Number,         // 问题单来源：1-AI检测、2-人工上报
  issueType: Number,      // 问题单类型
  description: String,    // 问题描述
  pictures: Array<string>,// 图片
  workspaceId: Number,    // 工位id/地点
  issueTime: String,      // 问题时间（默认是creatAt）
  issueState: Number,     // 问题单状态：1-待审核、2-待处理、3-待复核、4-已退回、5-已处理
};
export const addShowTableData = (body: AddForm) => {
  return http.request({
    url: '/issueManagement/addIssueDisplay',
    method: 'post',
    data: body,
  });
};

// 删除展示表格接口（delete)
export const deleteShowTableData = (ids: number[]) => {
  return http.request({
    url: `/issueManagement/deleteIssueDisplay?issueId=${ids.join(',')}`,
    method: 'delete',
  });
};

// 编辑展示表格接口（edit）
export interface EditForm {
  id: Number,             // 问题单Id，表格data获取
  source: Number,         // 问题单来源：1-AI检测、2-人工上报
  issueType: Number,      // 问题单类型
  description: String,    // 问题描述
  pictures: Array<string>,// 图片
  workspaceId: Number,    // 工位id/地点
  issueTime: String,      // 问题时间（默认是creatAt）
  issueState: Number,     // 问题单状态：1-待审核、2-待处理、3-待复核、4-已退回、5-已处理
  isHide?: Boolean,       // 问题单是否隐藏（根据UI编辑/添加表单没有这个选项。改变隐藏显示另有接口） 
};
export const EditShowTableData = (body: EditForm) => {
  return http.request({
    url: '/issueManagement/editIssueDisplay',
    method: 'put',
    data: body,
  });
};

// 更新展示表格状态（show/hide）
export interface UpdateList {
  id: Number[],         // 问题单id，可批量操作
  isHide?: Boolean,     // 是否隐藏
};
export const updateShowTableData = (body: UpdateList) => {
  return http.request({
    url: '/issueManagement/updateIssueDisplayList',
    method: 'put',
    data: body,
  });
};
