package com.bonus.core.customer.dto;

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

import java.io.Serializable;

@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 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 + ")";
      }
   }
}
