export interface SupplierModel {
  id?: string; // 供应商ID
  name?: string; // 供应商名称
  detailAddress?: string; // 详细地址
  kahuna?: string; // 负责人
  phone?: string; // 联系电话
  collaborateDeptId?: number; // 合作机构ID
  conditioningProgramTypes?: string[]; // 	可供应的方案类型
  collaborateDepts: {
    deptIds: number; // 合作机构ID
    deptNames: string; // 合作机构名称
  }[];
  onlineCPTypes?: string[]; // 居家项目
  offlineCPTypes?: string[]; // 线下项目
  outlineCPTypes?:string[];//线上权益
  wechatPaymentType?:string; //1-个人openid 2-商户号	
  wechatPaymentAccount?:string; //微信接收方账号
  profitSharing?:string; //	分账比例
  businessTime?:string; //营业时间,比如：08:10,12:10,23:59
  businessStatus?:string; //	营业状态 1-营业 2-休息 3-停业	
}
export type SupplierQuery = Partial<SupplierModel>;

export interface SystemItemModel {
  addType?: 'system' | 'itemsList' | 'confirm'; // 新增类型 system 系统调理包 itemsList 项目列表 confirm 确认项目
  id?: string; //调理方案ID
  name?: string; // 项目名称
  sourceId?: string; // 来源id
  conditioningProgramType?: string; // 	调理方案类型
  collaborateDeptId?: number; // 合作机构ID
  conditioningProgramTypes?: string[]; // 调理方案类型
  offlineDuration?: string; // 服务所需时间（分钟）
  frequencyType?: string; // 建议频率天数
  frequencyMeasure?: number; // 建议频率次数/用量
  pricingType?: string; // 计价方式
  institutionId?: string; // 所属机构ID
  institutionName?: string; // 所属机构名称
  isSystemic?: string; // 是否系统项目方案
  status?: string; // 项目状态
  sellType?: string; // 商品类型
  conditioningProgramPhoto?: string; // 项目图片
  conditioningProgramName?: string; // 项目名称

  conditioningProgramSupplierName?: string; // 供应商名称
  conditioningProgramSupplierId?: string; // 供应商ID
  cpPatientMatchRule: {
    sex: string; // 性别
    age: string; // 年龄
    diagnoseDiseaseNames: string[]; // 疾病
    diagnoseSyndromeNames: string[]; // 证型
    constitutionGroupNames: string[]; // 体质
    willillStateNames: string[]; // 欲病状态
    tabooCrowds: string[]; // 禁忌
  };
  cpFixedPricingRule: {
    unitPrice: string; // 单价
    pricingUnit: string; // 计价单位
    convertDose: string; // 转换剂量
    convertUnit: string; // 转换单位
  };
  cpDynamicPricingRule: {
    min: number; // 最小值
    max: number; //最大值
    priceType: number;
    price: number;
  }[];
  cpMedicines: {
    id: string; // 药品ID
    name: string; // 中药标准名称
    dosage: string; // 剂量
  }[];
  isForWrap?: string | null; // 是否为服务包项目
  isForInfer?: string | null; // 是否为调理方案项目
  effect: string; // 功效
  itemImgFirst: string; // 操作图片
  miniProgramCode: string; // 小程序码
  itemVideoFirst: string; // 操作视频
  attrFirst: string; // 特色
  // isOffline?: string | null; // 是否线下
  isDelivery?: string | null; // 是否配送
  photo: string; // 商品图片
  attrSeventh: string; //使用注意
  attrSixth: string; // 疗程说明
  attrFifth: string; // 操作方法
  attrFourth: string; // 用法
  attrThird: string; // 制法
  attrSecond: string; // 功效
  types?: string[]; // 项目应用
  attrEighth: string; // 购买链接
  attrNinth: string; // 跳转类型
  attrTen: string; // 小程序码
}

export type SystemIteQuery = Partial<SystemItemModel>;

export interface SystemCwModel {
  types?: string; // system 系统调理包 institution 机构调理包
  id?: string; // 系统调理包ID
  name?: string; // 系统调理包名称
  institutionName?: string; // 所属机构名称
  institutionId?: string; // 所属机构ID
  diagnoseDiseaseNames?: string[]; // 疾病
  diagnoseSyndromeNames?: string[]; // 证型
  constitutionGroupNames?: string[]; // 体质
  conditioningWrapPatientMatchRule: {
    sex: string; // 性别
    age: string; // 年龄
    diagnoseDiseaseNames: string[]; // 疾病
    diagnoseSyndromeNames: string[]; // 证型
    constitutionGroupNames: {
      id: string;
      name: string;
    }[]; // 体质
    willillStateNames: {
      id: string;
      name: string;
    }[]; // 调养目的
  }; // 患者匹配规则
  cwPatientMatchRules: {
    diagnoseDiseaseNames: string[];
    diagnoseSyndromeNames: string[];
    constitutionGroupNames: string[];

    // 疾病
    diagnoseDisease: {
      id: string;
      code: string;
      name: string;
      optionalWords: string;
      attributes: {
        title: string;
        content: string;
      }[];
      children: {}[];
    };
    // 证型
    diagnoseSyndrome: {
      code: string;
      name: string;
      analysis: string;
      remark: string;
    };
    // 体质
    constitutionGroup: {
      id: string;
      code: string;
      name: string;
      definition: string;
      remark: string;
    };
  }[];
  price: number;
  isSystemic?: string;
  photo: string;
  createBy?: string; // 创建人
  createTime?: string; // 创建时间
  updateBy?: string; // 更新人
  updateTime?: string; // 更新时间
  status?: string; // 系统开关
  items: {
    
    expressType?: string; // 快递类型 0-邮政速递 1-顺丰速运 2-京东快递 3-中通快递 4-圆通速递 5-申通快递 6-韵达快递 7-极兔速递
    expressNo?: string; // 快递单号
    liaison?: string; // 联系人
    phone?: string; // 联系电话
    provinceName?: string; // 省名称
    cityName?: string; // 市名称
    areaName?: string; // 区名称
    detailAddress?: string; // 详细地址
    receiptType?: string; // 收货方式 0-快递 1-线下取货
    id: string; //调理包明细id
    sourceId?: string; // 来源id
    conditioningWrapId: string; // 系统调理包ID
    conditioningProgramId: number; // 调理方案ID
    conditioningProgramPhoto: string; //调理方案图片
    conditioningProgramName: string; //调理方案名称
    conditioningProgramType:string; //调理方案类型
    // isOffline?: string | null; // 是否线下
    sellType:string; //商品类型 1-实体商品 2-线下服务 3-线上权益
    convertDose: number; // 转换剂量
    convertUnit: string; // 转换单位
    conditioningProgramDetail: {
      id: number;
      name: string;
      conditioningProgramType: string; // 调理方案类型
      pricingType: string; // 计价方式 0 一口价 1 按穴位/经络
      cpFixedPricingRule: {
        unitPrice: number; // 单价
        pricingUnit: string; // 计价单位
        convertDose: number; // 转换剂量
        convertUnit: string; // 转换单位
      };
      cpDynamicPricingRule: {
        min: number; // 最小值
        max: number; // 最大值
        priceType: number; // 价格类型
        price: number; // 价格
      }[];
      cpMedicines: {
        id: string; // 药品ID
        name: string; // 中药标准名称
        dosage: string; // 剂量
      }[];
      effect: string; // 功效
      // isOffline?: string | null; // 是否线下
      sellType:string; //商品类型 1-实体商品 2-线下服务 3-线上权益
      isDelivery?: string | null; // 是否配送
      photo: string; // 图片
      conditioningProgramSupplierName: string; // 供应商名称
      institutionId: string; // 所属机构ID
      institutionName: string; // 所属机构名称
    };
    // 服务记录列表
    patientConditioningOfflines: {
      id: string; // 线下项目ID
      arrangeDate: string; // 预约日期
      nextArrangeDate: string; // 下次预约日期
      operateBy: string; // 操作人
      operateTime: string; // 操作时间
      startTime: string; // 开始时间
      endTime: string; // 结束时间
      feedback: string; // 治疗备注
      photo: string; // 图片
    }[];
    cwcpAcuMeridians: {
      id: number;
      name: string;
      code: string;
      type: string;
      photo?: string;
      merId?: number;
      merName?: string;
    }[]; // 经络
    cwcpAcuPoints: {
      id: number;
      name: string;
      code: string;
      type: string;
      merId?: number;
      merName?: string;
      photo?: string;
    }[]; // 穴位
    days: string; // 周期
    frequencyType: string | string[]; // 多少天
    frequencyMeasure: string; // 频次用量
    totalPrice: string; //总价格
    initialDay: string; // 初始天数
    totalMeasure: string; // 总用量
    remark: string; // 说明
    unitPrice:number; // 单价
    receiptStatus:string; //收货状态 0-待发货 1-已发货 2-已收货
    receiptTime:string; //收货时间
    progress?:string; //进度 0-进行中 1-已完成 2-未开始
  }[];
}

export type SystemCwQuery = Partial<SystemCwModel> & {
  diagnoseDiseaseNames?: string[];
  diagnoseSyndromeNames?: string[];
  constitutionGroupNames?: string[];
};

// 服务包调理包列表
export interface SystemCwListModel {
  id: string; // 系统调理包ID
  name: string; // 系统调理包名称
  institutionName: string; // 所属机构名称
  institutionId: string; // 所属机构ID
}
export type SystemCwListQuery = Partial<SystemCwListModel>;

// 调理记录列表
export interface ConditioningRecordListModel {
  id: string; // 调理记录ID
  patientName: string; // 患者姓名
  patientId: string; // 患者ID
  conditioningWrapId: string; // 调理包ID
  conditioningWrapName: string; // 调理包名称
  progress: string; // 调理进度
  status: string; // 是否开具 0 已开 1 未开
  operateTimeStart: string; // 开具时开始时间
  operateTimeEnd: string; // 开具结束时间
  patientMedicalRecordId: string; // 最近一次患者医疗记录id
  diagnosis: string; // 疾病
  symptom: string; // 症型
  constitutionGroupName: string; // 体质
  operateBy: string; // 开具人
  operateTime: string; // 开具时间
  orderNo?: string; // 订单编号
  createTime?: string; // 创建时间
  payTime?: string; // 付款时间
  orderStatus?: string; // 订单状态
  orderAmount?: number | string; // 订单金额
  createBy?: string; // 创建人
  estimatedStartDate?: string; // 开始调养日期
  realProfitSharing?: string; // 实际分账比例
  profitSharing?:string; // 预计分账比例
}
export type ConditioningRecordListQuery = Partial<ConditioningRecordListModel> & {
  orderStatus?: string; // 订单状态
  orderTimeStart?: string; // 下单开始时间
  orderTimeEnd?: string; // 下单结束时间
  payTimeStart?: string; // 付款开始时间
  payTimeEnd?: string; // 付款结束时间
};

// 开立调养方案
export interface OpenConditioningSchemeModel {
  patientConditioningScores: {
    time4: string; // 时间
    score: number; // 评分
  }[];
  id: number; // 调理方案ID
  patientId: string; // 患者ID
  patientName: string; // 患者姓名
  patientSex: string; // 患者性别
  patientAge: number; // 患者年龄
  diagnosis: string; // 疾病
  symptom: string; // 症型
  conditioningWrapId: string; // 调理包ID
  conditioningWrapName: string; // 调理包名称
  photo: string; // 调理包照片
  isDelivery?: string | null; // 是否配送 Y N
  estimatedStartDate: string; // 调养日期
  estimatedEndDate: string; // 调养结束日期
  cost: number; // 费用
  healthAnalysisReport: {
    willillStateName: string; // 疾病状态
    willillDegreeName: string; // 疾病程度
    willillSocialName: string; // 疾病社会影响
    willillFunctionName: string; // 疾病功能影响
    constitutionGroupName: string; // 体质
  };
  patientMedicalRecord: {
    patientId: string; // 患者ID
    institutionId: string; // 机构ID
    institutionName: string; // 机构名称
    diagnosis: string; // 疾病
    symptom: string; // 症型
    syndrome: string; // 证状
  };
  provinceName: string; // 省
  cityName: string; // 市
  districtName: string; // 区
  areaName: string; // 地址
  detailAddress: string; // 详细地址
  phone: string; // 联系电话
  progress: string; // 调理进度
  items: {
    patientId: string; // 患者ID
    patientConditioningRecordId: string; // 患者调理记录ID
    id: string; //调理包明细id
    conditioningWrapId: string; // 系统调理包ID
    conditioningProgramId: number; // 调理方案ID
    conditioningProgramDetail: {
      id: number;
      name: string;
      conditioningProgramType: string; // 调理方案类型
      pricingType: string; // 计价方式 0 一口价 1 按穴位/经络
      cpFixedPricingRule: {
        unitPrice: number; // 单价
        pricingUnit: string; // 计价单位
        convertDose: number; // 转换剂量
        convertUnit: string; // 转换单位
      };
      cpDynamicPricingRule: [
        {
          min: number; // 最小值
          max: number; // 最大值
          priceType: number; // 价格类型
          price: number; // 价格
        },
      ];
      cpMedicines: [
        {
          id: string; // 药品ID
          name: string; // 中药标准名称
          dosage: string; // 剂量
        },
      ];
      effect: string; // 功效
      // isOffline?: string | null; // 是否线下
      sellType:string; //商品类型 1-实体商品 2-线下服务 3-线上权益
      isDelivery?: string | null; // 是否配送
      photo: string; // 图片
      conditioningProgramSupplierName: string; // 供应商名称
      institutionId: string; // 所属机构ID
      institutionName: string; // 所属机构名称
    };
    cwcpAcuMeridians: {
      id: number;
      name: string;
      code: string;
      type: string;
      photo?: string;
      merId?: number;
      merName?: string;
    }[]; // 经络
    cwcpAcuPoints: {
      id: number;
      name: string;
      code: string;
      type: string;
      merId?: number;
      merName?: string;
      photo?: string;
    }[]; // 穴位
    days: string; // 周期
    frequencyType: string | string[]; // 多少天
    frequencyTypeing: string[]; // 多少天
    frequencyMeasure: string; // 频次用量
    offlineDuration?: string; // 服务所需时间（分钟）
    totalPrice: string; //总价格
    initialDay: string; // 初始天数
    totalMeasure: string; // 总用量
    remark: string; // 说明
  }[];
}

// 调理方案配置
export interface ConditioningSchemeModel {
  id: string | number; // 调理方案配置ID
  insId: string | number; // 机构id
  insName?: string; // 机构名称
  selectedCpIds: string[]; // 选中的项目ID
  orgId: string | number; // 组织id
  orgName: string; // 组织名称
  institutionId: string; // 机构ID
  institutionName: string; // 机构名称
  isConfig: string; // 是否配置
  configTimeStart: string; // 配置开始时间
  configTimeEnd: string; // 配置结束时间
  isHaveForInfer: string; // 是否定制项目
  forInferCount: number; // 定制项目数量
  status: string; // 启用状态
  updateBy: string; // 修改人
  updateTime: string; // 修改时间
  items: {
    conditioningProgramType: string; // 调理方案类型
    isShowForInfer: string; // 是否展示定制项目
    knowledgeCpShowType: string; // 智能推荐项目展示方式 1-展示 2-不展示 3-定制项目无结果时展示
    showCount: number; // 展示数量
      
  }[];
  conditioningProgramType: string; // 调理方案类型
}
export type ConditioningSchemeQuery = Partial<ConditioningSchemeModel>;
