package com.bonus.core.customer.dto;

import com.bonus.core.common.utils.SysUtil;
import com.bonus.core.customer.model.CustInfo;
import com.fasterxml.jackson.databind.JsonNode;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

@Data
public class CustInfoModel extends CustInfo {
   private LocalDate orgAdjustDate;
   private String pictureUrl;
   private String features;
   private String path;
   private Integer photoType;
   private Integer featuresBuildStatus;
   private LocalDateTime featuresBuildTime;
   private String openid;
   private Integer sourceType;
   @ApiModelProperty("账户id")
   private Long accId;
   @ApiModelProperty("喜好名称")
   private String likeName;
   @ApiModelProperty("菜品标签id 多个值用,分隔")
   private String labelIds;
   @ApiModelProperty("菜品标签名称 多个值用,分隔")
   private String labelNames;
   @ApiModelProperty("口味id 多个值用,分隔")
   private String tasteIds;
   @ApiModelProperty("口味名称 多个值用,分隔")
   private String tasteNames;
   @ApiModelProperty("身高")
   private BigDecimal height;
   @ApiModelProperty("体重")
   private BigDecimal weight;
   @ApiModelProperty("胸围")
   private BigDecimal bust;
   @ApiModelProperty("腰围")
   private BigDecimal waistline;
   @ApiModelProperty("血糖")
   private BigDecimal bloodSugar;
   @ApiModelProperty("血脂")
   private Integer bloodFat;
   @ApiModelProperty("血压")
   private Integer bloodPressure;
   @ApiModelProperty("尿酸")
   private Integer uricAcid;
   @ApiModelProperty("血压高")
   private BigDecimal bloodPressureHigh;
   @ApiModelProperty("血压低")
   private BigDecimal bloodPressureLow;
   @ApiModelProperty("心率")
   private BigDecimal heartRate;
   @ApiModelProperty("血氧")
   private BigDecimal bloodOxygen;
   @ApiModelProperty("婚姻状态 0-保密 1-未婚 2-已婚")
   private Integer maritalStatus;
   @ApiModelProperty("怀孕状态 0-保密 1-未怀孕 2-已怀孕")
   private Integer pregnantStatus;
   @ApiModelProperty("怀孕日期")
   private LocalDate pregnancyDate;
   @ApiModelProperty("慢性病id 多个用,分割")
   private String chronicIds;
   @ApiModelProperty("慢性病名称 多个用,分割")
   private String chronicNames;
   @ApiModelProperty("医嘱")
   private String doctorAdvice;
   @ApiModelProperty("是否住院 1-是 2-否")
   private Integer ifHospitalized;
   @ApiModelProperty("住院日期")
   private LocalDate inpatientDate;
   @ApiModelProperty("住院诊断结果")
   private String inpatientResult;
   @ApiModelProperty("饮食类型")
   private Integer dietType;
   @ApiModelProperty("体重控制")
   private Integer weightControl;
   @ApiModelProperty("过敏源")
   private String allergen;
   @ApiModelProperty("劳动强度")
   private Integer labourIntensity;
   @ApiModelProperty("健康状态（1-健康、2-残疾、3-瘫痪）")
   private Integer healthState;
   @ApiModelProperty("账户有效截止日期")
   private LocalDate accEndDate;
   @ApiModelProperty("就餐地")
   private JsonNode diningPlace;
   @ApiModelProperty("是否创建账户")
   private Boolean isCreateAcc;
   @ApiModelProperty("血型")
   private Integer bloodType;

   public String getPath() {
      return SysUtil.getCutFileUrl(this.path);
   }

   public String getPictureUrl() {
      return SysUtil.getCutFileUrl(this.pictureUrl);
   }

   public LocalDate getOrgAdjustDate() {
      return this.orgAdjustDate;
   }

   public String getFeatures() {
      return this.features;
   }

   public Integer getPhotoType() {
      return this.photoType;
   }

   public Integer getFeaturesBuildStatus() {
      return this.featuresBuildStatus;
   }

   public LocalDateTime getFeaturesBuildTime() {
      return this.featuresBuildTime;
   }

   public String getOpenid() {
      return this.openid;
   }

   public Integer getSourceType() {
      return this.sourceType;
   }

   public Long getAccId() {
      return this.accId;
   }

   public String getLikeName() {
      return this.likeName;
   }

   public String getLabelIds() {
      return this.labelIds;
   }

   public String getLabelNames() {
      return this.labelNames;
   }

   public String getTasteIds() {
      return this.tasteIds;
   }

   public String getTasteNames() {
      return this.tasteNames;
   }

   public BigDecimal getHeight() {
      return this.height;
   }

   public BigDecimal getWeight() {
      return this.weight;
   }

   public BigDecimal getBust() {
      return this.bust;
   }

   public BigDecimal getWaistline() {
      return this.waistline;
   }

   public BigDecimal getBloodSugar() {
      return this.bloodSugar;
   }

   public Integer getBloodFat() {
      return this.bloodFat;
   }

   public Integer getBloodPressure() {
      return this.bloodPressure;
   }

   public Integer getUricAcid() {
      return this.uricAcid;
   }

   public BigDecimal getBloodPressureHigh() {
      return this.bloodPressureHigh;
   }

   public BigDecimal getBloodPressureLow() {
      return this.bloodPressureLow;
   }

   public BigDecimal getHeartRate() {
      return this.heartRate;
   }

   public BigDecimal getBloodOxygen() {
      return this.bloodOxygen;
   }

   public Integer getMaritalStatus() {
      return this.maritalStatus;
   }

   public Integer getPregnantStatus() {
      return this.pregnantStatus;
   }

   public LocalDate getPregnancyDate() {
      return this.pregnancyDate;
   }

   public String getChronicIds() {
      return this.chronicIds;
   }

   public String getChronicNames() {
      return this.chronicNames;
   }

   public String getDoctorAdvice() {
      return this.doctorAdvice;
   }

   public Integer getIfHospitalized() {
      return this.ifHospitalized;
   }

   public LocalDate getInpatientDate() {
      return this.inpatientDate;
   }

   public String getInpatientResult() {
      return this.inpatientResult;
   }

   public Integer getDietType() {
      return this.dietType;
   }

   public Integer getWeightControl() {
      return this.weightControl;
   }

   public String getAllergen() {
      return this.allergen;
   }

   public Integer getLabourIntensity() {
      return this.labourIntensity;
   }

   public Integer getHealthState() {
      return this.healthState;
   }

   public LocalDate getAccEndDate() {
      return this.accEndDate;
   }

   public JsonNode getDiningPlace() {
      return this.diningPlace;
   }

   public Boolean getIsCreateAcc() {
      return this.isCreateAcc;
   }

   public Integer getBloodType() {
      return this.bloodType;
   }

   public CustInfoModel setOrgAdjustDate(final LocalDate orgAdjustDate) {
      this.orgAdjustDate = orgAdjustDate;
      return this;
   }

   public CustInfoModel setPictureUrl(final String pictureUrl) {
      this.pictureUrl = pictureUrl;
      return this;
   }

   public CustInfoModel setFeatures(final String features) {
      this.features = features;
      return this;
   }

   public CustInfoModel setPath(final String path) {
      this.path = path;
      return this;
   }

   public CustInfoModel setPhotoType(final Integer photoType) {
      this.photoType = photoType;
      return this;
   }

   public CustInfoModel setFeaturesBuildStatus(final Integer featuresBuildStatus) {
      this.featuresBuildStatus = featuresBuildStatus;
      return this;
   }

   public CustInfoModel setFeaturesBuildTime(final LocalDateTime featuresBuildTime) {
      this.featuresBuildTime = featuresBuildTime;
      return this;
   }

   public CustInfoModel setOpenid(final String openid) {
      this.openid = openid;
      return this;
   }

   public CustInfoModel setSourceType(final Integer sourceType) {
      this.sourceType = sourceType;
      return this;
   }

   public CustInfoModel setAccId(final Long accId) {
      this.accId = accId;
      return this;
   }

   public CustInfoModel setLikeName(final String likeName) {
      this.likeName = likeName;
      return this;
   }

   public CustInfoModel setLabelIds(final String labelIds) {
      this.labelIds = labelIds;
      return this;
   }

   public CustInfoModel setLabelNames(final String labelNames) {
      this.labelNames = labelNames;
      return this;
   }

   public CustInfoModel setTasteIds(final String tasteIds) {
      this.tasteIds = tasteIds;
      return this;
   }

   public CustInfoModel setTasteNames(final String tasteNames) {
      this.tasteNames = tasteNames;
      return this;
   }

   public CustInfoModel setHeight(final BigDecimal height) {
      this.height = height;
      return this;
   }

   public CustInfoModel setWeight(final BigDecimal weight) {
      this.weight = weight;
      return this;
   }

   public CustInfoModel setBust(final BigDecimal bust) {
      this.bust = bust;
      return this;
   }

   public CustInfoModel setWaistline(final BigDecimal waistline) {
      this.waistline = waistline;
      return this;
   }

   public CustInfoModel setBloodSugar(final BigDecimal bloodSugar) {
      this.bloodSugar = bloodSugar;
      return this;
   }

   public CustInfoModel setBloodFat(final Integer bloodFat) {
      this.bloodFat = bloodFat;
      return this;
   }

   public CustInfoModel setBloodPressure(final Integer bloodPressure) {
      this.bloodPressure = bloodPressure;
      return this;
   }

   public CustInfoModel setUricAcid(final Integer uricAcid) {
      this.uricAcid = uricAcid;
      return this;
   }

   public CustInfoModel setBloodPressureHigh(final BigDecimal bloodPressureHigh) {
      this.bloodPressureHigh = bloodPressureHigh;
      return this;
   }

   public CustInfoModel setBloodPressureLow(final BigDecimal bloodPressureLow) {
      this.bloodPressureLow = bloodPressureLow;
      return this;
   }

   public CustInfoModel setHeartRate(final BigDecimal heartRate) {
      this.heartRate = heartRate;
      return this;
   }

   public CustInfoModel setBloodOxygen(final BigDecimal bloodOxygen) {
      this.bloodOxygen = bloodOxygen;
      return this;
   }

   public CustInfoModel setMaritalStatus(final Integer maritalStatus) {
      this.maritalStatus = maritalStatus;
      return this;
   }

   public CustInfoModel setPregnantStatus(final Integer pregnantStatus) {
      this.pregnantStatus = pregnantStatus;
      return this;
   }

   public CustInfoModel setPregnancyDate(final LocalDate pregnancyDate) {
      this.pregnancyDate = pregnancyDate;
      return this;
   }

   public CustInfoModel setChronicIds(final String chronicIds) {
      this.chronicIds = chronicIds;
      return this;
   }

   public CustInfoModel setChronicNames(final String chronicNames) {
      this.chronicNames = chronicNames;
      return this;
   }

   public CustInfoModel setDoctorAdvice(final String doctorAdvice) {
      this.doctorAdvice = doctorAdvice;
      return this;
   }

   public CustInfoModel setIfHospitalized(final Integer ifHospitalized) {
      this.ifHospitalized = ifHospitalized;
      return this;
   }

   public CustInfoModel setInpatientDate(final LocalDate inpatientDate) {
      this.inpatientDate = inpatientDate;
      return this;
   }

   public CustInfoModel setInpatientResult(final String inpatientResult) {
      this.inpatientResult = inpatientResult;
      return this;
   }

   public CustInfoModel setDietType(final Integer dietType) {
      this.dietType = dietType;
      return this;
   }

   public CustInfoModel setWeightControl(final Integer weightControl) {
      this.weightControl = weightControl;
      return this;
   }

   public CustInfoModel setAllergen(final String allergen) {
      this.allergen = allergen;
      return this;
   }

   public CustInfoModel setLabourIntensity(final Integer labourIntensity) {
      this.labourIntensity = labourIntensity;
      return this;
   }

   public CustInfoModel setHealthState(final Integer healthState) {
      this.healthState = healthState;
      return this;
   }

   public CustInfoModel setAccEndDate(final LocalDate accEndDate) {
      this.accEndDate = accEndDate;
      return this;
   }

   public CustInfoModel setDiningPlace(final JsonNode diningPlace) {
      this.diningPlace = diningPlace;
      return this;
   }

   public CustInfoModel setIsCreateAcc(final Boolean isCreateAcc) {
      this.isCreateAcc = isCreateAcc;
      return this;
   }

   public CustInfoModel setBloodType(final Integer bloodType) {
      this.bloodType = bloodType;
      return this;
   }




}
