package com.bonus.canteen.core.menu.vo;

import cn.hutool.core.text.CharSequenceUtil;
import com.bonus.canteen.core.common.utils.SysUtil;
import com.bonus.canteen.core.menu.constant.BigDecimalSerializer;
import com.bonus.canteen.core.menu.model.MenuBaseDishesModel;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.util.List;

@ApiModel("获取指定菜品详情v2")
public class MenuDishesDetailVO {
   @ApiModelProperty("菜品id")
   private Long dishesId;
   @ApiModelProperty("类型(1-菜品,2-套餐)")
   private Integer mealType;
   @ApiModelProperty("是否是公共菜品(1-是,2-否,)")
   private Integer publicDishes;
   @ApiModelProperty("区域id")
   private Long areaId;
   @ApiModelProperty("区域名称")
   private String areaName;
   @ApiModelProperty("食堂id")
   private Long canteenId;
   @ApiModelProperty("食堂名称")
   private String canteenName;
   @ApiModelProperty("档口id")
   private Long shopstallId;
   @ApiModelProperty("档口名称")
   private String stallName;
   @ApiModelProperty("菜品编号")
   private String dishesNum;
   @ApiModelProperty("菜品名称")
   private String dishesName;
   @ApiModelProperty("计价方式(1按份,2称重)")
   private Integer salesMode;
   @ApiModelProperty("规格类型(1-标准,2-大小份)")
   private Long sizeType;
   @ApiModelProperty("称重单位(g)")
   private Integer unitPrice;
   @ApiModelProperty("菜品基础单价(分)")
   private Integer price;
   @ApiModelProperty("大份单价")
   private Integer largePrice;
   @ApiModelProperty("小份单价")
   private Integer littlePrice;
   @ApiModelProperty("标准份量")
   private Double weight;
   @ApiModelProperty("大份份量")
   private Double largeWeight;
   @ApiModelProperty("小份份量")
   private Double littleWeight;
   @ApiModelProperty("成本价")
   private Integer materialCost;
   @ApiModelProperty("成本价-小份")
   private Integer littleMaterialCost;
   @ApiModelProperty("菜品灶类id")
   private Long cookId;
   @ApiModelProperty("菜品灶类名称")
   private String cookName;
   @ApiModelProperty("菜品标签")
   private List<Long> labelIdList;
   @ApiModelProperty("菜品口味")
   private List<Long> tasteIdList;
   @ApiModelProperty("辣度")
   private Integer pungencyDegree;
   @ApiModelProperty("菜系")
   private Long styleId;
   @ApiModelProperty("菜系")
   private String styleName;
   @ApiModelProperty("功效")
   private Long effectId;
   @ApiModelProperty("季节分类")
   private List<Long> season;
   @ApiModelProperty("季节分类")
   private List<Integer> mealtimeTypes;
   @ApiModelProperty("功效")
   private String effectName;
   @ApiModelProperty("菜品适宜人群")
   private List<Long> suitIdList;
   @ApiModelProperty("菜品简介")
   private String intro;
   @ApiModelProperty("菜品类型id")
   private Long typeId;
   @ApiModelProperty("菜品类型id")
   private String typeName;
   @ApiModelProperty("菜品图片url")
   private String imageUrl;
   @ApiModelProperty("质量偏差(g)")
   @JsonSerialize(
      using = BigDecimalSerializer.class
   )
   private BigDecimal weightDeviation;
   @ApiModelProperty("菜品营养信息")
   private MenuDishesNutritionVO dishesNutrition;
   @ApiModelProperty("菜品营养信息-小份")
   private MenuDishesNutritionVO littleDishesNutrition;
   @ApiModelProperty("菜品原料")
   private List<MenuMaterialDishesPageVO> materialList;
   @ApiModelProperty("菜品原料-小份")
   private List<MenuMaterialDishesPageVO> littleMaterialList;
   @ApiModelProperty("套餐菜品")
   private List<MenuPackageDishesPageVO> packageDishesList;
   @ApiModelProperty("菜品注册图片")
   private List<String> aiPictureList;
   List<MenuBaseDishesModel> baseDishesList;

   public String getImageUrl() {
      if (!CharSequenceUtil.isNotBlank(this.imageUrl)) {
         return this.imageUrl;
      } else {
         String[] split = this.imageUrl.split(",");
         StringBuilder newImageUrl = new StringBuilder();
         String[] var3 = split;
         int var4 = split.length;

         for(int var5 = 0; var5 < var4; ++var5) {
            String s = var3[var5];
            newImageUrl.append(SysUtil.getCutFileUrl(s)).append(",");
         }

         return newImageUrl.substring(0, newImageUrl.length() - 1);
      }
   }

   public Long getDishesId() {
      return this.dishesId;
   }

   public Integer getMealType() {
      return this.mealType;
   }

   public Integer getPublicDishes() {
      return this.publicDishes;
   }

   public Long getAreaId() {
      return this.areaId;
   }

   public String getAreaName() {
      return this.areaName;
   }

   public Long getCanteenId() {
      return this.canteenId;
   }

   public String getCanteenName() {
      return this.canteenName;
   }

   public Long getShopstallId() {
      return this.shopstallId;
   }

   public String getStallName() {
      return this.stallName;
   }

   public String getDishesNum() {
      return this.dishesNum;
   }

   public String getDishesName() {
      return this.dishesName;
   }

   public Integer getSalesMode() {
      return this.salesMode;
   }

   public Long getSizeType() {
      return this.sizeType;
   }

   public Integer getUnitPrice() {
      return this.unitPrice;
   }

   public Integer getPrice() {
      return this.price;
   }

   public Integer getLargePrice() {
      return this.largePrice;
   }

   public Integer getLittlePrice() {
      return this.littlePrice;
   }

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

   public Double getLargeWeight() {
      return this.largeWeight;
   }

   public Double getLittleWeight() {
      return this.littleWeight;
   }

   public Integer getMaterialCost() {
      return this.materialCost;
   }

   public Integer getLittleMaterialCost() {
      return this.littleMaterialCost;
   }

   public Long getCookId() {
      return this.cookId;
   }

   public String getCookName() {
      return this.cookName;
   }

   public List<Long> getLabelIdList() {
      return this.labelIdList;
   }

   public List<Long> getTasteIdList() {
      return this.tasteIdList;
   }

   public Integer getPungencyDegree() {
      return this.pungencyDegree;
   }

   public Long getStyleId() {
      return this.styleId;
   }

   public String getStyleName() {
      return this.styleName;
   }

   public Long getEffectId() {
      return this.effectId;
   }

   public List<Long> getSeason() {
      return this.season;
   }

   public List<Integer> getMealtimeTypes() {
      return this.mealtimeTypes;
   }

   public String getEffectName() {
      return this.effectName;
   }

   public List<Long> getSuitIdList() {
      return this.suitIdList;
   }

   public String getIntro() {
      return this.intro;
   }

   public Long getTypeId() {
      return this.typeId;
   }

   public String getTypeName() {
      return this.typeName;
   }

   public BigDecimal getWeightDeviation() {
      return this.weightDeviation;
   }

   public MenuDishesNutritionVO getDishesNutrition() {
      return this.dishesNutrition;
   }

   public MenuDishesNutritionVO getLittleDishesNutrition() {
      return this.littleDishesNutrition;
   }

   public List<MenuMaterialDishesPageVO> getMaterialList() {
      return this.materialList;
   }

   public List<MenuMaterialDishesPageVO> getLittleMaterialList() {
      return this.littleMaterialList;
   }

   public List<MenuPackageDishesPageVO> getPackageDishesList() {
      return this.packageDishesList;
   }

   public List<String> getAiPictureList() {
      return this.aiPictureList;
   }

   public List<MenuBaseDishesModel> getBaseDishesList() {
      return this.baseDishesList;
   }

   public void setDishesId(final Long dishesId) {
      this.dishesId = dishesId;
   }

   public void setMealType(final Integer mealType) {
      this.mealType = mealType;
   }

   public void setPublicDishes(final Integer publicDishes) {
      this.publicDishes = publicDishes;
   }

   public void setAreaId(final Long areaId) {
      this.areaId = areaId;
   }

   public void setAreaName(final String areaName) {
      this.areaName = areaName;
   }

   public void setCanteenId(final Long canteenId) {
      this.canteenId = canteenId;
   }

   public void setCanteenName(final String canteenName) {
      this.canteenName = canteenName;
   }

   public void setShopstallId(final Long shopstallId) {
      this.shopstallId = shopstallId;
   }

   public void setStallName(final String stallName) {
      this.stallName = stallName;
   }

   public void setDishesNum(final String dishesNum) {
      this.dishesNum = dishesNum;
   }

   public void setDishesName(final String dishesName) {
      this.dishesName = dishesName;
   }

   public void setSalesMode(final Integer salesMode) {
      this.salesMode = salesMode;
   }

   public void setSizeType(final Long sizeType) {
      this.sizeType = sizeType;
   }

   public void setUnitPrice(final Integer unitPrice) {
      this.unitPrice = unitPrice;
   }

   public void setPrice(final Integer price) {
      this.price = price;
   }

   public void setLargePrice(final Integer largePrice) {
      this.largePrice = largePrice;
   }

   public void setLittlePrice(final Integer littlePrice) {
      this.littlePrice = littlePrice;
   }

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

   public void setLargeWeight(final Double largeWeight) {
      this.largeWeight = largeWeight;
   }

   public void setLittleWeight(final Double littleWeight) {
      this.littleWeight = littleWeight;
   }

   public void setMaterialCost(final Integer materialCost) {
      this.materialCost = materialCost;
   }

   public void setLittleMaterialCost(final Integer littleMaterialCost) {
      this.littleMaterialCost = littleMaterialCost;
   }

   public void setCookId(final Long cookId) {
      this.cookId = cookId;
   }

   public void setCookName(final String cookName) {
      this.cookName = cookName;
   }

   public void setLabelIdList(final List<Long> labelIdList) {
      this.labelIdList = labelIdList;
   }

   public void setTasteIdList(final List<Long> tasteIdList) {
      this.tasteIdList = tasteIdList;
   }

   public void setPungencyDegree(final Integer pungencyDegree) {
      this.pungencyDegree = pungencyDegree;
   }

   public void setStyleId(final Long styleId) {
      this.styleId = styleId;
   }

   public void setStyleName(final String styleName) {
      this.styleName = styleName;
   }

   public void setEffectId(final Long effectId) {
      this.effectId = effectId;
   }

   public void setSeason(final List<Long> season) {
      this.season = season;
   }

   public void setMealtimeTypes(final List<Integer> mealtimeTypes) {
      this.mealtimeTypes = mealtimeTypes;
   }

   public void setEffectName(final String effectName) {
      this.effectName = effectName;
   }

   public void setSuitIdList(final List<Long> suitIdList) {
      this.suitIdList = suitIdList;
   }

   public void setIntro(final String intro) {
      this.intro = intro;
   }

   public void setTypeId(final Long typeId) {
      this.typeId = typeId;
   }

   public void setTypeName(final String typeName) {
      this.typeName = typeName;
   }

   public void setImageUrl(final String imageUrl) {
      this.imageUrl = imageUrl;
   }

   public void setWeightDeviation(final BigDecimal weightDeviation) {
      this.weightDeviation = weightDeviation;
   }

   public void setDishesNutrition(final MenuDishesNutritionVO dishesNutrition) {
      this.dishesNutrition = dishesNutrition;
   }

   public void setLittleDishesNutrition(final MenuDishesNutritionVO littleDishesNutrition) {
      this.littleDishesNutrition = littleDishesNutrition;
   }

   public void setMaterialList(final List<MenuMaterialDishesPageVO> materialList) {
      this.materialList = materialList;
   }

   public void setLittleMaterialList(final List<MenuMaterialDishesPageVO> littleMaterialList) {
      this.littleMaterialList = littleMaterialList;
   }

   public void setPackageDishesList(final List<MenuPackageDishesPageVO> packageDishesList) {
      this.packageDishesList = packageDishesList;
   }

   public void setAiPictureList(final List<String> aiPictureList) {
      this.aiPictureList = aiPictureList;
   }

   public void setBaseDishesList(final List<MenuBaseDishesModel> baseDishesList) {
      this.baseDishesList = baseDishesList;
   }
}
