import type { TmsDicOpt } from '#/views/x/tms/shared/dic';

export interface TaskEntity {
  id?: string;
  taskNo?: string;
  category?: string;
  trainType?: string;
  sourceType?: string;
  sourcePlanNo?: string;
  sourceId?: string;
  sourceItemId?: string;
  subject?: string;
  keyPoints?: string;
  materialId?: string;
  materialNo?: string;
  placeId?: string;
  placeNo?: string;
  placeName?: string;
  startTime?: string;
  endTime?: string;
  closeTime?: string;
  paperId?: string;
  paperName?: string;
  examStart?: string;
  examEnd?: string;
  teacherId?: string;
  teacherName?: string;
  trainMode?: string;
  evalMode?: string;
  traineeIds?: string[];
  trainees?: string;
  taskKind?: string;
  prevTaskNo?: string;
  publishStatus?: string;
  publishTime?: string;
  retakeLimit?: number;
  passScore?: number;
  quizRatio?: number;
  overdueRemind?: string;
  inviteFlag?: string;
  remark?: string;
  creatorTime?: string;
  creatorUserId?: string;
  personCount?: number;
  personTasks?: PersonTaskItem[];
  files?: TaskFile[];
}

export interface PersonTaskItem {
  id?: string;
  userId?: string;
  userName?: string;
  deptId?: string;
  bizStatus?: string;
  signTime?: string;
  examScore?: number;
  passFlag?: string;
  guestFlag?: string;
}

export interface TaskFile {
  id?: string;
  fileNo?: string;
  fileName?: string;
  materialId?: string;
  fileJson?: string;
  canDownload?: string;
}

export interface TaskPageQuery {
  keyword?: string;
  publishStatus?: string;
  trainMode?: string;
  sourceType?: string;
  startTimeFrom?: string;
  startTimeTo?: string;
  currentPage?: number;
  pageSize?: number;
  [key: string]: any;
}

export type DicOpt = TmsDicOpt;
