package com.bonus.core.customer.dto;

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

import java.io.Serializable;

@Data
@ApiModel("查询人员信息入参")
public class CustInfoDTO implements Serializable {
   @ApiModelProperty("人员id")
   private Long custId;
   @ApiModelProperty("人员限制id")
   private Integer custLimitId;
   @ApiModelProperty("卡序列号")
   private String serialNum;
   @ApiModelProperty("人员状态 1-正常 2-注销")
   private Integer custState;
   @ApiModelProperty("来源")
   private Integer sourceType;
   @ApiModelProperty("openid")
   private String openId;
   @ApiModelProperty("支付宝付款码")
   private String authCode;

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

   public Long getCustId() {
      return this.custId;
   }

   public Integer getCustLimitId() {
      return this.custLimitId;
   }

   public String getSerialNum() {
      return this.serialNum;
   }

   public Integer getCustState() {
      return this.custState;
   }

   public Integer getSourceType() {
      return this.sourceType;
   }

   public String getOpenId() {
      return this.openId;
   }

   public String getAuthCode() {
      return this.authCode;
   }

   public CustInfoDTO setCustId(final Long custId) {
      this.custId = custId;
      return this;
   }

   public CustInfoDTO setCustLimitId(final Integer custLimitId) {
      this.custLimitId = custLimitId;
      return this;
   }

   public CustInfoDTO setSerialNum(final String serialNum) {
      this.serialNum = serialNum;
      return this;
   }

   public CustInfoDTO setCustState(final Integer custState) {
      this.custState = custState;
      return this;
   }

   public CustInfoDTO setSourceType(final Integer sourceType) {
      this.sourceType = sourceType;
      return this;
   }

   public CustInfoDTO setOpenId(final String openId) {
      this.openId = openId;
      return this;
   }

   public CustInfoDTO setAuthCode(final String authCode) {
      this.authCode = authCode;
      return this;
   }

   public boolean equals(final Object o) {
      if (o == this) {
         return true;
      } else if (!(o instanceof CustInfoDTO)) {
         return false;
      } else {
         CustInfoDTO other = (CustInfoDTO)o;
         if (!other.canEqual(this)) {
            return false;
         } else {
            label95: {
               Object this$custId = this.getCustId();
               Object other$custId = other.getCustId();
               if (this$custId == null) {
                  if (other$custId == null) {
                     break label95;
                  }
               } else if (this$custId.equals(other$custId)) {
                  break label95;
               }

               return false;
            }

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

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

            label74: {
               Object this$sourceType = this.getSourceType();
               Object other$sourceType = other.getSourceType();
               if (this$sourceType == null) {
                  if (other$sourceType == null) {
                     break label74;
                  }
               } else if (this$sourceType.equals(other$sourceType)) {
                  break label74;
               }

               return false;
            }

            label67: {
               Object this$serialNum = this.getSerialNum();
               Object other$serialNum = other.getSerialNum();
               if (this$serialNum == null) {
                  if (other$serialNum == null) {
                     break label67;
                  }
               } else if (this$serialNum.equals(other$serialNum)) {
                  break label67;
               }

               return false;
            }

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

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

            return true;
         }
      }
   }

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


   public String toString() {
      Long var10000 = this.getCustId();
      return "CustInfoDTO(custId=" + var10000 + ", custLimitId=" + this.getCustLimitId() + ", serialNum=" + this.getSerialNum() + ", custState=" + this.getCustState() + ", sourceType=" + this.getSourceType() + ", openId=" + this.getOpenId() + ", authCode=" + this.getAuthCode() + ")";
   }

   public CustInfoDTO() {
   }

   public CustInfoDTO(final Long custId, final Integer custLimitId, final String serialNum, final Integer custState, final Integer sourceType, final String openId, final String authCode) {
      this.custId = custId;
      this.custLimitId = custLimitId;
      this.serialNum = serialNum;
      this.custState = custState;
      this.sourceType = sourceType;
      this.openId = openId;
      this.authCode = authCode;
   }

   public static class CustInfoDTOBuilder {
      private Long custId;
      private Integer custLimitId;
      private String serialNum;
      private Integer custState;
      private Integer sourceType;
      private String openId;
      private String authCode;

      CustInfoDTOBuilder() {
      }

      public CustInfoDTOBuilder custId(final Long custId) {
         this.custId = custId;
         return this;
      }

      public CustInfoDTOBuilder custLimitId(final Integer custLimitId) {
         this.custLimitId = custLimitId;
         return this;
      }

      public CustInfoDTOBuilder serialNum(final String serialNum) {
         this.serialNum = serialNum;
         return this;
      }

      public CustInfoDTOBuilder custState(final Integer custState) {
         this.custState = custState;
         return this;
      }

      public CustInfoDTOBuilder sourceType(final Integer sourceType) {
         this.sourceType = sourceType;
         return this;
      }

      public CustInfoDTOBuilder openId(final String openId) {
         this.openId = openId;
         return this;
      }

      public CustInfoDTOBuilder authCode(final String authCode) {
         this.authCode = authCode;
         return this;
      }

      public CustInfoDTO build() {
         return new CustInfoDTO(this.custId, this.custLimitId, this.serialNum, this.custState, this.sourceType, this.openId, this.authCode);
      }

      public String toString() {
         return "CustInfoDTO.CustInfoDTOBuilder(custId=" + this.custId + ", custLimitId=" + this.custLimitId + ", serialNum=" + this.serialNum + ", custState=" + this.custState + ", sourceType=" + this.sourceType + ", openId=" + this.openId + ", authCode=" + this.authCode + ")";
      }
   }
}
