import request from '@/config/axios'

// ERP 采购比价主表 VO
export interface PurchaseInquiryVO {
  id: number // 比价单编号
  no: string // 比价单号
  productId: number // 产品编号
  productName: string // 产品名称
  requireCount: number // 需求数量
  budgetPrice: number // 预算金额
  inquiryTime: Date // 询价时间
  deadline: Date // 截止日期
  status: number // 状态：10-待询价，20-询价中，30-已完成
  remark: string // 备注
  selectedQuoteId: number // 选中的报价ID
  quotes: PurchaseInquiryQuoteVO[] // 供应商报价列表
}

// ERP 采购比价明细（供应商报价）VO
export interface PurchaseInquiryQuoteVO {
  id: number // 报价编号
  inquiryId: number // 比价单编号
  supplierId: number // 供应商编号
  supplierName: string // 供应商名称
  contactName: string // 联系人
  contactPhone: string // 联系电话
  quoteDate: Date // 报价日期
  unitPrice: number // 单价
  totalPrice: number // 总价
  paymentTerms: string // 付款条件
  deliveryCycle: number // 交货周期（天）
  qualificationFile: string // 资质文件
  remark: string // 备注
  isSelected: boolean // 是否选中
  // 评分字段（用于自动比价）
  priceScore: number // 价格得分（0-100）
  qualityScore: number // 质量得分（0-100）
  deliveryScore: number // 交付得分（0-100）
  serviceScore: number // 服务得分（0-100）
  totalScore?: number // 综合得分（计算得出）
}

// ERP 采购比价 API
export const PurchaseInquiryApi = {
  // 查询采购比价分页
  getPurchaseInquiryPage: async (params: any) => {
    return await request.get({ url: `/erp/purchase-inquiry/page`, params })
  },

  // 查询采购比价详情
  getPurchaseInquiry: async (id: number) => {
    return await request.get({ url: `/erp/purchase-inquiry/get?id=` + id })
  },

  // 新增采购比价
  createPurchaseInquiry: async (data: PurchaseInquiryVO) => {
    return await request.post({ url: `/erp/purchase-inquiry/create`, data })
  },

  // 修改采购比价
  updatePurchaseInquiry: async (data: PurchaseInquiryVO) => {
    return await request.put({ url: `/erp/purchase-inquiry/update`, data })
  },

  // 更新采购比价状态
  updatePurchaseInquiryStatus: async (id: number, status: number) => {
    return await request.put({
      url: `/erp/purchase-inquiry/update-status`,
      params: {
        id,
        status
      }
    })
  },

  // 选中供应商报价
  selectQuote: async (inquiryId: number, quoteId: number) => {
    return await request.put({
      url: `/erp/purchase-inquiry/select-quote`,
      params: {
        inquiryId,
        quoteId
      }
    })
  },

  // 删除采购比价
  deletePurchaseInquiry: async (ids: number[]) => {
    return await request.delete({
      url: `/erp/purchase-inquiry/delete`,
      params: {
        ids: ids.join(',')
      }
    })
  },

  // 导出采购比价 Excel
  exportPurchaseInquiry: async (params: any) => {
    return await request.download({ url: `/erp/purchase-inquiry/export-excel`, params })
  }
}
