export interface DocumentVO {
  /**
   * 序号
   */
  id: string | number;

  /**
   * 所属文件夹
   */
  folderId: string | number;

  /**
   * 文件夹名称
   */
  folderName?: string;

  /**
   * 文档标识
   */
  specification?: string;

  /**
   * 文档标识标签
   */
  specificationLabel?: string;

  /**
   * 计划文件名称/文件名称
   */
  name: string;

  /**
   * 实际文档名称
   */
  actualDocumentName?: string;

  /**
   * 实际文档地址
   */
  actualDocumentUrl?: string;

  /**
   * 计划文件类型
   */
  planType?: string;

  /**
   * 计划文件类型标签
   */
  planDocumentTypeLabel?: string;

  /**
   * 状态
   */
  status?: number;

  /**
   * 递交截止时间
   */
  submitDeadline?: string;

  /**
   * 文档本体URL
   */
  url?: string;

  /**
   * 实际文档ID
   */
  actualDocument?: string | number;

  /**
   * 递交时间
   */
  submitTime?: string;

  /**
   * 备注
   */
  note?: string;

  /**
   * 创建时间
   */
  createTime?: string;

  /**
   * 更新时间
   */
  updateTime?: string;

  /**
   * 创建者ID
   */
  createBy?: string | number;

  /**
   * 递交人名称
   */
  submitterName?: string;

  /**
   * 递交人ID
   */
  submitter?: string | number;

  /**
   * 计划递交人名称
   */
  planSubmitterName?: string;

  /**
   * 计划递交人ID
   */
  planSubmitter?: string | number;

  /**
   * 文档类型：0-非计划文档，1-计划文档
   */
  type?: number;

  /**
   * 规格类型
   */
  specificationType?: number;

  /**
   * 是否需要寄送
   */
  sendFlag?: boolean;

  /**
   * 寄送状态
   */
  sendStatus?: boolean;
}

export interface DocumentForm extends BaseEntity {
  /**
   * 序号
   */
  id?: string | number;

  /**
   * 名称/计划名称
   */
  name?: string;

  /**
   * 文档类型：0-非计划文档，1-计划文档
   */
  type?: number;

  /**
   * 递交人ID
   */
  submitterId?: string | number;

  /**
   * 递交人ID
   */
  submitter?: string | number;

  /**
   * 计划递交人ID
   */
  planSubmitter?: string | number;

  /**
   * 所属文件夹ID
   */
  folderId?: string | number;

  /**
   * 递交截止日期
   */
  submitDeadline?: string;

  /**
   * 计划文件类型
   */
  planType?: string;

  /**
   * 实际文档ID
   */
  actualDocument?: string | number | null;

  /**
   * 状态
   */
  status?: number;

  /**
   * 递交时间
   */
  submitTime?: string;

  /**
   * 项目ID
   */
  projectId?: string | number;

  /**
   * 备注
   */
  note?: string;

  /**
   * 是否需要寄送
   */
  sendFlag?: boolean;

  /**
   * 生效日期
   */
  effectiveDate?: string;
}

export interface DocumentQuery extends PageQuery {
  /**
   * 文件名（模糊检索）
   */
  name?: string;

  /**
   * 文件夹ID
   */
  folderId?: string | number;
}

/**
 * 文档标识表单
 */
export interface DocumentMarkForm {
  /**
   * 文档ID
   */
  id: string | number;

  /**
   * 文档标识类型
   */
  type: string;

  /**
   * 语言
   */
  language?: string;

  /**
   * 版本
   */
  version?: string;

  /**
   * 版本日期
   */
  versionDate?: string;

  /**
   * 伦理递交日期
   */
  ethicsSubmissionDate?: string;

  /**
   * 伦理批准日期
   */
  ethicsApprovalDate?: string;
}

/**
 * 文档审核表单
 */
export interface DocumentAuditForm {
  /**
   * 文档ID
   */
  documentId: string | number;

  /**
   * 审核结果：3-通过，2-驳回
   */
  result: number;

  /**
   * 驳回理由
   */
  rejectReason?: string;
}

/**
 * 文档递交表单
 */
export interface DocumentSubmitForm {
  /**
   * 文档ID
   */
  documentId: string | number;

  /**
   * 文件本体OSS ID
   */
  ossId: string | number;

  /**
   * 生效日期
   */
  effectiveDate?: string;
}

/**
 * 指定文档查询参数
 */
export interface DocumentSpecifyQuery extends PageQuery {
  /**
   * 项目ID
   */
  projectId: string | number;

  /**
   * 文件名（模糊检索）
   */
  name?: string;
}

/**
 * 指定文档列表项
 */
export interface DocumentSpecifyVO {
  /**
   * 文档ID
   */
  id: string | number;

  /**
   * 文档名称
   */
  name: string;

  /**
   * 文件夹名称
   */
  folder: string;

  /**
   * 状态
   */
  status: number;

  /**
   * 递交截止时间
   */
  deadline: string;

  /**
   * 计划递交人
   */
  planSubmitter: string;

  /**
   * 创建人
   */
  createBy: string;

  /**
   * 创建时间
   */
  createTime: string;
}

/**
 * 指定文档表单
 */
export interface DocumentSpecifyForm {
  /**
   * 临时文档ID
   */
  documentId: number | string;

  /**
   * 指定递交缺失的文档ID（可选）
   */
  missingDocumentId?: number | string;

  /**
   * 指定文件夹ID（可选）
   */
  folderId?: number | string;
}
