import type { BusinessInfoVO, BusinessInfoForm } from '@/api/customer/businessInfo/types';
import type { CustomerContactVO, CustomerContactForm } from '@/api/customer/customerContact/types';
import type { SalesInfoVO, SalesInfoForm } from '@/api/customer/salesInfo/types';
import type { InvoiceInfoVO, InvoiceInfoForm } from '@/api/customer/invoiceInfo/types';

export interface CustomerInfoVO {
  /**
   * 主键ID
   */
  id: string | number;

  /**
   * 客户编号
   */
  customerNo: string;

  /**
   * 所属公司
   */
  belongCompanyId: string | number;

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

  /**
   * 客户名称
   */
  customerName: string;

  /**
   * 工商名称
   */
  businessCustomerName: string;

  /**
   * 企业简称
   */
  shortName: string;

  /**
   * 开票类型
   */
  invoiceTypeId: string | number;

  /**
   * 企业规模
   */
  enterpriseScaleId: string | number;

  enterpriseScale: string;

  /**
   * 客户类别
   */
  customerTypeId: string | number;

  /**
   * 行业类别
   */
  industryCategoryId: string | number;

  industryCategory: string;

  /**
   * 客户等级
   */
  customerLevelId: string | number;

  /**
   * 固定电话
   */
  landline: string;

  /**
   * 传真
   */
  fax: string;

  /**
   * 网址
   */
  url: string;

  /**
   * 邮政编码
   */
  postCode: string;

  /**
   * 开始时间
   */
  validityFromDate: string | number;

  /**
   * 结束时间
   */
  validityToDate: string | number;

  /**
   * 发票抬头
   */
  invoiceTop: string;

  /**
   * 详细地址（注册地址）
   */
  address: string;

  /**
   * 省份编码
   */
  regProvincialNo: string;

  /**
   * 城市编码
   */
  regCityNo: string;

  /**
   * 区县编码
   */
  regCountyNo: string;

  /**
   * 省市区
   */
  provincialCityCounty: string;

  /**
   * 状态（0正常 1停用）
   */
  status: string;

  /**
   * 备注
   */
  remark: string;

  /**
   * 工商信息
   */
  customerBusinessInfoVo?: BusinessInfoVO;

  /**
   * 销售信息
   */
  customerSalesInfoVo?: SalesInfoVO;

  /**
   * 联系人列表
   */
  customerContactVoList?: CustomerContactVO[];

  /**
   * 开票信息列表
   */
  customerInvoiceInfoVoList?: InvoiceInfoVO[];
}

export interface CustomerInfoForm extends BaseEntity {
  /**
   * 主键ID
   */
  id?: string | number;

  /**
   * 客户编号
   */
  customerNo?: string;

  /**
   * 所属公司
   */
  belongCompanyId?: string | number;

  /**
   * 公司名称
   */
  companyName?: string;

  /**
   * 客户名称
   */
  customerName?: string;

  /**
   * 工商名称
   */
  businessCustomerName?: string;

  /**
   * 企业简称
   */
  shortName?: string;

  /**
   * 开票类型
   */
  invoiceTypeId?: string | number;

  /**
   * 企业规模
   */
  enterpriseScaleId?: string | number;

  /**
   * 客户类别
   */
  customerTypeId?: string | number;

  /**
   * 行业类别
   */
  industryCategoryId?: string | number;

  /**
   * 客户等级
   */
  customerLevelId?: string | number;

  /**
   * 固定电话
   */
  landline?: string;

  /**
   * 传真
   */
  fax?: string;

  /**
   * 网址
   */
  url?: string;

  /**
   * 邮政编码
   */
  postCode?: string;

  /**
   * 开始时间
   */
  validityFromDate?: string | number;

  /**
   * 结束时间
   */
  validityToDate?: string | number;

  /**
   * 发票抬头
   */
  invoiceTop?: string;

  /**
   * 详细地址（注册地址）
   */
  address?: string;

  /**
   * 省份编码
   */
  regProvincialNo?: string;

  /**
   * 城市编码
   */
  regCityNo?: string;

  /**
   * 区县编码
   */
  regCountyNo?: string;

  /**
   * 省市区
   */
  provincialCityCounty?: string;

  /**
   * 状态（0正常 1停用）
   */
  status?: string;

  /**
   * 备注
   */
  remark?: string;

  /**
   * 工商信息
   */
  customerBusinessBo?: BusinessInfoForm;

  /**
   * 销售信息
   */
  customerSalesInfoBo?: SalesInfoForm;

  /**
   * 联系人列表
   */
  customerContactBoList?: CustomerContactForm[];

  /**
   * 开票信息列表
   */
  customerInvoiceInfoBoList?: InvoiceInfoForm[];
}

export interface CustomerInfoQuery extends PageQuery {
  /**
   * 客户编号
   */
  customerNo?: string;

  /**
   * 所属公司
   */
  belongCompanyId?: string | number;

  /**
   * 公司名称
   */
  companyName?: string;

  /**
   * 客户名称
   */
  customerName?: string;

  /**
   * 工商名称
   */
  businessCustomerName?: string;

  /**
   * 企业简称
   */
  shortName?: string;

  /**
   * 开票类型
   */
  invoiceTypeId?: string | number;

  /**
   * 企业规模
   */
  enterpriseScaleId?: string | number;

  /**
   * 客户类别
   */
  customerTypeId?: string | number;

  /**
   * 行业类别
   */
  industryCategoryId?: string | number;

  /**
   * 客户等级
   */
  customerLevelId?: string | number;

  salesPersonId?: string | number;

  serviceStaffId?: string | number;

  belongingDepartmentId?: string | number;

  /**
   * 固定电话
   */
  landline?: string;

  /**
   * 传真
   */
  fax?: string;

  /**
   * 网址
   */
  url?: string;

  /**
   * 邮政编码
   */
  postCode?: string;

  /**
   * 开始时间
   */
  validityFromDate?: string | number;

  /**
   * 结束时间
   */
  validityToDate?: string | number;

  /**
   * 发票抬头
   */
  invoiceTop?: string;

  /**
   * 详细地址（注册地址）
   */
  address?: string;

  /**
   * 省份编码
   */
  regProvincialNo?: string;

  /**
   * 城市编码
   */
  regCityNo?: string;

  /**
   * 区县编码
   */
  regCountyNo?: string;

  /**
   * 省市区
   */
  provincialCityCounty?: string;

  /**
   * 状态（0正常 1停用）
   */
  status?: string;

  /**
   * 平台标识
   */
  platformCode?: string;

  customerTag?: string;

  /**
   * 日期范围参数
   */
  params?: any;
}
