// 获取周报列表请求参数
export interface WeekReportListReqParams {
  page_no: number // 页码
  page_size: number // 每页条数
  prj_id?: string // 项目编号
  reporter_id?: string // 根据填报人过滤
  begin_from?: string // （查询起始）YYYY-MM-DD HH:NN:SS
  end_to?: string // （查询至）YYYY-MM-DD HH:NN:SS
}

// 添加周报信息请求参数
export interface AddWeekReportReqParams {
  prj_id?: string // 项目编号
  summary: string // 本周总结
  plan: string // 下周计划
  issues?: string // 需要协调的问题,
  attachments: string[]
}

// 修改周报信息请求参数
export interface ModifyWeekReportReqParams {
  id: string // 周报编号
  summary?: string // 本周总结
  plan?: string // 下周计划
  issues?: string // 需要协调的问题
  attachments?: string[]
}

// 删除周报信息请求参数
export interface RemoveWeekReportReqParams {
  id: string // 周报编号
}

// 周报列表返回具体参数
export interface WeekReport {
  id: string // 周报编号
  year: string // 年份
  status: number // 周报状态：10=起草，20=提交，30=撤回，40=驳回，100=已审阅
  week: number // 第几周
  begin_from: string // 周开始日（YYYY-MM-DD）
  end_to: string // 周结束日（YYYY-MM-DD）
  reporter_id: string // 填报人id
  reporter_name: string // 填报人姓名
  created_at: string // 创建日期 YYYY-MM-DD
  prj_name: string
  prj_id: string
}

// 周报列表返回参数
export interface WeekReportListResParams extends BaseResParams {
  page_count: number // 当前页数量
  page_no: number // 当前页码
  total: number // 总数
  list: WeekReport[]
}

// 添加周报成功返回参数
export interface AddWeekReportResParams extends BaseResParams {
  id: string
}

// 附件列表具体参数
export interface Attachments {
  obj_id: string // oss object name
  filename: string // 附件文件名
  uploaded_at?: string
  size?: string
}

// 周报详情返回参数
export interface WeekReportDetailResParams extends WeekReport, BaseResParams {
  issues?: string
  plan: string
  summary: string
  attachments: Attachments[] // 附件列表
}

// 获取上传周报附件的url请求参数
export interface WeekReportUploadFileUrlReqParams {
  report_id?: string // 周报编号
  filename: string // 附件文件名
  prj_id: string // 项目编号
}

// 获取上传周报附件的url返回参数
export interface WeekReportUploadFileUrlResParams {
  object_name: string // 附件id   即附件object name
  url: string // 用于上传周报附件的oss url，有效期5分钟
  form_data: object
}

// 获取下载周报附件的url请求参数
export interface WeekReportDownloadFileUrlReqParams {
  id: string // 附件oss object name
}

// 获取下载周报附件的url请求参数
export type WeekReportDownloadFileUrlResParams =
  WeekReportUploadFileUrlResParams

// 创建后的项目周报，需要提交，才进入后续流程。
export type CommitWeekReportReqParams = RemoveWeekReportReqParams

// 提交后的项目周报，如还没有被审阅，可以撤回后重新修改。
export type WithdrawWeekReportReqParams = RemoveWeekReportReqParams
