package org.wfc.omada.api.sitesetting.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.Valid;
import java.util.Objects;

/**
 * Hotspot: SMS Portal setting, required when [authType] is 11 and hotspot [enabledTypes] contains 6.
 */
@ApiModel(description = "Hotspot: SMS Portal setting, required when [authType] is 11 and hotspot [enabledTypes] contains 6.")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:32:19.054+08:00[Asia/Shanghai]")

public class SmsSettingResOpenApiVo   {
  @JsonProperty("sid")
  private String sid;

  @JsonProperty("authToken")
  private String authToken;

  @JsonProperty("phoneNum")
  private String phoneNum;

  @JsonProperty("maxVerificationCodeEnable")
  private Boolean maxVerificationCodeEnable;

  @JsonProperty("maxVerificationCodeTimes")
  private Integer maxVerificationCodeTimes;

  @JsonProperty("authTimeout")
  private AuthTimeOpenApiVo authTimeout;

  @JsonProperty("countryCode")
  private String countryCode;

  public SmsSettingResOpenApiVo sid(String sid) {
    this.sid = sid;
    return this;
  }

  /**
   * Twilio SID
   * @return sid
  */
  @ApiModelProperty(value = "Twilio SID")


  public String getSid() {
    return sid;
  }

  public void setSid(String sid) {
    this.sid = sid;
  }

  public SmsSettingResOpenApiVo authToken(String authToken) {
    this.authToken = authToken;
    return this;
  }

  /**
   * Twilio auth token
   * @return authToken
  */
  @ApiModelProperty(value = "Twilio auth token")


  public String getAuthToken() {
    return authToken;
  }

  public void setAuthToken(String authToken) {
    this.authToken = authToken;
  }

  public SmsSettingResOpenApiVo phoneNum(String phoneNum) {
    this.phoneNum = phoneNum;
    return this;
  }

  /**
   * Twilio phone number. String value, should contain at least 6 digits such as \"+123456\".
   * @return phoneNum
  */
  @ApiModelProperty(value = "Twilio phone number. String value, should contain at least 6 digits such as \"+123456\".")


  public String getPhoneNum() {
    return phoneNum;
  }

  public void setPhoneNum(String phoneNum) {
    this.phoneNum = phoneNum;
  }

  public SmsSettingResOpenApiVo maxVerificationCodeEnable(Boolean maxVerificationCodeEnable) {
    this.maxVerificationCodeEnable = maxVerificationCodeEnable;
    return this;
  }

  /**
   * Whether to control the limit of authentication for the same phone number.
   * @return maxVerificationCodeEnable
  */
  @ApiModelProperty(value = "Whether to control the limit of authentication for the same phone number.")


  public Boolean getMaxVerificationCodeEnable() {
    return maxVerificationCodeEnable;
  }

  public void setMaxVerificationCodeEnable(Boolean maxVerificationCodeEnable) {
    this.maxVerificationCodeEnable = maxVerificationCodeEnable;
  }

  public SmsSettingResOpenApiVo maxVerificationCodeTimes(Integer maxVerificationCodeTimes) {
    this.maxVerificationCodeTimes = maxVerificationCodeTimes;
    return this;
  }

  /**
   * User limit with the same phone number, should be within the range of 1–10. Required when parameter [maxVerificationCodeEnable] is true.
   * @return maxVerificationCodeTimes
  */
  @ApiModelProperty(value = "User limit with the same phone number, should be within the range of 1–10. Required when parameter [maxVerificationCodeEnable] is true.")


  public Integer getMaxVerificationCodeTimes() {
    return maxVerificationCodeTimes;
  }

  public void setMaxVerificationCodeTimes(Integer maxVerificationCodeTimes) {
    this.maxVerificationCodeTimes = maxVerificationCodeTimes;
  }

  public SmsSettingResOpenApiVo authTimeout(AuthTimeOpenApiVo authTimeout) {
    this.authTimeout = authTimeout;
    return this;
  }

  /**
   * Get authTimeout
   * @return authTimeout
  */
  @ApiModelProperty(value = "")

  @Valid

  public AuthTimeOpenApiVo getAuthTimeout() {
    return authTimeout;
  }

  public void setAuthTimeout(AuthTimeOpenApiVo authTimeout) {
    this.authTimeout = authTimeout;
  }

  public SmsSettingResOpenApiVo countryCode(String countryCode) {
    this.countryCode = countryCode;
    return this;
  }

  /**
   * Preset Contry code. String value such as \"+86\".
   * @return countryCode
  */
  @ApiModelProperty(value = "Preset Contry code. String value such as \"+86\".")


  public String getCountryCode() {
    return countryCode;
  }

  public void setCountryCode(String countryCode) {
    this.countryCode = countryCode;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    SmsSettingResOpenApiVo smsSettingResOpenApiVo = (SmsSettingResOpenApiVo) o;
    return Objects.equals(this.sid, smsSettingResOpenApiVo.sid) &&
        Objects.equals(this.authToken, smsSettingResOpenApiVo.authToken) &&
        Objects.equals(this.phoneNum, smsSettingResOpenApiVo.phoneNum) &&
        Objects.equals(this.maxVerificationCodeEnable, smsSettingResOpenApiVo.maxVerificationCodeEnable) &&
        Objects.equals(this.maxVerificationCodeTimes, smsSettingResOpenApiVo.maxVerificationCodeTimes) &&
        Objects.equals(this.authTimeout, smsSettingResOpenApiVo.authTimeout) &&
        Objects.equals(this.countryCode, smsSettingResOpenApiVo.countryCode);
  }

  @Override
  public int hashCode() {
    return Objects.hash(sid, authToken, phoneNum, maxVerificationCodeEnable, maxVerificationCodeTimes, authTimeout, countryCode);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class SmsSettingResOpenApiVo {\n");
    
    sb.append("    sid: ").append(toIndentedString(sid)).append("\n");
    sb.append("    authToken: ").append(toIndentedString(authToken)).append("\n");
    sb.append("    phoneNum: ").append(toIndentedString(phoneNum)).append("\n");
    sb.append("    maxVerificationCodeEnable: ").append(toIndentedString(maxVerificationCodeEnable)).append("\n");
    sb.append("    maxVerificationCodeTimes: ").append(toIndentedString(maxVerificationCodeTimes)).append("\n");
    sb.append("    authTimeout: ").append(toIndentedString(authTimeout)).append("\n");
    sb.append("    countryCode: ").append(toIndentedString(countryCode)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }
}

