import { types } from 'sass';
import List = types.List;

export interface ProdSalesLogVo {
  // 日志ID
  logId: number;
  // 产品编码
  productCode: string;
  // 产品名称
  productName: string;
  // 产品状态
  salesStatus: string;
  // 可销售渠道，
  salesChannel: string;
  // 可销售机构，
  salesInstitution: string;
  // 产品销售起期，
  salesStartDate: string;
  // 产品销售止期
  salesEndDate: string;
  // 停售原因
  reason: string;
  // 操作类型
  operateType: string;
  // 操作人
  operator: string;
  // 操作日期
  operateDate: string;
}
export interface GetProductSalesLogInfoBo extends PageQuery {
  prodSalesLogBo: ProdSalesLogBo;
}

export interface ProdSalesLogBo {
  /**
   * 日志ID
   */
  logId?: number;
  /**
   * 产品编码
   */
  productCode: string;
  /**
   * 产品名称
   */
  productName?: string;
  /**
   * 产品状态
   */
  salesStatus: string;
  /**
   * 产品销售渠道
   */
  salesChannel: string;
  /**
   * 产品销售机构
   */
  salesInstitution: string;
  /**
   * 产品销售起期
   */
  salesStartDate: string;
  /**
   * 产品销售止期
   */
  salesEndDate: string;
  /**
   * 停售原因
   */
  reason?: string;
  /**
   * 操作类型
   */
  operateType?: string;
  /**
   * 操作人
   */
  operator?: string;
  /**
   * 操作日期
   */
  operateDate?: string;
}

export interface ProdSalesStatusVo {
  /**
   * 产品信息
   */
  prodBaseInfoVo: ProdBaseInfoVo;
  /**
   * 销售渠道信息
   */
  prodChannelControlVoList: ProdChannelControlVo;
  /**
   * 销售机构信息
   */
  prodInstitutionControlVoList: ProdInstitutionControlVo;
  /**
   * 停售原因
   */
  stopSalesReason: string;
}

export interface ProdInstitutionControlVo {
  /**
   * 主键
   */
  institutionId: string | number;

  /**
   * 产品编码
   */
  productCode: string;

  /**
   * 可销售机构
   */
  salesInstitution: string;

  /**
   * 可销售状态
   */
  salesStatus: string;

  /**
   * 销售起期
   */
  salesStartDate: string;

  /**
   * 销售止期
   */
  salesEndDate: string;
  /**
   * 修改人
   */
  updateBy: string;
  /**
   * 修改时间
   */
  updateTime: string;
}

export interface ProdChannelControlVo {
  /**
   * 主键
   */
  channelId: string | number;

  /**
   * 产品编码
   */
  productCode: string;

  /**
   * 可销售渠道
   */
  salesChannel: string;

  /**
   * 可销售状态
   */
  salesStatus: string;

  /**
   * 销售起期
   */
  salesStartDate: string;

  /**
   * 销售止期
   */
  salesEndDate: string;

  /**
   * 销售限额
   */
  salesLimit: number;
  /**
   * 修改人
   */
  updateBy: string;
  /**
   * 修改时间
   */
  updateTime: string;
}

export interface ProdBaseInfoVo {
  /**
   * 产品编号
   */
  productCode: string;
  /**
   * 产品名称
   */
  productName: string;

  /**
   * 归属系统
   */
  system: string;

  /**
   * 产品销售状态
   */
  salesStatus: string;

  /**
   * 产品销售起期
   */
  salesStartDate: string;

  /**
   * 产品销售止期
   */
  salesEndDate: string;

  /**
   * 产品销售限额
   */
  salesLimit: number;
}

export interface GetProductSalesInfoBo extends PageQuery {
  prodSalesStatusBo: ProdSalesStatusBo;
}

export interface ProdSalesStatusBo {
  /**
   * 产品编号
   */
  productCode: string;
  /**
   * 产品销售状态
   */
  salesStatus: string;
  /**
   * 产品销售渠道
   */
  salesChannel: List<string>;
  /**
   * 产品销售机构
   */
  salesInstitution: List<string>;
  /**
   * 产品起售日期起期
   */
  startSaleDateBegin: string;
  /**
   * 产品起售日期止期
   */
  startSaleDateEnd: string;
  /**
   * 产品停售日期起期
   */
  stopSaleDateBegin: string;
  /**
   * 产品停售日期止期
   */
  stopSaleDateEnd: string;
}

export interface ProdSalesStatusApplicationBo {
  /**
   * 申请编码
   */
  applicationId: string | number;
  /**
   * 产品编号
   */
  productCode: string;
  /**
   * 产品名称
   */
  productName: string;

  /**
   * 产品销售状态
   */
  salesStatus: string;
  /**
   * 归属系统
   */
  system?: string;
  /**
   * 产品销售状态
   */
  salesStatus: string;
  /**
   * 产品销售起期
   */
  salesStartDate: string;
  /**
   * 产品销售止期
   */
  salesEndDate: string;
  /**
   * 销售限额
   */
  salesLimit: number;
  /**
   * 变更内容
   */
  changeContent: string;
  /**
   * 申请状态
   */
  applicationStatus: string;
  /**
   * 申请人
   */
  applicant: string;
  /**
   * 申请时间
   */
  applicationTime: string;
  /**
   * 是否邮件通知
   */
  emailNotice: string;
  /**
   * 停售原因
   */
  stopSalesReason: string;
}

export interface ProdSalesStatusApplicationVo {
  /**
   * 申请编码
   */
  applicationId: string | number;
  /**
   * 产品编号
   */
  productCode: string;
  /**
   * 产品名称
   */
  productName: string;

  /**
   * 产品销售状态
   */
  salesStatus: string;
  /**
   * 归属系统
   */
  system?: string;
  /**
   * 产品销售状态
   */
  salesStatus: string;
  /**
   * 产品销售起期
   */
  salesStartDate: string;
  /**
   * 产品销售止期
   */
  salesEndDate: string;
  /**
   * 销售限额
   */
  salesLimit: number;
  /**
   * 变更内容
   */
  changeContent: string;
  /**
   * 申请状态
   */
  applicationStatus: string;
  /**
   * 申请人
   */
  applicant: string;
  /**
   * 申请时间
   */
  applicationTime: string;
  /**
   * 是否邮件通知
   */
  emailNotice: string;
  /**
   * 停售原因
   */
  stopSalesReason: string;
  /**
   * 销售渠道
   */
  channelApplicationList: List<ProdChannelBo>;
  /**
   * 销售机构
   */
  institutionApplicationList: List<ProdInstitutionBo>;
}

export interface QueryApplication extends PageQuery {
  /**
   * 申请人
   */
  applicant: string;
}

export interface SalesStatusApplicationVO {
  /**
   * 申请编码
   */
  applicationId: string | number;

  /**
   * 产品编码
   */
  productCode: string;

  /**
   * 产品名称
   */
  productName: string;

  /**
   * 归属系统
   */
  system: string;

  /**
   * 产品销售状态
   */
  salesStatus: string;

  /**
   * 产品销售起期
   */
  salesStartDate: string;

  /**
   * 产品销售止期
   */
  salesEndDate: string;

  /**
   * 产品销售限额
   */
  salesLimit: number;

  /**
   * 变更内容
   */
  changeContent: string;

  /**
   * 申请状态
   */
  applicationStatus: string;

  /**
   * 申请人
   */
  applicant: string;

  /**
   * 申请时间
   */
  applicationTime: string;
}

export interface ProdSalesApplicationBo {
  /**
   * 产品编号
   */
  productCode: string;
  /**
   * 产品名称
   */
  productName: string;

  /**
   * 产品销售状态
   */
  salesStatus: string;
  /**
   * 归属系统
   */
  system?: string;
  /**
   * 产品销售状态
   */
  salesStatus: string;
  /**
   * 产品销售起期
   */
  salesStartDate: string;
  /**
   * 产品销售止期
   */
  salesEndDate: string;
  /**
   * 销售限额
   */
  salesLimit: number;
  /**
   * 变更内容
   */
  changeContent: string;
  /**
   * 申请人
   */
  applicant: string;
  /**
   * 是否邮件通知
   */
  emailNotice: string;
  /**
   * 停售原因
   */
  stopSalesReason: string;
  /**
   * 销售渠道
   */
  channels: List<ProdChannelBo>;
  /**
   * 销售机构
   */
  institutions: List<ProdInstitutionBo>;
}

export interface ProdInstitutionBo {
  /**
   * 产品编号
   */
  productCode: string;
  /**
   * 可销售机构
   */
  salesInstitution: string;
  /**
   * 产品销售起期
   */
  salesStartDate: string;
  /**
   * 产品销售止期
   */
  salesEndDate: string;
  /**
   * 销售限额
   */
  salesLimit: number;
  /**
   * 申请人
   */
  applicant: string;
}

export interface ProdChannelBo {
  /**
   * 产品编号
   */
  productCode: string;
  /**
   * 可销售渠道
   */
  salesChannel: string;
  /**
   * 产品销售起期
   */
  salesStartDate: string;
  /**
   * 产品销售止期
   */
  salesEndDate: string;
  /**
   * 销售限额
   */
  salesLimit: number;
  /**
   * 申请人
   */
  applicant: string;
}

export interface BaseInfoVO {
  /**
   * 产品编码
   */
  productCode: string;

  /**
   * 产品名称
   */
  productName: string;

  /**
   * 归属系统
   */
  system: string;

  /**
   * 产品销售状态
   */
  salesStatus: string;

  /**
   * 产品销售起期
   */
  salesStartDate: string;

  /**
   * 产品销售止期
   */
  salesEndDate: string;

  /**
   * 产品销售限额
   */
  salesLimit: number;

  /**
   * 产品销售渠道
   */
  prodChannelControlList: List<ProdChannelControl>;
  /**
   * 产品销售机构
   */
  prodInstitutionControlList: List<ProdInstitutionControl>;
}

export interface ChannelControlForm {
  /**
   * 主键
   */
  channelId?: string | number;

  /**
   * 产品编码
   */
  productCode?: string;

  /**
   * 可销售渠道
   */
  salesChannel?: string;

  /**
   * 可销售状态
   */
  salesStatus?: string;

  /**
   * 销售起期
   */
  salesStartDate?: string;

  /**
   * 销售止期
   */
  salesEndDate?: string;

  /**
   * 销售限额
   */
  salesLimit?: number;
  /**
   * 修改时间
   */
  updateTime?: string;
  /**
   * 修改人
   */
  updateBy: string;
}

export interface InstitutionControlForm {
  /**
   * 主键
   */
  institutionId?: string | number;

  /**
   * 产品编码
   */
  productCode?: string;

  /**
   * 可销售机构
   */
  salesInstitution?: string;

  /**
   * 可销售状态
   */
  salesStatus?: string;

  /**
   * 销售起期
   */
  salesStartDate?: string;

  /**
   * 销售止期
   */
  salesEndDate?: string;
  /**
   * 修改时间
   */
  updateTime?: string;
  /**
   * 修改人
   */
  updateBy: string;
}

export interface BaseInfoForm extends BaseEntity {
  /**
   * 产品编码
   */
  productCode?: string;

  /**
   * 产品名称
   */
  productName?: string;

  /**
   * 归属系统
   */
  system?: string;

  /**
   * 产品销售状态
   */
  salesStatus?: string;

  /**
   * 产品销售起期
   */
  salesStartDate?: string;

  /**
   * 产品销售止期
   */
  salesEndDate?: string;

  /**
   * 产品销售限额
   */
  salesLimit?: number;
}

export interface BaseInfoQuery extends PageQuery {
  /**
   * 产品编号
   */
  productCode?: string;
  /**
   * 产品名称
   */
  productName?: string;

  /**
   * 归属系统
   */
  system?: string;

  /**
   * 产品销售状态
   */
  salesStatus?: string;

  /**
   * 产品销售起期
   */
  salesStartDate?: string;

  /**
   * 产品销售止期
   */
  salesEndDate?: string;

  /**
   * 产品销售限额
   */
  salesLimit?: number;

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