package com.bonus.canteen.core.nutrition.common.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.bonus.canteen.core.common.utils.FileUrlUtil;
import com.bonus.canteen.core.nutrition.common.enums.CustAgeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.time.LocalDate;

@ApiModel("健康信息分页返回数据")
public class HealthInfoSimpleVo {
   @ApiModelProperty("人员id")
   @ExcelIgnore
   private Long userId;
   @ApiModelProperty("人员名称")
   @ExcelProperty(
      value = {"用户姓名"},
      order = 0
   )
   private String nickName;
   @ApiModelProperty("所属组织")
   @ExcelIgnore
   private String orgFullName;
   @ApiModelProperty("位置信息")
   @ExcelProperty(
      value = {"位置信息"},
      order = 2
   )
   private String placeFullName;
   @ApiModelProperty("手机号")
   @ExcelProperty(
      value = {"用户手机号"},
      order = 1
   )
   private String mobile;
   @ApiModelProperty("人员头像")
   @ExcelIgnore
   private String custPhotoUrl;
   @ApiModelProperty("年龄")
   @ExcelIgnore
   private Integer age;
   @ApiModelProperty("性别")
   @ExcelIgnore
   private Integer sex;
   @ApiModelProperty("生日")
   @ExcelIgnore
   private LocalDate birthday;
   @ApiModelProperty("身高")
   @ExcelIgnore
   private BigDecimal height;
   @ApiModelProperty("体重")
   @ExcelIgnore
   private BigDecimal weight;
   @ApiModelProperty("BMI指数")
   @ExcelIgnore
   private BigDecimal bmi;
   @ApiModelProperty("慢性病id多个用逗号分割")
   @ExcelIgnore
   private String chronicIds;
   @ApiModelProperty("就诊号")
   @ExcelProperty(
      value = {"就诊号"},
      order = 4
   )
   private String doctorNum;
   @ApiModelProperty("住院号")
   @ExcelProperty(
      value = {"住院号"},
      order = 5
   )
   private String hospitalNum;
   @ApiModelProperty("住院日期")
   @ExcelProperty(
      value = {"住院日期"},
      order = 6
   )
   private LocalDate inpatientDate;
   @ApiModelProperty("慢性病名称多个用逗号分割")
   @ExcelProperty(
      value = {"慢性病"},
      order = 7
   )
   private String chronicNames;
   @ApiModelProperty("饮食医嘱: 1-禁食,2-流食,3-半流食,4-治疗饮食")
   private Integer doctorAdvice;
   @ApiModelProperty("过敏源")
   @ExcelIgnore
   private String allergen;
   @ApiModelProperty("劳动强度:劳动强度: 1-轻劳动,2-中等强度劳动,3-重强度劳动")
   private Integer labourIntensity;
   @ApiModelProperty("怀孕状态 0-保密, 1-未怀孕, 2-孕妇(早期),3-孕妇(中期),4-孕妇(晚期) 5-乳母")
   @ExcelIgnore
   private Integer pregnantStatus;

   public String getCustPhotoUrl() {
      return FileUrlUtil.getFileUrl(this.custPhotoUrl);
   }

   public void setCustPhotoUrl(String custPhotoUrl) {
      this.custPhotoUrl = FileUrlUtil.getFileUrl(custPhotoUrl);
   }

   public LocalDate getBirthday() {
      return this.birthday;
   }

   public void setBirthday(LocalDate birthday) {
      this.birthday = birthday;
      this.age = CustAgeEnum.getAge(birthday);
   }

   public Long getUserId() {
      return this.userId;
   }

   public String getNickName() {
      return this.nickName;
   }

   public String getOrgFullName() {
      return this.orgFullName;
   }

   public String getPlaceFullName() {
      return this.placeFullName;
   }

   public String getMobile() {
      return this.mobile;
   }

   public Integer getAge() {
      return this.age;
   }

   public Integer getSex() {
      return this.sex;
   }

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

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

   public BigDecimal getBmi() {
      return this.bmi;
   }

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

   public String getDoctorNum() {
      return this.doctorNum;
   }

   public String getHospitalNum() {
      return this.hospitalNum;
   }

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

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

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

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

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

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

   public void setUserId(final Long userId) {
      this.userId = userId;
   }

   public void setNickName(final String nickName) {
      this.nickName = nickName;
   }

   public void setOrgFullName(final String orgFullName) {
      this.orgFullName = orgFullName;
   }

   public void setPlaceFullName(final String placeFullName) {
      this.placeFullName = placeFullName;
   }

   public void setMobile(final String mobile) {
      this.mobile = mobile;
   }

   public void setAge(final Integer age) {
      this.age = age;
   }

   public void setSex(final Integer sex) {
      this.sex = sex;
   }

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

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

   public void setBmi(final BigDecimal bmi) {
      this.bmi = bmi;
   }

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

   public void setDoctorNum(final String doctorNum) {
      this.doctorNum = doctorNum;
   }

   public void setHospitalNum(final String hospitalNum) {
      this.hospitalNum = hospitalNum;
   }

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

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

   public void setDoctorAdvice(final Integer doctorAdvice) {
      this.doctorAdvice = doctorAdvice;
   }

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

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

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