export interface PersonTaskFile {
  id?: string;
  name?: string;
  url?: string;
  fileExt?: string;
  previewType?: 'image' | 'video' | 'audio' | 'pdf' | 'office' | 'other' | string;
}

export interface PersonTaskItem {
  id: string;
  taskId?: string;
  taskNo?: string;
  subject?: string;
  category?: string;
  trainMode?: string;
  evalMode?: string;
  startTime?: string;
  endTime?: string;
  closeTime?: string;
  placeName?: string;
  keyPoints?: string;
  bizStatus?: string;
  signTime?: string;
  signed?: boolean;
  canSign?: boolean;
  signTip?: string;
  learnSeconds?: number;
  learnedSeconds?: number;
  requiredHours?: number;
  requiredSeconds?: number;
  learnStatus?: string;
  examScore?: number;
  passFlag?: string;
  paperId?: string;
  paperName?: string;
  canExam?: boolean;
  examTip?: string;
  files?: PersonTaskFile[];
}

export interface PersonTaskLearnResult {
  learnedSeconds?: number;
  requiredSeconds?: number;
  learnStatus?: string;
  bizStatus?: string;
  canExam?: boolean;
  examTip?: string;
  autoCompleted?: boolean;
  message?: string;
}

export interface PersonTaskSignResult {
  signTime?: string;
  bizStatus?: string;
  signed?: boolean;
  canSign?: boolean;
  signTip?: string;
  canExam?: boolean;
  examTip?: string;
  message?: string;
}

export interface PersonTaskPageQuery {
  keyword?: string;
  bizStatus?: string;
  currentPage?: number;
  pageSize?: number;
  [key: string]: any;
}
