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

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;

@ApiModel("常见营养元素类")
public class HealthNormalElementsVo {
   @ApiModelProperty("摄入的热量(千卡)")
   private BigDecimal calories;
   @ApiModelProperty("摄入的蛋白质(g)")
   private BigDecimal protein;
   @ApiModelProperty("摄入的碳水化合物(g)")
   private BigDecimal carbohydrate;
   @ApiModelProperty("摄入的脂肪(g)")
   private BigDecimal fat;
   @ApiModelProperty("摄入的膳食纤维(g)")
   private BigDecimal dietaryFiber;
   @ApiModelProperty("摄入的胆固醇(mg)")
   private BigDecimal cholesterol;
   @ApiModelProperty("摄入的钠(mg)")
   private BigDecimal sodium;

   public HealthNormalElementsVo() {
   }

   public static HealthNormalElementsVoBuilder builder() {
      return new HealthNormalElementsVoBuilder();
   }

   public BigDecimal getCalories() {
      return this.calories;
   }

   public BigDecimal getProtein() {
      return this.protein;
   }

   public BigDecimal getCarbohydrate() {
      return this.carbohydrate;
   }

   public BigDecimal getFat() {
      return this.fat;
   }

   public BigDecimal getDietaryFiber() {
      return this.dietaryFiber;
   }

   public BigDecimal getCholesterol() {
      return this.cholesterol;
   }

   public BigDecimal getSodium() {
      return this.sodium;
   }

   public void setCalories(final BigDecimal calories) {
      this.calories = calories;
   }

   public void setProtein(final BigDecimal protein) {
      this.protein = protein;
   }

   public void setCarbohydrate(final BigDecimal carbohydrate) {
      this.carbohydrate = carbohydrate;
   }

   public void setFat(final BigDecimal fat) {
      this.fat = fat;
   }

   public void setDietaryFiber(final BigDecimal dietaryFiber) {
      this.dietaryFiber = dietaryFiber;
   }

   public void setCholesterol(final BigDecimal cholesterol) {
      this.cholesterol = cholesterol;
   }

   public void setSodium(final BigDecimal sodium) {
      this.sodium = sodium;
   }

   public HealthNormalElementsVo(final BigDecimal calories, final BigDecimal protein, final BigDecimal carbohydrate, final BigDecimal fat, final BigDecimal dietaryFiber, final BigDecimal cholesterol, final BigDecimal sodium) {
      this.calories = calories;
      this.protein = protein;
      this.carbohydrate = carbohydrate;
      this.fat = fat;
      this.dietaryFiber = dietaryFiber;
      this.cholesterol = cholesterol;
      this.sodium = sodium;
   }

   public static class HealthNormalElementsVoBuilder {
      private BigDecimal calories;
      private BigDecimal protein;
      private BigDecimal carbohydrate;
      private BigDecimal fat;
      private BigDecimal dietaryFiber;
      private BigDecimal cholesterol;
      private BigDecimal sodium;

      HealthNormalElementsVoBuilder() {
      }

      public HealthNormalElementsVoBuilder calories(final BigDecimal calories) {
         this.calories = calories;
         return this;
      }

      public HealthNormalElementsVoBuilder protein(final BigDecimal protein) {
         this.protein = protein;
         return this;
      }

      public HealthNormalElementsVoBuilder carbohydrate(final BigDecimal carbohydrate) {
         this.carbohydrate = carbohydrate;
         return this;
      }

      public HealthNormalElementsVoBuilder fat(final BigDecimal fat) {
         this.fat = fat;
         return this;
      }

      public HealthNormalElementsVoBuilder dietaryFiber(final BigDecimal dietaryFiber) {
         this.dietaryFiber = dietaryFiber;
         return this;
      }

      public HealthNormalElementsVoBuilder cholesterol(final BigDecimal cholesterol) {
         this.cholesterol = cholesterol;
         return this;
      }

      public HealthNormalElementsVoBuilder sodium(final BigDecimal sodium) {
         this.sodium = sodium;
         return this;
      }

      public HealthNormalElementsVo build() {
         return new HealthNormalElementsVo(this.calories, this.protein, this.carbohydrate, this.fat, this.dietaryFiber, this.cholesterol, this.sodium);
      }
   }
}
