// 获取交付物列表请求参数
export interface OutcomeListReqParams {
  task_id: string // 任务项id
  draft: boolean // 是否是副本
}

// 获取交付物详情请求参数
export interface OutcomeDetailReqParams {
  outcome_id: string // 交付物id
  draft: boolean // 是否是副本
}

// 添加交付物信息请求参数
export interface AddOutcomeReqParams {
  task_id: string // 任务项id
  draft: boolean // 是否是副本
  name: string // 交付物名称
  // handler_id: string // 交付物签订人id
  description?: string // 实际交付时间（YYYY-MM-DD）
  plan_time: string // 计划交付时间（YYYY-MM-DD）
}

export interface RemoveOutcomeReqParams {
  id: string
  draft: boolean // 是否是副本
}

// 修改交付物信息请求参数
export interface ModifyOutcomeReqParams {
  id: string // 交付物编号
  draft: boolean
  name?: string // 交付物名称
  // handler_id?: string // 交付物签订人id
  plan_time?: string // 计划交付时间（YYYY-MM-DD）
  description?: string // 实际交付时间（YYYY-MM-DD）
}

// 获取上传交付物的url请求参数
export interface OutcomeUploadUrlReqParams {
  id: string // 交付物编号
  filename: string
}

// 获取上传交付物的url请求参数
export interface RemoveOutcomeFileReqParams {
  id: string // 交付物编号
}

// 获取上传交付物附件的url返回参数
export interface OutcomeUploadUrlResParams {
  url: string // 用于上传交付物附件的oss url，有效期5分钟
  form_data: { [key: string]: any }
  object_name: string
}

// 获取下载交付物的url请求参数
export interface OutcomeDownloadUrlReqParams {
  id: string // 交付物编号
}

// 获取下载交付物的url请求参数
export interface OutcomeDownloadUrlResParams {
  url: string // 用于下载交付物的oss url，有效期5分钟
  filename: string
}

// 交付物列表返回具体参数
export interface Outcome {
  id: string // 交付物编号
  name: string // 交付物名称
  plan_time: string // 计划交付时间（YYYY-MM-DD）
  completed_at?: string // 实际完成时间（YYYY-MM-DD）
  isCreated?: boolean // 是否为新增 web自定义参数
  status?: number
  uploaded?: boolean
  object_name?: string
  filename?: string
  file_size?: number
  // handler_id: string // 交付人id
  // handler_name: string // 交付人名称
  // need_review: boolean // 是否需要审核
}

// 交付物列表返回参数
export interface OutcomeListResParams extends BaseResParams {
  list: Outcome[]
}

// 添加交付物成功返回参数
export interface AddOutcomeResParams extends BaseResParams {
  id: string
}

// 交付物概览返回参数
export interface OutcomeDetailResParams extends Outcome {
  prj_id: string // 项目id
  prj_name: string // 项目名称
  task_id: string // 任务项id
  task_name: string // 任务项名称
  description?: string // 实际交付时间（YYYY-MM-DD）
  bp_id?: string // 审核业务流程id（使用通用审核流程接口）
  creator_name?: string
  created_at?: string
  updated_at?: string
  handler_name: string
}
