import request from '@/config/axios'

// 特种岗位人员台账 VO
export interface SpecialPersonnelVO {
  id?: number // 编号
  name: string // 姓名
  position: string // 岗位
  trainingContent: string // 培训内容
  certificateNumber: string // 证书编号
  issueDate: string // 发证日期
  validDate: string // 有效期
  attachments?: AttachmentVO[] // 附件
  remark?: string // 备注
  createTime?: string // 创建时间
}

export interface AttachmentVO {
  url: string // 文件地址
  name: string // 文件名称
  size: number // 文件大小
}

export interface SpecialPersonnelPageReqVO {
  pageNo?: number // 页码
  pageSize?: number // 每页数量
  name?: string // 姓名
  position?: string // 岗位
  certificateNumber?: string // 证书编号
  remark?: string // 备注
  issueDateRange?: string[] // 发证日期范围
  validDateRange?: string[] // 有效期范围
  issueDateStart?: string // 发证开始日期
  issueDateEnd?: string // 发证结束日期
  validDateStart?: string // 有效期开始日期
  validDateEnd?: string // 有效期结束日期
}

export interface SpecialPersonnelExportReqVO {
  name?: string // 姓名
  position?: string // 岗位
  certificateNumber?: string // 证书编号
  remark?: string // 备注
  issueDateStart?: string // 发证开始日期
  issueDateEnd?: string // 发证结束日期
  validDateStart?: string // 有效期开始日期
  validDateEnd?: string // 有效期结束日期
  createTime?: string[] // 创建时间
}

// 特种岗位人员台账 API
export const SpecialPersonnelApi = {
  // 查询特种岗位人员台账分页
  getSpecialPersonnelPage: async (params: SpecialPersonnelPageReqVO) => {
    return await request.get({ url: '/safe/special-personnel/page', params })
  },

  // 查询特种岗位人员台账详情
  getSpecialPersonnel: async (id: number) => {
    return await request.get({ url: '/safe/special-personnel/get?id=' + id })
  },

  // 新增特种岗位人员台账
  createSpecialPersonnel: async (data: SpecialPersonnelVO) => {
    return await request.post({ url: '/safe/special-personnel/create', data })
  },

  // 修改特种岗位人员台账
  updateSpecialPersonnel: async (data: SpecialPersonnelVO) => {
    return await request.put({ url: '/safe/special-personnel/update', data })
  },

  // 删除特种岗位人员台账
  deleteSpecialPersonnel: async (id: number) => {
    return await request.delete({ url: '/safe/special-personnel/delete?id=' + id })
  },

  // 导出特种岗位人员台账 Excel
  exportSpecialPersonnelExcel: async (params) => {
    return await request.download({ url: '/safe/special-personnel/export-excel', params })
  },

  // 导入特种岗位人员台账 Excel
  importSpecialPersonnelExcel: async (file: File) => {
    const formData = new FormData()
    formData.append('file', file)
    return await request.upload({ url: '/safe/special-personnel/import-excel', data: formData })
  },

  // 下载特种岗位人员台账导入模板
  downloadImportTemplate: async () => {
    return await request.download({ url: '/safe/special-personnel/get-import-template' })
  }
}

