// 获取合同列表请求参数
export interface ContractListReqParams {
  page_no: number // 页码
  page_size: number // 每页条数
  name?: string // 合同名称
  prj_name?: string // 根据项目名称过滤（模糊匹配）
  customer_name?: string // 根据客户名称过滤（模糊匹配）
  status?: number // 根据合同状态过滤
  handler_id?: number // 根据合同签订人过滤
  begin_from?: string // 合同签订时间（查询起始）YYYY-MM-DD
  end_to?: string // 合同签订时间（查询至）YYYY-MM-DD
  binded?: boolean // 传false 获取未绑定合同信息
}

export interface Payment {
  isCreated?: boolean // 操作新增时出现
  condition: string // 收款条件
  percent: number // 收款比例
  expect_pay_date: string // 预计收款日
  memo?: string // 备注
}

// 添加合同信息请求参数
export interface AddContractReqParams {
  prj_id?: string // 项目编号
  name: string // 合同名称
  customer_id: string // 客户id
  handler_id: string // 合同签订人id
  signed_at: string // 合同签订日期（YYYY-MM-DD）
  begin_at: string // 合同起始日
  end_at?: string // 合同终止日
  amount: number // 合同总金额（万元
  comment?: string // 合同摘要
  payments?: Payment[] // 收款约定
  memo?: string
}

// 修改合同信息请求参数
export interface ModifyContractReqParams {
  id: string // 合同编号
  name?: string // 合同名称
  customer_id?: string // 客户id
  handler_id?: string // 合同签订人id
  signed_at?: string // 合同签订日期（YYYY-MM-DD）
  begin_at?: string // 合同起始日
  end_at?: string // 合同终止日
  amount?: number // 合同总金额（万元
  comment?: string // 合同摘要
  payments?: Payment[] // 收款约定
}

// 获取上传合同附件的url请求参数
export interface ContractUploadDocUrlReqParams {
  id: string // 合同编号
  type_id: number // 附件类型：10=打印件，20=扫描件
  filename: string
}

// 获取上传合同附件的url返回参数
export interface ContractUploadDocUrlResParams {
  form_data: object
  url: string // 用于上传合同附件的oss url，有效期5分钟
  object_name: string
}

// 获取下载合同附件的url请求参数
export interface ContractDownloadDocUrlReqParams {
  id: string // 合同编号
  type_id: number // 附件类型：10=打印件，20=扫描件
}

// 获取下载合同附件的url请求参数
export type ContractDownloadDocUrlResParams = ContractUploadDocUrlResParams

export type RemoveContractDocUrlReqParams = ContractDownloadDocUrlReqParams

// 合同列表返回具体参数
export interface Contract {
  id: string // 合同编号
  name: string // 合同名称
  customer_id: string // 客户编号
  customer_name: string // 客户名称
  prj_id: string // 项目编号
  prj_name: string // 项目名称
  amount: number // 合同总金额（万元）
  handler_id: string // 合同签订人id
  handler_name: string // 签订人名称
  leader_id: string // 项目负责人账号id
  leader_name: string // 项目负责人姓名
  created_at: string // 创建日期（YYYY-MM-DD）
  signed_at: string // 合同签订日期（YYYY-MM-DD）
  begin_at: string // 合同起始日期（YYYY-MM-DD）
  end_at?: string // 合同终止日期（YYYY-MM-DD)
}

// 合同列表返回参数
export interface ContractListResParams extends BaseResParams {
  page_count: number // 当前页数量
  page_no: number // 当前页码
  total: number // 总数
  list: Contract[]
}

// 添加合同成功返回参数
export interface AddContractResParams extends BaseResParams {
  id: string
}

// 合同概览返回参数
export interface ContractDetailResParams extends Contract, BaseResParams {
  payments?: Payment[]
  comment?: string // 合同摘要
  doc_id?: string // 合同打印件 oss object name
  doc_name?: string // 合同打印件文件名
  doc_uploaded: boolean
  pdf_uploaded: boolean
  pdf_id?: string // 合同扫描件 oss object name
  pdf_name?: string // 合同扫描件文件名
  created_name?: string
}

export interface StatList {
  name: string
  value: number
  unit: string
  color?: string
}

export interface ContractStatResParams {
  list: StatList[]
}
