import { request } from '@/service/request';
// 参数接口
export interface ArchivesParams {
  id?: number;
  archiveNumber?: string;
  studentNumber?: string;
  filePath?: string;
  arctype?: string;
  remarks?: string;
  filetype?: string;
  createTime?: Record<string, unknown>;
  modifyTime?: Record<string, unknown>;
  validityTime?: Record<string, unknown>;
  managerId?: number;
  createDate?: Record<string, unknown>;
  createUid?: number;
}

// 响应接口
export interface ArchivesRes {
  status: boolean;
  msg: string;
  data: any;
  code: number;
}

/**
 * 获取档案
 * @param {object} params EasArcArchives
 * @param {number} params.id
 * @param {string} params.archiveNumber 文件电子档案号
 * @param {string} params.studentNumber 当前电子档案归属那一个学员档案下
 * @param {string} params.filePath 文件存储的路径
 * @param {string} params.arctype 档案类型
 * @param {string} params.remarks 文件备注
 * @param {string} params.filetype 文件类型
 * @param {object} params.createTime 创建时间
 * @param {object} params.modifyTime 修改时间
 * @param {object} params.validityTime 档案有效期截至时间
 * @param {number} params.managerId 档案归属负责人
 * @param {object} params.createDate 档案创建时间, 用于文件归档用
 * @param {number} params.createUid 创建用户ID
 * @returns
 */
export function getArchives(params: ArchivesParams): Promise<Service.RequestResult<ArchivesParams[]>> {
  return request.post(`/archive/getArchives`, params);
}

export function getFile(archiveNumber: string): Promise<Service.RequestResult<ArchivesRes>> {
  return request.get(`/archive/getTokenByArchiveNumber?archiveNumber=${archiveNumber}`);
}

export function upload(
  fileType: string,
  studentNumber: string,
  file: object
): Promise<Service.RequestResult<ArchivesRes>> {
  return request.post(`/student/upload?fileType=${fileType}&studentNumber=${studentNumber}&file=${file}`);
}

// 参数接口
export interface AddArchivesParams {
  id?: number;
  archiveNumber?: string;
  studentNumber?: string;
  filePath?: string;
  arctype?: string;
  remarks?: string;
  filetype?: string;
  createTime?: Record<string, unknown>;
  modifyTime?: Record<string, unknown>;
  validityTime?: Record<string, unknown>;
  managerId?: number;
  createDate?: Record<string, unknown>;
  createUid?: number;
}

// 响应接口
export interface AddArchivesRes {
  status: boolean;
  msg: string;
  data: Record<string, unknown>;
  code: number;
}

/**
 * 添加学员档案
 * @param {object} params EasArcArchives
 * @param {number} params.id
 * @param {string} params.archiveNumber 文件电子档案号
 * @param {string} params.studentNumber 当前电子档案归属那一个学员档案下
 * @param {string} params.filePath 文件存储的路径
 * @param {string} params.arctype 档案类型
 * @param {string} params.remarks 文件备注
 * @param {string} params.filetype 文件类型
 * @param {object} params.createTime 创建时间
 * @param {object} params.modifyTime 修改时间
 * @param {object} params.validityTime 档案有效期截至时间
 * @param {number} params.managerId 档案归属负责人
 * @param {object} params.createDate 档案创建时间, 用于文件归档用
 * @param {number} params.createUid 创建用户ID
 * @returns
 */
export function addArchives(params: AddArchivesParams): Promise<Service.RequestResult<ArchivesRes>> {
  return request.post(`/student/addArchives`, params);
}

/**
 * 删除档案
 * @param {string} id
 * @returns
 */
export function deleteArchives(id: number): Promise<Service.RequestResult<ArchivesRes>> {
  return request.delete(`/student/delArchives/${id}`);
}
