package com.bonus.core.device.manage.controller.deprecated.vo;

import com.baomidou.mybatisplus.annotation.TableId;
import com.bonus.core.common.utils.SysUtil;
import com.bonus.core.device.manage.controller.deprecated.model.MacMachineCounter;
import com.bonus.core.device.manage.vo.DeviceControlRelationVO;
import com.bonus.core.device.manage.vo.DeviceDishesVO;
import com.bonus.core.device.manage.vo.DeviceRecipeVO;
import com.fasterxml.jackson.databind.JsonNode;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;

public class DeviceHeartBeatMqRemVo implements Serializable {
   @ApiModelProperty("设备Sn")
   private String machineSn;
   @ApiModelProperty("菜品名称")
   private String menuName;
   @ApiModelProperty("菜品价格")
   private Integer menuPrice;
   @ApiModelProperty("称上剩余重量")
   private Integer menuWeigh;
   @ApiModelProperty("销售方式(1按份,2称重)")
   private Integer salseMode;
   @ApiModelProperty("菜品质量(g/份)")
   private Double weight;
   @ApiModelProperty("质量偏差(g)")
   private Double weightDeviation;
   @ApiModelProperty("菜品图片")
   private String imageUrl;
   @ApiModelProperty("菜品名称")
   private String menuNameRight;
   @ApiModelProperty("菜品价格")
   private Integer menuPriceRight;
   @ApiModelProperty("称上剩余重量")
   private Integer menuWeighRight;
   @ApiModelProperty("销售方式(1按份,2称重)")
   private Integer salseModeRight;
   @ApiModelProperty("菜品质量(g/份)")
   private Double weightRight;
   @ApiModelProperty("质量偏差(g)")
   private Double weightDeviationRight;
   @ApiModelProperty("菜品图片")
   private String imageUrlRight;
   @ApiModelProperty("消息生成时间只在mqtt推送时使用，其余场景忽略")
   private Long time;

   public String getImageUrl() {
      return SysUtil.getCutFileUrl(this.imageUrl);
   }

   public String getImageUrlRight() {
      return SysUtil.getCutFileUrl(this.imageUrlRight);
   }

   public String getMachineSn() {
      return this.machineSn;
   }

   public String getMenuName() {
      return this.menuName;
   }

   public Integer getMenuPrice() {
      return this.menuPrice;
   }

   public Integer getMenuWeigh() {
      return this.menuWeigh;
   }

   public Integer getSalseMode() {
      return this.salseMode;
   }

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

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

   public String getMenuNameRight() {
      return this.menuNameRight;
   }

   public Integer getMenuPriceRight() {
      return this.menuPriceRight;
   }

   public Integer getMenuWeighRight() {
      return this.menuWeighRight;
   }

   public Integer getSalseModeRight() {
      return this.salseModeRight;
   }

   public Double getWeightRight() {
      return this.weightRight;
   }

   public Double getWeightDeviationRight() {
      return this.weightDeviationRight;
   }

   public Long getTime() {
      return this.time;
   }

   public DeviceHeartBeatMqRemVo setMachineSn(final String machineSn) {
      this.machineSn = machineSn;
      return this;
   }

   public DeviceHeartBeatMqRemVo setMenuName(final String menuName) {
      this.menuName = menuName;
      return this;
   }

   public DeviceHeartBeatMqRemVo setMenuPrice(final Integer menuPrice) {
      this.menuPrice = menuPrice;
      return this;
   }

   public DeviceHeartBeatMqRemVo setMenuWeigh(final Integer menuWeigh) {
      this.menuWeigh = menuWeigh;
      return this;
   }

   public DeviceHeartBeatMqRemVo setSalseMode(final Integer salseMode) {
      this.salseMode = salseMode;
      return this;
   }

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

   public DeviceHeartBeatMqRemVo setWeightDeviation(final Double weightDeviation) {
      this.weightDeviation = weightDeviation;
      return this;
   }

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

   public DeviceHeartBeatMqRemVo setMenuNameRight(final String menuNameRight) {
      this.menuNameRight = menuNameRight;
      return this;
   }

   public DeviceHeartBeatMqRemVo setMenuPriceRight(final Integer menuPriceRight) {
      this.menuPriceRight = menuPriceRight;
      return this;
   }

   public DeviceHeartBeatMqRemVo setMenuWeighRight(final Integer menuWeighRight) {
      this.menuWeighRight = menuWeighRight;
      return this;
   }

   public DeviceHeartBeatMqRemVo setSalseModeRight(final Integer salseModeRight) {
      this.salseModeRight = salseModeRight;
      return this;
   }

   public DeviceHeartBeatMqRemVo setWeightRight(final Double weightRight) {
      this.weightRight = weightRight;
      return this;
   }

   public DeviceHeartBeatMqRemVo setWeightDeviationRight(final Double weightDeviationRight) {
      this.weightDeviationRight = weightDeviationRight;
      return this;
   }

   public DeviceHeartBeatMqRemVo setImageUrlRight(final String imageUrlRight) {
      this.imageUrlRight = imageUrlRight;
      return this;
   }

   public DeviceHeartBeatMqRemVo setTime(final Long time) {
      this.time = time;
      return this;
   }

    @ApiModel("设备返回类")
    public static class MachineCounterVO {
       @TableId
       @ApiModelProperty("id主键")
       private Long id;
       @ApiModelProperty("设备id")
       private Long machineId;
       @ApiModelProperty("食堂ID")
       private Long diningId;
       @ApiModelProperty("食堂ID")
       private Long canteenId;
       @ApiModelProperty("店铺档口id")
       private Long shopstallId;
       @ApiModelProperty("食堂名称")
       private String canteenName;
       @ApiModelProperty("档口名称")
       private String stname;
       @ApiModelProperty("通信协议")
       private Integer deviceAgreement;
       @ApiModelProperty("设备sn码")
       private String machineSn;
       @ApiModelProperty("设备密码")
       private String mchPwd;
       @ApiModelProperty("设备编号")
       private String mchNum;
       @ApiModelProperty("设备安装地址")
       private String mchAddr;
       @ApiModelProperty("设备名称")
       private String mchName;
       @ApiModelProperty("设备名称")
       private Integer onlineState;
       @ApiModelProperty("设备编号")
       private Integer versionCode;
       @ApiModelProperty("设备版本名称")
       private String versionName;
       @ApiModelProperty("设备Key")
       private String mchKey;
       @ApiModelProperty("设备类型")
       private Integer mchType;
       @ApiModelProperty("设备ip")
       private String mchIp;
       @ApiModelProperty("子网掩码")
       private String mchMask;
       @ApiModelProperty("设备mac")
       private String mchMac;
       @ApiModelProperty("网关")
       private String mchGateway;
       @ApiModelProperty("首选dns")
       private String firstDns;
       @ApiModelProperty("备选dns")
       private String nextDns;
       @ApiModelProperty("菜谱编号")
       private Long recipeId;
       @ApiModelProperty("消费模式")
       private Integer consumMode;
       @ApiModelProperty("通讯模式")
       private Integer commMode;
       @ApiModelProperty("生效范围")
       private Long effId;
       @ApiModelProperty("范围名称")
       private String effName;
       private Integer ifQuotaLimit = 2;
       private Integer ifTimeLimit = 2;
       private Integer ifDiscount = 2;
       private Integer ifUseCallNum = 2;
       private Integer dataStatus;
       @ApiModelProperty("设备是否启用 1-是 2-否")
       private Integer ifEnable;
       @ApiModelProperty("菜谱名称")
       private String recipeName;
       @ApiModelProperty("设备型号")
       private String mchModel;
       @ApiModelProperty("设备状态")
       private Integer machineState;
       @ApiModelProperty(
          value = "图片地址",
          notes = "当mchType 为40 时 代表背景图"
       )
       private String imgUrl;
       @ApiModelProperty("账户余额不足多少提醒")
       private Integer amountNotify;
       @ApiModelProperty("餐盘绑定有效时间")
       private Integer bindingValidTime;
       @ApiModelProperty("订单自动结算时间")
       private Integer ordAutomaticPay;
       @ApiModelProperty("是否允许离线消费")
       private Integer ifOffLinePay;
       @ApiModelProperty("报警时长")
       private Integer alarmTime;
       @ApiModelProperty("勺子重量")
       private Integer spoonWeight;
       @ApiModelProperty("心跳包时间")
       private Long heartBeatTime;
       @ApiModelProperty("轮播播放时间")
       private Long carouselTime;
       @ApiModelProperty("字幕标语")
       private String titleSlogan;
       @ApiModelProperty(
          value = "字体大小",
          notes = "默认20"
       )
       private Integer fontSize;
       @ApiModelProperty(
          value = "字体颜色",
          notes = "默认黑色"
       )
       private String fontColor;
       @ApiModelProperty("字体行数")
       private Integer lineNum;
       @ApiModelProperty("设备固定消费金额")
       private Integer oncePayAmount;
       @ApiModelProperty("界面样式(电子菜排)")
       private Integer guiStyle;
       @ApiModelProperty("设备背景或轮播图片")
       private JsonNode imageMap;
       @ApiModelProperty("乐观锁")
       private Integer revision;
       @ApiModelProperty("创建人")
       private String crby;
       @ApiModelProperty("创建时间")
       private LocalDateTime crtime;
       @ApiModelProperty("更新人")
       private String upby;
       @ApiModelProperty("修改时间")
       private LocalDateTime uptime;
       @ApiModelProperty("取餐柜")
       private List<MacMachineCounter> macMachineCounters;
       @ApiModelProperty("打印机")
       private SelectMacPrinter macPrinters = new SelectMacPrinter();
       private List<QueryMacBuffetVO> macBuffetList;
       @ApiModelProperty("单笔订单开门数量")
       private Integer ordOpenLimit;
       @ApiModelProperty("单个柜门存单上限")
       private Integer detailNumLimit;
       @ApiModelProperty("第三方终端ID")
       private String terminalSn;
       @ApiModelProperty("第三方终端密钥")
       private String terminalKey;
       @ApiModelProperty("消息配置信息（出参）")
       private MessageConfigVO messageConfigVO;
       @ApiModelProperty("多档口信息")
       private List<CustomShopstallVO> customShopstallVOList;
       @ApiModelProperty("是否营业")
       private Integer ifOpen;
       @ApiModelProperty("档口营业开始时间")
       private LocalTime staTime;
       @ApiModelProperty("档口营业结束时间")
       private LocalTime endTime;
       @ApiModelProperty("菜谱信息")
       private List<DeviceRecipeVO> recipeList;
       @ApiModelProperty("菜品信息")
       private List<DeviceDishesVO> dishesList;
       @ApiModelProperty("关联设备表")
       private List<DeviceControlRelationVO> relationDeviceList;
       @ApiModelProperty("闸机默认消费金额")
       private Integer gateDefaultAmount;

       public String getImgUrl() {
          return SysUtil.getCutFileUrl(this.imgUrl);
       }

       public Long getCanteenId() {
          return this.canteenId == null && this.diningId != null ? this.diningId : this.canteenId;
       }

       public Long getId() {
          return this.id;
       }

       public Long getMachineId() {
          return this.machineId;
       }

       public Long getDiningId() {
          return this.diningId;
       }

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

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

       public String getStname() {
          return this.stname;
       }

       public Integer getDeviceAgreement() {
          return this.deviceAgreement;
       }

       public String getMachineSn() {
          return this.machineSn;
       }

       public String getMchPwd() {
          return this.mchPwd;
       }

       public String getMchNum() {
          return this.mchNum;
       }

       public String getMchAddr() {
          return this.mchAddr;
       }

       public String getMchName() {
          return this.mchName;
       }

       public Integer getOnlineState() {
          return this.onlineState;
       }

       public Integer getVersionCode() {
          return this.versionCode;
       }

       public String getVersionName() {
          return this.versionName;
       }

       public String getMchKey() {
          return this.mchKey;
       }

       public Integer getMchType() {
          return this.mchType;
       }

       public String getMchIp() {
          return this.mchIp;
       }

       public String getMchMask() {
          return this.mchMask;
       }

       public String getMchMac() {
          return this.mchMac;
       }

       public String getMchGateway() {
          return this.mchGateway;
       }

       public String getFirstDns() {
          return this.firstDns;
       }

       public String getNextDns() {
          return this.nextDns;
       }

       public Long getRecipeId() {
          return this.recipeId;
       }

       public Integer getConsumMode() {
          return this.consumMode;
       }

       public Integer getCommMode() {
          return this.commMode;
       }

       public Long getEffId() {
          return this.effId;
       }

       public String getEffName() {
          return this.effName;
       }

       public Integer getIfQuotaLimit() {
          return this.ifQuotaLimit;
       }

       public Integer getIfTimeLimit() {
          return this.ifTimeLimit;
       }

       public Integer getIfDiscount() {
          return this.ifDiscount;
       }

       public Integer getIfUseCallNum() {
          return this.ifUseCallNum;
       }

       public Integer getDataStatus() {
          return this.dataStatus;
       }

       public Integer getIfEnable() {
          return this.ifEnable;
       }

       public String getRecipeName() {
          return this.recipeName;
       }

       public String getMchModel() {
          return this.mchModel;
       }

       public Integer getMachineState() {
          return this.machineState;
       }

       public Integer getAmountNotify() {
          return this.amountNotify;
       }

       public Integer getBindingValidTime() {
          return this.bindingValidTime;
       }

       public Integer getOrdAutomaticPay() {
          return this.ordAutomaticPay;
       }

       public Integer getIfOffLinePay() {
          return this.ifOffLinePay;
       }

       public Integer getAlarmTime() {
          return this.alarmTime;
       }

       public Integer getSpoonWeight() {
          return this.spoonWeight;
       }

       public Long getHeartBeatTime() {
          return this.heartBeatTime;
       }

       public Long getCarouselTime() {
          return this.carouselTime;
       }

       public String getTitleSlogan() {
          return this.titleSlogan;
       }

       public Integer getFontSize() {
          return this.fontSize;
       }

       public String getFontColor() {
          return this.fontColor;
       }

       public Integer getLineNum() {
          return this.lineNum;
       }

       public Integer getOncePayAmount() {
          return this.oncePayAmount;
       }

       public Integer getGuiStyle() {
          return this.guiStyle;
       }

       public JsonNode getImageMap() {
          return this.imageMap;
       }

       public Integer getRevision() {
          return this.revision;
       }

       public String getCrby() {
          return this.crby;
       }

       public LocalDateTime getCrtime() {
          return this.crtime;
       }

       public String getUpby() {
          return this.upby;
       }

       public LocalDateTime getUptime() {
          return this.uptime;
       }

       public List<MacMachineCounter> getMacMachineCounters() {
          return this.macMachineCounters;
       }

       public SelectMacPrinter getMacPrinters() {
          return this.macPrinters;
       }

       public List<QueryMacBuffetVO> getMacBuffetList() {
          return this.macBuffetList;
       }

       public Integer getOrdOpenLimit() {
          return this.ordOpenLimit;
       }

       public Integer getDetailNumLimit() {
          return this.detailNumLimit;
       }

       public String getTerminalSn() {
          return this.terminalSn;
       }

       public String getTerminalKey() {
          return this.terminalKey;
       }

       public MessageConfigVO getMessageConfigVO() {
          return this.messageConfigVO;
       }

       public List<CustomShopstallVO> getCustomShopstallVOList() {
          return this.customShopstallVOList;
       }

       public Integer getIfOpen() {
          return this.ifOpen;
       }

       public LocalTime getStaTime() {
          return this.staTime;
       }

       public LocalTime getEndTime() {
          return this.endTime;
       }

       public List<DeviceRecipeVO> getRecipeList() {
          return this.recipeList;
       }

       public List<DeviceDishesVO> getDishesList() {
          return this.dishesList;
       }

       public List<DeviceControlRelationVO> getRelationDeviceList() {
          return this.relationDeviceList;
       }

       public Integer getGateDefaultAmount() {
          return this.gateDefaultAmount;
       }

       public void setId(final Long id) {
          this.id = id;
       }

       public void setMachineId(final Long machineId) {
          this.machineId = machineId;
       }

       public void setDiningId(final Long diningId) {
          this.diningId = diningId;
       }

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

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

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

       public void setStname(final String stname) {
          this.stname = stname;
       }

       public void setDeviceAgreement(final Integer deviceAgreement) {
          this.deviceAgreement = deviceAgreement;
       }

       public void setMachineSn(final String machineSn) {
          this.machineSn = machineSn;
       }

       public void setMchPwd(final String mchPwd) {
          this.mchPwd = mchPwd;
       }

       public void setMchNum(final String mchNum) {
          this.mchNum = mchNum;
       }

       public void setMchAddr(final String mchAddr) {
          this.mchAddr = mchAddr;
       }

       public void setMchName(final String mchName) {
          this.mchName = mchName;
       }

       public void setOnlineState(final Integer onlineState) {
          this.onlineState = onlineState;
       }

       public void setVersionCode(final Integer versionCode) {
          this.versionCode = versionCode;
       }

       public void setVersionName(final String versionName) {
          this.versionName = versionName;
       }

       public void setMchKey(final String mchKey) {
          this.mchKey = mchKey;
       }

       public void setMchType(final Integer mchType) {
          this.mchType = mchType;
       }

       public void setMchIp(final String mchIp) {
          this.mchIp = mchIp;
       }

       public void setMchMask(final String mchMask) {
          this.mchMask = mchMask;
       }

       public void setMchMac(final String mchMac) {
          this.mchMac = mchMac;
       }

       public void setMchGateway(final String mchGateway) {
          this.mchGateway = mchGateway;
       }

       public void setFirstDns(final String firstDns) {
          this.firstDns = firstDns;
       }

       public void setNextDns(final String nextDns) {
          this.nextDns = nextDns;
       }

       public void setRecipeId(final Long recipeId) {
          this.recipeId = recipeId;
       }

       public void setConsumMode(final Integer consumMode) {
          this.consumMode = consumMode;
       }

       public void setCommMode(final Integer commMode) {
          this.commMode = commMode;
       }

       public void setEffId(final Long effId) {
          this.effId = effId;
       }

       public void setEffName(final String effName) {
          this.effName = effName;
       }

       public void setIfQuotaLimit(final Integer ifQuotaLimit) {
          this.ifQuotaLimit = ifQuotaLimit;
       }

       public void setIfTimeLimit(final Integer ifTimeLimit) {
          this.ifTimeLimit = ifTimeLimit;
       }

       public void setIfDiscount(final Integer ifDiscount) {
          this.ifDiscount = ifDiscount;
       }

       public void setIfUseCallNum(final Integer ifUseCallNum) {
          this.ifUseCallNum = ifUseCallNum;
       }

       public void setDataStatus(final Integer dataStatus) {
          this.dataStatus = dataStatus;
       }

       public void setIfEnable(final Integer ifEnable) {
          this.ifEnable = ifEnable;
       }

       public void setRecipeName(final String recipeName) {
          this.recipeName = recipeName;
       }

       public void setMchModel(final String mchModel) {
          this.mchModel = mchModel;
       }

       public void setMachineState(final Integer machineState) {
          this.machineState = machineState;
       }

       public void setImgUrl(final String imgUrl) {
          this.imgUrl = imgUrl;
       }

       public void setAmountNotify(final Integer amountNotify) {
          this.amountNotify = amountNotify;
       }

       public void setBindingValidTime(final Integer bindingValidTime) {
          this.bindingValidTime = bindingValidTime;
       }

       public void setOrdAutomaticPay(final Integer ordAutomaticPay) {
          this.ordAutomaticPay = ordAutomaticPay;
       }

       public void setIfOffLinePay(final Integer ifOffLinePay) {
          this.ifOffLinePay = ifOffLinePay;
       }

       public void setAlarmTime(final Integer alarmTime) {
          this.alarmTime = alarmTime;
       }

       public void setSpoonWeight(final Integer spoonWeight) {
          this.spoonWeight = spoonWeight;
       }

       public void setHeartBeatTime(final Long heartBeatTime) {
          this.heartBeatTime = heartBeatTime;
       }

       public void setCarouselTime(final Long carouselTime) {
          this.carouselTime = carouselTime;
       }

       public void setTitleSlogan(final String titleSlogan) {
          this.titleSlogan = titleSlogan;
       }

       public void setFontSize(final Integer fontSize) {
          this.fontSize = fontSize;
       }

       public void setFontColor(final String fontColor) {
          this.fontColor = fontColor;
       }

       public void setLineNum(final Integer lineNum) {
          this.lineNum = lineNum;
       }

       public void setOncePayAmount(final Integer oncePayAmount) {
          this.oncePayAmount = oncePayAmount;
       }

       public void setGuiStyle(final Integer guiStyle) {
          this.guiStyle = guiStyle;
       }

       public void setImageMap(final JsonNode imageMap) {
          this.imageMap = imageMap;
       }

       public void setRevision(final Integer revision) {
          this.revision = revision;
       }

       public void setCrby(final String crby) {
          this.crby = crby;
       }

       public void setCrtime(final LocalDateTime crtime) {
          this.crtime = crtime;
       }

       public void setUpby(final String upby) {
          this.upby = upby;
       }

       public void setUptime(final LocalDateTime uptime) {
          this.uptime = uptime;
       }

       public void setMacMachineCounters(final List<MacMachineCounter> macMachineCounters) {
          this.macMachineCounters = macMachineCounters;
       }

       public void setMacPrinters(final SelectMacPrinter macPrinters) {
          this.macPrinters = macPrinters;
       }

       public void setMacBuffetList(final List<QueryMacBuffetVO> macBuffetList) {
          this.macBuffetList = macBuffetList;
       }

       public void setOrdOpenLimit(final Integer ordOpenLimit) {
          this.ordOpenLimit = ordOpenLimit;
       }

       public void setDetailNumLimit(final Integer detailNumLimit) {
          this.detailNumLimit = detailNumLimit;
       }

       public void setTerminalSn(final String terminalSn) {
          this.terminalSn = terminalSn;
       }

       public void setTerminalKey(final String terminalKey) {
          this.terminalKey = terminalKey;
       }

       public void setMessageConfigVO(final MessageConfigVO messageConfigVO) {
          this.messageConfigVO = messageConfigVO;
       }

       public void setCustomShopstallVOList(final List<CustomShopstallVO> customShopstallVOList) {
          this.customShopstallVOList = customShopstallVOList;
       }

       public void setIfOpen(final Integer ifOpen) {
          this.ifOpen = ifOpen;
       }

       public void setStaTime(final LocalTime staTime) {
          this.staTime = staTime;
       }

       public void setEndTime(final LocalTime endTime) {
          this.endTime = endTime;
       }

       public void setRecipeList(final List<DeviceRecipeVO> recipeList) {
          this.recipeList = recipeList;
       }

       public void setDishesList(final List<DeviceDishesVO> dishesList) {
          this.dishesList = dishesList;
       }

       public void setRelationDeviceList(final List<DeviceControlRelationVO> relationDeviceList) {
          this.relationDeviceList = relationDeviceList;
       }

       public void setGateDefaultAmount(final Integer gateDefaultAmount) {
          this.gateDefaultAmount = gateDefaultAmount;
       }

    }
}