package com.bonus.canteen.core.supermarket.model;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.bonus.common.houqin.framework.config.deserializer.DateTimeDeserializer;
import com.bonus.common.houqin.framework.config.serializer.DateTimeSerializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.time.LocalDateTime;

@ApiModel(
   value = "超市表",
   description = "超市表"
)
public class SupermarketInfo {
   @ApiModelProperty("超市id")
   private Long supermarketId;
   @ApiModelProperty("超市名称")
   private String supermarketName;
   @TableField(
           updateStrategy = FieldStrategy.IGNORED
   )
   @ApiModelProperty("管理员")
   private Long userId;
   @TableField(
           updateStrategy = FieldStrategy.IGNORED
   )
   @ApiModelProperty("联系电话")
   private String mobile;
   @TableField(
           updateStrategy = FieldStrategy.IGNORED
   )
   @ApiModelProperty("仓库id")
   private Long warehouseId;
   @TableField(
           updateStrategy = FieldStrategy.IGNORED
   )
   @ApiModelProperty("超市地址")
   private String address;
   @ApiModelProperty("图片url")
   private String imgUrl;
   @ApiModelProperty("是否立即打印")
   private Integer ifPrintNow;
   @ApiModelProperty("线上超市模式(1现货2预定)")
   private Integer appSaleMode;
   @ApiModelProperty("最少配送时间（分）")
   private Integer minDeliveryTime;
   @ApiModelProperty("选择时间间隔（分）")
   private Integer selectTimeInterval;
   @ApiModelProperty("配送费（元）")
   private Integer deliveryCost;
   @ApiModelProperty("自动核销天数（天）")
   private Integer autoVerifyDay;
   @ApiModelProperty("配送方式(1自取2配送)")
   private String deliveryWay;
   @TableField(
           updateStrategy = FieldStrategy.IGNORED
   )
   @ApiModelProperty("退单限制时间（分）")
   private Integer refundLimitTime;
   @ApiModelProperty("是否关联出入库")
   private Integer ifRelateDrp;
   @TableField(
           updateStrategy = FieldStrategy.IGNORED
   )
   @ApiModelProperty("范围id")
   private Long effId;
   @ApiModelProperty("是否删除")
   private Integer delFlag;
   @ApiModelProperty("乐观锁")
   private Integer revision;
   @TableField(
           value = "crby",
           fill = FieldFill.INSERT
   )
   @ApiModelProperty("创建人")
   private String crby;
   @JsonSerialize(
           using = DateTimeSerializer.YYYY_MM_DD_HH_MM_SS.class
   )
   @JsonDeserialize(
           using = DateTimeDeserializer.class
   )
   @TableField(
           value = "crtime",
           fill = FieldFill.INSERT
   )
   @ApiModelProperty("创建时间")
   private LocalDateTime crtime;
   @TableField(
           value = "upby",
           fill = FieldFill.UPDATE
   )
   @ApiModelProperty("更新人")
   private String upby;
   @JsonSerialize(
           using = DateTimeSerializer.YYYY_MM_DD_HH_MM_SS.class
   )
   @JsonDeserialize(
           using = DateTimeDeserializer.class
   )
   @TableField(
           value = "uptime",
           fill = FieldFill.UPDATE
   )
   @ApiModelProperty("更新时间")
   private LocalDateTime uptime;
   @TableField(
           updateStrategy = FieldStrategy.IGNORED
   )
   @ApiModelProperty("流水号前缀")
   private String mealCode;
   @ApiModelProperty("区域id")
   private Long areaId;
   @ApiModelProperty("是否启用收款码")
   private Integer ifEnablePayCode;
   @ApiModelProperty("超市收款码链接")
   private String payCodeUrl;

   public Long getSupermarketId() {
      return this.supermarketId;
   }

   public String getSupermarketName() {
      return this.supermarketName;
   }

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

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

   public Long getWarehouseId() {
      return this.warehouseId;
   }

   public String getAddress() {
      return this.address;
   }

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

   public Integer getIfPrintNow() {
      return this.ifPrintNow;
   }

   public Integer getAppSaleMode() {
      return this.appSaleMode;
   }

   public Integer getMinDeliveryTime() {
      return this.minDeliveryTime;
   }

   public Integer getSelectTimeInterval() {
      return this.selectTimeInterval;
   }

   public Integer getDeliveryCost() {
      return this.deliveryCost;
   }

   public Integer getAutoVerifyDay() {
      return this.autoVerifyDay;
   }

   public String getDeliveryWay() {
      return this.deliveryWay;
   }

   public Integer getRefundLimitTime() {
      return this.refundLimitTime;
   }

   public Integer getIfRelateDrp() {
      return this.ifRelateDrp;
   }

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

   public Integer getDelFlag() {
      return this.delFlag;
   }

   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 String getMealCode() {
      return this.mealCode;
   }

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

   public Integer getIfEnablePayCode() {
      return this.ifEnablePayCode;
   }

   public String getPayCodeUrl() {
      return this.payCodeUrl;
   }

   public SupermarketInfo setSupermarketId(final Long supermarketId) {
      this.supermarketId = supermarketId;
      return this;
   }

   public SupermarketInfo setSupermarketName(final String supermarketName) {
      this.supermarketName = supermarketName;
      return this;
   }

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

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

   public SupermarketInfo setWarehouseId(final Long warehouseId) {
      this.warehouseId = warehouseId;
      return this;
   }

   public SupermarketInfo setAddress(final String address) {
      this.address = address;
      return this;
   }

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

   public SupermarketInfo setIfPrintNow(final Integer ifPrintNow) {
      this.ifPrintNow = ifPrintNow;
      return this;
   }

   public SupermarketInfo setAppSaleMode(final Integer appSaleMode) {
      this.appSaleMode = appSaleMode;
      return this;
   }

   public SupermarketInfo setMinDeliveryTime(final Integer minDeliveryTime) {
      this.minDeliveryTime = minDeliveryTime;
      return this;
   }

   public SupermarketInfo setSelectTimeInterval(final Integer selectTimeInterval) {
      this.selectTimeInterval = selectTimeInterval;
      return this;
   }

   public SupermarketInfo setDeliveryCost(final Integer deliveryCost) {
      this.deliveryCost = deliveryCost;
      return this;
   }

   public SupermarketInfo setAutoVerifyDay(final Integer autoVerifyDay) {
      this.autoVerifyDay = autoVerifyDay;
      return this;
   }

   public SupermarketInfo setDeliveryWay(final String deliveryWay) {
      this.deliveryWay = deliveryWay;
      return this;
   }

   public SupermarketInfo setRefundLimitTime(final Integer refundLimitTime) {
      this.refundLimitTime = refundLimitTime;
      return this;
   }

   public SupermarketInfo setIfRelateDrp(final Integer ifRelateDrp) {
      this.ifRelateDrp = ifRelateDrp;
      return this;
   }

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

   public SupermarketInfo setDelFlag(final Integer delFlag) {
      this.delFlag = delFlag;
      return this;
   }

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

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

   @JsonDeserialize(
           using = DateTimeDeserializer.class
   )
   public SupermarketInfo setCrtime(final LocalDateTime crtime) {
      this.crtime = crtime;
      return this;
   }

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

   @JsonDeserialize(
           using = DateTimeDeserializer.class
   )
   public SupermarketInfo setUptime(final LocalDateTime uptime) {
      this.uptime = uptime;
      return this;
   }

   public SupermarketInfo setMealCode(final String mealCode) {
      this.mealCode = mealCode;
      return this;
   }

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

   public SupermarketInfo setIfEnablePayCode(final Integer ifEnablePayCode) {
      this.ifEnablePayCode = ifEnablePayCode;
      return this;
   }

   public SupermarketInfo setPayCodeUrl(final String payCodeUrl) {
      this.payCodeUrl = payCodeUrl;
      return this;
   }

   @Override
   public boolean equals(final Object o) {
      if (o == this) {
         return true;
      } else if (!(o instanceof SupermarketInfo)) {
         return false;
      } else {
         SupermarketInfo other = (SupermarketInfo)o;
         if (!other.canEqual(this)) {
            return false;
         } else {
            label335: {
               Object this$supermarketId = this.getSupermarketId();
               Object other$supermarketId = other.getSupermarketId();
               if (this$supermarketId == null) {
                  if (other$supermarketId == null) {
                     break label335;
                  }
               } else if (this$supermarketId.equals(other$supermarketId)) {
                  break label335;
               }

               return false;
            }

            Object this$userId = this.getUserId();
            Object other$userId = other.getUserId();
            if (this$userId == null) {
               if (other$userId != null) {
                  return false;
               }
            } else if (!this$userId.equals(other$userId)) {
               return false;
            }

            Object this$warehouseId = this.getWarehouseId();
            Object other$warehouseId = other.getWarehouseId();
            if (this$warehouseId == null) {
               if (other$warehouseId != null) {
                  return false;
               }
            } else if (!this$warehouseId.equals(other$warehouseId)) {
               return false;
            }

            label314: {
               Object this$ifPrintNow = this.getIfPrintNow();
               Object other$ifPrintNow = other.getIfPrintNow();
               if (this$ifPrintNow == null) {
                  if (other$ifPrintNow == null) {
                     break label314;
                  }
               } else if (this$ifPrintNow.equals(other$ifPrintNow)) {
                  break label314;
               }

               return false;
            }

            label307: {
               Object this$appSaleMode = this.getAppSaleMode();
               Object other$appSaleMode = other.getAppSaleMode();
               if (this$appSaleMode == null) {
                  if (other$appSaleMode == null) {
                     break label307;
                  }
               } else if (this$appSaleMode.equals(other$appSaleMode)) {
                  break label307;
               }

               return false;
            }

            Object this$minDeliveryTime = this.getMinDeliveryTime();
            Object other$minDeliveryTime = other.getMinDeliveryTime();
            if (this$minDeliveryTime == null) {
               if (other$minDeliveryTime != null) {
                  return false;
               }
            } else if (!this$minDeliveryTime.equals(other$minDeliveryTime)) {
               return false;
            }

            Object this$selectTimeInterval = this.getSelectTimeInterval();
            Object other$selectTimeInterval = other.getSelectTimeInterval();
            if (this$selectTimeInterval == null) {
               if (other$selectTimeInterval != null) {
                  return false;
               }
            } else if (!this$selectTimeInterval.equals(other$selectTimeInterval)) {
               return false;
            }

            label286: {
               Object this$deliveryCost = this.getDeliveryCost();
               Object other$deliveryCost = other.getDeliveryCost();
               if (this$deliveryCost == null) {
                  if (other$deliveryCost == null) {
                     break label286;
                  }
               } else if (this$deliveryCost.equals(other$deliveryCost)) {
                  break label286;
               }

               return false;
            }

            label279: {
               Object this$autoVerifyDay = this.getAutoVerifyDay();
               Object other$autoVerifyDay = other.getAutoVerifyDay();
               if (this$autoVerifyDay == null) {
                  if (other$autoVerifyDay == null) {
                     break label279;
                  }
               } else if (this$autoVerifyDay.equals(other$autoVerifyDay)) {
                  break label279;
               }

               return false;
            }

            Object this$refundLimitTime = this.getRefundLimitTime();
            Object other$refundLimitTime = other.getRefundLimitTime();
            if (this$refundLimitTime == null) {
               if (other$refundLimitTime != null) {
                  return false;
               }
            } else if (!this$refundLimitTime.equals(other$refundLimitTime)) {
               return false;
            }

            label265: {
               Object this$ifRelateDrp = this.getIfRelateDrp();
               Object other$ifRelateDrp = other.getIfRelateDrp();
               if (this$ifRelateDrp == null) {
                  if (other$ifRelateDrp == null) {
                     break label265;
                  }
               } else if (this$ifRelateDrp.equals(other$ifRelateDrp)) {
                  break label265;
               }

               return false;
            }

            Object this$effId = this.getEffId();
            Object other$effId = other.getEffId();
            if (this$effId == null) {
               if (other$effId != null) {
                  return false;
               }
            } else if (!this$effId.equals(other$effId)) {
               return false;
            }

            label251: {
               Object this$delFlag = this.getDelFlag();
               Object other$delFlag = other.getDelFlag();
               if (this$delFlag == null) {
                  if (other$delFlag == null) {
                     break label251;
                  }
               } else if (this$delFlag.equals(other$delFlag)) {
                  break label251;
               }

               return false;
            }

            Object this$revision = this.getRevision();
            Object other$revision = other.getRevision();
            if (this$revision == null) {
               if (other$revision != null) {
                  return false;
               }
            } else if (!this$revision.equals(other$revision)) {
               return false;
            }

            Object this$areaId = this.getAreaId();
            Object other$areaId = other.getAreaId();
            if (this$areaId == null) {
               if (other$areaId != null) {
                  return false;
               }
            } else if (!this$areaId.equals(other$areaId)) {
               return false;
            }

            label230: {
               Object this$ifEnablePayCode = this.getIfEnablePayCode();
               Object other$ifEnablePayCode = other.getIfEnablePayCode();
               if (this$ifEnablePayCode == null) {
                  if (other$ifEnablePayCode == null) {
                     break label230;
                  }
               } else if (this$ifEnablePayCode.equals(other$ifEnablePayCode)) {
                  break label230;
               }

               return false;
            }

            label223: {
               Object this$supermarketName = this.getSupermarketName();
               Object other$supermarketName = other.getSupermarketName();
               if (this$supermarketName == null) {
                  if (other$supermarketName == null) {
                     break label223;
                  }
               } else if (this$supermarketName.equals(other$supermarketName)) {
                  break label223;
               }

               return false;
            }

            Object this$mobile = this.getMobile();
            Object other$mobile = other.getMobile();
            if (this$mobile == null) {
               if (other$mobile != null) {
                  return false;
               }
            } else if (!this$mobile.equals(other$mobile)) {
               return false;
            }

            Object this$address = this.getAddress();
            Object other$address = other.getAddress();
            if (this$address == null) {
               if (other$address != null) {
                  return false;
               }
            } else if (!this$address.equals(other$address)) {
               return false;
            }

            label202: {
               Object this$imgUrl = this.getImgUrl();
               Object other$imgUrl = other.getImgUrl();
               if (this$imgUrl == null) {
                  if (other$imgUrl == null) {
                     break label202;
                  }
               } else if (this$imgUrl.equals(other$imgUrl)) {
                  break label202;
               }

               return false;
            }

            label195: {
               Object this$deliveryWay = this.getDeliveryWay();
               Object other$deliveryWay = other.getDeliveryWay();
               if (this$deliveryWay == null) {
                  if (other$deliveryWay == null) {
                     break label195;
                  }
               } else if (this$deliveryWay.equals(other$deliveryWay)) {
                  break label195;
               }

               return false;
            }

            Object this$crby = this.getCrby();
            Object other$crby = other.getCrby();
            if (this$crby == null) {
               if (other$crby != null) {
                  return false;
               }
            } else if (!this$crby.equals(other$crby)) {
               return false;
            }

            Object this$crtime = this.getCrtime();
            Object other$crtime = other.getCrtime();
            if (this$crtime == null) {
               if (other$crtime != null) {
                  return false;
               }
            } else if (!this$crtime.equals(other$crtime)) {
               return false;
            }

            label174: {
               Object this$upby = this.getUpby();
               Object other$upby = other.getUpby();
               if (this$upby == null) {
                  if (other$upby == null) {
                     break label174;
                  }
               } else if (this$upby.equals(other$upby)) {
                  break label174;
               }

               return false;
            }

            label167: {
               Object this$uptime = this.getUptime();
               Object other$uptime = other.getUptime();
               if (this$uptime == null) {
                  if (other$uptime == null) {
                     break label167;
                  }
               } else if (this$uptime.equals(other$uptime)) {
                  break label167;
               }

               return false;
            }

            Object this$mealCode = this.getMealCode();
            Object other$mealCode = other.getMealCode();
            if (this$mealCode == null) {
               if (other$mealCode != null) {
                  return false;
               }
            } else if (!this$mealCode.equals(other$mealCode)) {
               return false;
            }

            Object this$payCodeUrl = this.getPayCodeUrl();
            Object other$payCodeUrl = other.getPayCodeUrl();
            if (this$payCodeUrl == null) {
               if (other$payCodeUrl != null) {
                  return false;
               }
            } else if (!this$payCodeUrl.equals(other$payCodeUrl)) {
               return false;
            }

            return true;
         }
      }
   }

   protected boolean canEqual(final Object other) {
      return other instanceof SupermarketInfo;
   }

   @Override
   public int hashCode() {
      int result = 1;
      Object $supermarketId = this.getSupermarketId();
      result = result * 59 + ($supermarketId == null ? 43 : $supermarketId.hashCode());
      Object $userId = this.getUserId();
      result = result * 59 + ($userId == null ? 43 : $userId.hashCode());
      Object $warehouseId = this.getWarehouseId();
      result = result * 59 + ($warehouseId == null ? 43 : $warehouseId.hashCode());
      Object $ifPrintNow = this.getIfPrintNow();
      result = result * 59 + ($ifPrintNow == null ? 43 : $ifPrintNow.hashCode());
      Object $appSaleMode = this.getAppSaleMode();
      result = result * 59 + ($appSaleMode == null ? 43 : $appSaleMode.hashCode());
      Object $minDeliveryTime = this.getMinDeliveryTime();
      result = result * 59 + ($minDeliveryTime == null ? 43 : $minDeliveryTime.hashCode());
      Object $selectTimeInterval = this.getSelectTimeInterval();
      result = result * 59 + ($selectTimeInterval == null ? 43 : $selectTimeInterval.hashCode());
      Object $deliveryCost = this.getDeliveryCost();
      result = result * 59 + ($deliveryCost == null ? 43 : $deliveryCost.hashCode());
      Object $autoVerifyDay = this.getAutoVerifyDay();
      result = result * 59 + ($autoVerifyDay == null ? 43 : $autoVerifyDay.hashCode());
      Object $refundLimitTime = this.getRefundLimitTime();
      result = result * 59 + ($refundLimitTime == null ? 43 : $refundLimitTime.hashCode());
      Object $ifRelateDrp = this.getIfRelateDrp();
      result = result * 59 + ($ifRelateDrp == null ? 43 : $ifRelateDrp.hashCode());
      Object $effId = this.getEffId();
      result = result * 59 + ($effId == null ? 43 : $effId.hashCode());
      Object $delFlag = this.getDelFlag();
      result = result * 59 + ($delFlag == null ? 43 : $delFlag.hashCode());
      Object $revision = this.getRevision();
      result = result * 59 + ($revision == null ? 43 : $revision.hashCode());
      Object $areaId = this.getAreaId();
      result = result * 59 + ($areaId == null ? 43 : $areaId.hashCode());
      Object $ifEnablePayCode = this.getIfEnablePayCode();
      result = result * 59 + ($ifEnablePayCode == null ? 43 : $ifEnablePayCode.hashCode());
      Object $supermarketName = this.getSupermarketName();
      result = result * 59 + ($supermarketName == null ? 43 : $supermarketName.hashCode());
      Object $mobile = this.getMobile();
      result = result * 59 + ($mobile == null ? 43 : $mobile.hashCode());
      Object $address = this.getAddress();
      result = result * 59 + ($address == null ? 43 : $address.hashCode());
      Object $imgUrl = this.getImgUrl();
      result = result * 59 + ($imgUrl == null ? 43 : $imgUrl.hashCode());
      Object $deliveryWay = this.getDeliveryWay();
      result = result * 59 + ($deliveryWay == null ? 43 : $deliveryWay.hashCode());
      Object $crby = this.getCrby();
      result = result * 59 + ($crby == null ? 43 : $crby.hashCode());
      Object $crtime = this.getCrtime();
      result = result * 59 + ($crtime == null ? 43 : $crtime.hashCode());
      Object $upby = this.getUpby();
      result = result * 59 + ($upby == null ? 43 : $upby.hashCode());
      Object $uptime = this.getUptime();
      result = result * 59 + ($uptime == null ? 43 : $uptime.hashCode());
      Object $mealCode = this.getMealCode();
      result = result * 59 + ($mealCode == null ? 43 : $mealCode.hashCode());
      Object $payCodeUrl = this.getPayCodeUrl();
      result = result * 59 + ($payCodeUrl == null ? 43 : $payCodeUrl.hashCode());
      return result;
   }

   @Override
   public String toString() {
      Long var10000 = this.getSupermarketId();
      return "SupermarketInfo(supermarketId=" + var10000 + ", supermarketName=" + this.getSupermarketName() + ", userId=" + this.getUserId() + ", mobile=" + this.getMobile() + ", warehouseId=" + this.getWarehouseId() + ", address=" + this.getAddress() + ", imgUrl=" + this.getImgUrl() + ", ifPrintNow=" + this.getIfPrintNow() + ", appSaleMode=" + this.getAppSaleMode() + ", minDeliveryTime=" + this.getMinDeliveryTime() + ", selectTimeInterval=" + this.getSelectTimeInterval() + ", deliveryCost=" + this.getDeliveryCost() + ", autoVerifyDay=" + this.getAutoVerifyDay() + ", deliveryWay=" + this.getDeliveryWay() + ", refundLimitTime=" + this.getRefundLimitTime() + ", ifRelateDrp=" + this.getIfRelateDrp() + ", effId=" + this.getEffId() + ", delFlag=" + this.getDelFlag() + ", revision=" + this.getRevision() + ", crby=" + this.getCrby() + ", crtime=" + String.valueOf(this.getCrtime()) + ", upby=" + this.getUpby() + ", uptime=" + String.valueOf(this.getUptime()) + ", mealCode=" + this.getMealCode() + ", areaId=" + this.getAreaId() + ", ifEnablePayCode=" + this.getIfEnablePayCode() + ", payCodeUrl=" + this.getPayCodeUrl() + ")";
   }
}
