import request from '@/config/axios'

// 客户拜访记录 VO
export interface InfoVO {
  id: number // 主键ID
  customerName: string // 客户姓名
  contact: string // 联系方式（客户手机号）
  companyName: string // 客户公司名称
  provinceName: string // 省名称
  cityName: string // 市名称
  areaName: string // 区名称
  locationText: string // 定位地址文字描述
  longitude: number // 经度
  latitude: number // 纬度
  locationImage: string // 定位静态图URL
  visitDate: Date // 拜访日期
  customerStatus: number // 性质等级
  visitProductIds: string // 拜访品种（多选，逗号分隔）
  visitMethod: number // 拜访方式（字典）
  visitType: number // 拜访类型（字典）
  serviceContent: string // 服务内容
  customerFeedback: string // 客户反馈
  serviceImages: string // 服务记录图片URL列表（JSON数组）
  department: string // 客户部门
}

export interface InfoPrintVO {
  /** 联系方式 */
  contact: string;

  /** 客户公司名称 */
  companyName: string;

  /** 客户部门 */
  department?: string;

  /** 定位静态图（URL） */
  locationImage: string;

  /** 最近四次拜访日期 */
  visitDate: string[]; // ISO 格式字符串，或可用 Date[] 视后端返回而定

  /** 拜访品种 */
  visitProductNames?: string;

  /** 最近四次服务内容 */
  serviceContent: string[];

  /** 服务记录图片URL列表（逗号分隔的字符串） */
  serviceImages: string;

  /** 业务员 */
  salesman: string;

  /** 服务数量 */
  serviceCount: number;
}
// 客户拜访记录 API
export const InfoApi = {
  // 查询客户拜访记录分页
  getInfoPage: async (params: any) => {
    return await request.get({ url: `/visit/info/page`, params })
  },

  // 查询客户拜访记录详情
  getInfo: async (id: number) => {
    return await request.get({ url: `/visit/info/get?id=` + id })
  },

  //查询打印客户拜访记录
  getPrintListByIds: async (ids: string) => {
    return await request.get({ url: `/visit/info/getPrintListByIds`, params: { ids } })
  },


  //查询打印客户拜访记录
  getPrintListByCompanyName: async (companyName: string) => {
    return await request.get({ url: `/visit/info/getPrintListByCompanyName`, params: { companyName } })
  },

  // 新增客户拜访记录
  createInfo: async (data: InfoVO) => {
    return await request.post({ url: `/visit/info/create`, data })
  },

  // 修改客户拜访记录
  updateInfo: async (data: InfoVO) => {
    return await request.put({ url: `/visit/info/update`, data })
  },

  // 删除客户拜访记录
  deleteInfo: async (id: number) => {
    return await request.delete({ url: `/visit/info/delete?id=` + id })
  },

  // 导出客户拜访记录 Excel
  exportInfo: async (params) => {
    return await request.download({ url: `/visit/info/export-excel`, params })
  },
}
