import request from '@/config/axios'

// 合同信息主表 VO
export interface MainVO {
  id: number // 主键ID
  contractNo: string // 合同编号
  partyACompany: string // 甲方公司
  contractType: number // 合同类型:1-销售合同;2-采购合同
  partyBCompany: string // 乙方公司
  currency: string // 币种
  effectiveDate: string // 生效日期
  projectCode: string // 项目编码
  contractName: string // 合同名称
  handlingDepartment: string // 经办部门
  paymentTerms: string // 付款条件
  currentContractAmount: number // 本次合同金额
  expiryDate: Date // 失效日期
  projectName: string // 项目名称
  handler: string // 经办人
  contractStatus: string // 合同状态
  contractCategory: string // 合同类别
  isMainContract: number // 主合同标记:0-否;1-是
  paidAmount: number // 已付金额
  isContractPaymentMarked: number // 以合同付款标记:0-否;1-是
  approvalStatus: string // 合同审批状态
  sourceDocumentNo: string // 来源单号
  totalContractAmount: number // 累计合同金额
  partyBSignDate: string // 乙方签字日期
  mainContractNo: string // 主合同编号
  contractVersion: string // 合同版本
  remarks: string // 备注
  terminationDate: string // 终止日期
  terminationReason: string // 终止原因
}

// 合同信息主表 API
export const MainApi = {
  // 查询合同信息主表分页
  getMainPage: async (params: any) => {
    return await request.get({ url: `/contract/main/page`, params })
  },

  // 查询合同信息主表详情
  getMain: async (id: number) => {
    return await request.get({ url: `/contract/main/get?id=` + id })
  },

  // 新增合同信息主表
  createMain: async (data: MainVO) => {
    return await request.post({ url: `/contract/main/create`, data })
  },

  // 修改合同信息主表
  updateMain: async (data: MainVO) => {
    return await request.put({ url: `/contract/main/update`, data })
  },

  // 删除合同信息主表
  deleteMain: async (id: number) => {
    return await request.delete({ url: `/contract/main/delete?id=` + id })
  },

  // 删除合同信息主表
  deleteMainList: async (ids: number[]) => {
    return await request.delete({ url: `/contract/main//delete-list?id=`, params: { ids: ids.join(',') } })
  },

  // 导出合同信息主表 Excel
  exportMain: async (params) => {
    return await request.download({ url: `/contract/main/export-excel`, params })
  }
}
