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.constraints.NotNull;
import java.util.Objects;

/**
 * Site beacon control.
 */
@ApiModel(description = "Site beacon control.")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:32:19.054+08:00[Asia/Shanghai]")

public class BeaconControlVo   {
  @JsonProperty("beaconInterval2g")
  private Integer beaconInterval2g;

  @JsonProperty("beaconIntvMode2g")
  private Integer beaconIntvMode2g;

  @JsonProperty("dtimPeriod2g")
  private Integer dtimPeriod2g;

  @JsonProperty("rtsThreshold2g")
  private Integer rtsThreshold2g;

  @JsonProperty("fragmentationThreshold2g")
  private Integer fragmentationThreshold2g;

  @JsonProperty("beaconInterval5g")
  private Integer beaconInterval5g;

  @JsonProperty("beaconIntvMode5g")
  private Integer beaconIntvMode5g;

  @JsonProperty("dtimPeriod5g")
  private Integer dtimPeriod5g;

  @JsonProperty("rtsThreshold5g")
  private Integer rtsThreshold5g;

  @JsonProperty("fragmentationThreshold5g")
  private Integer fragmentationThreshold5g;

  @JsonProperty("beaconInterval6g")
  private Integer beaconInterval6g;

  @JsonProperty("beaconIntvMode6g")
  private Integer beaconIntvMode6g;

  @JsonProperty("dtimPeriod6g")
  private Integer dtimPeriod6g;

  @JsonProperty("rtsThreshold6g")
  private Integer rtsThreshold6g;

  @JsonProperty("fragmentationThreshold6g")
  private Integer fragmentationThreshold6g;

  public BeaconControlVo beaconInterval2g(Integer beaconInterval2g) {
    this.beaconInterval2g = beaconInterval2g;
    return this;
  }

  /**
   * 2.4GHz beacon interval, parameter beaconInterval2g should be within the range of 40-500)
   * @return beaconInterval2g
  */
  @ApiModelProperty(value = "2.4GHz beacon interval, parameter beaconInterval2g should be within the range of 40-500)")


  public Integer getBeaconInterval2g() {
    return beaconInterval2g;
  }

  public void setBeaconInterval2g(Integer beaconInterval2g) {
    this.beaconInterval2g = beaconInterval2g;
  }

  public BeaconControlVo beaconIntvMode2g(Integer beaconIntvMode2g) {
    this.beaconIntvMode2g = beaconIntvMode2g;
    return this;
  }

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


  public Integer getBeaconIntvMode2g() {
    return beaconIntvMode2g;
  }

  public void setBeaconIntvMode2g(Integer beaconIntvMode2g) {
    this.beaconIntvMode2g = beaconIntvMode2g;
  }

  public BeaconControlVo dtimPeriod2g(Integer dtimPeriod2g) {
    this.dtimPeriod2g = dtimPeriod2g;
    return this;
  }

  /**
   * 2.4GHz DTIM period, parameter dtimPeriod2g should be within the range of 1-255
   * @return dtimPeriod2g
  */
  @ApiModelProperty(required = true, value = "2.4GHz DTIM period, parameter dtimPeriod2g should be within the range of 1-255")
  @NotNull


  public Integer getDtimPeriod2g() {
    return dtimPeriod2g;
  }

  public void setDtimPeriod2g(Integer dtimPeriod2g) {
    this.dtimPeriod2g = dtimPeriod2g;
  }

  public BeaconControlVo rtsThreshold2g(Integer rtsThreshold2g) {
    this.rtsThreshold2g = rtsThreshold2g;
    return this;
  }

  /**
   * 2.4GHz RTS threshold, parameter rtsThreshold2g should be within the range of 1-2347
   * @return rtsThreshold2g
  */
  @ApiModelProperty(required = true, value = "2.4GHz RTS threshold, parameter rtsThreshold2g should be within the range of 1-2347")
  @NotNull


  public Integer getRtsThreshold2g() {
    return rtsThreshold2g;
  }

  public void setRtsThreshold2g(Integer rtsThreshold2g) {
    this.rtsThreshold2g = rtsThreshold2g;
  }

  public BeaconControlVo fragmentationThreshold2g(Integer fragmentationThreshold2g) {
    this.fragmentationThreshold2g = fragmentationThreshold2g;
    return this;
  }

  /**
   * 2.4GHz fragmentation threshold, parameter fragmentationThreshold2g should be within the range of 256-2346
   * @return fragmentationThreshold2g
  */
  @ApiModelProperty(value = "2.4GHz fragmentation threshold, parameter fragmentationThreshold2g should be within the range of 256-2346")


  public Integer getFragmentationThreshold2g() {
    return fragmentationThreshold2g;
  }

  public void setFragmentationThreshold2g(Integer fragmentationThreshold2g) {
    this.fragmentationThreshold2g = fragmentationThreshold2g;
  }

  public BeaconControlVo beaconInterval5g(Integer beaconInterval5g) {
    this.beaconInterval5g = beaconInterval5g;
    return this;
  }

  /**
   * 5GHz beacon interval, parameter beaconInterval5g should be within the range of 40-500)
   * @return beaconInterval5g
  */
  @ApiModelProperty(value = "5GHz beacon interval, parameter beaconInterval5g should be within the range of 40-500)")


  public Integer getBeaconInterval5g() {
    return beaconInterval5g;
  }

  public void setBeaconInterval5g(Integer beaconInterval5g) {
    this.beaconInterval5g = beaconInterval5g;
  }

  public BeaconControlVo beaconIntvMode5g(Integer beaconIntvMode5g) {
    this.beaconIntvMode5g = beaconIntvMode5g;
    return this;
  }

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


  public Integer getBeaconIntvMode5g() {
    return beaconIntvMode5g;
  }

  public void setBeaconIntvMode5g(Integer beaconIntvMode5g) {
    this.beaconIntvMode5g = beaconIntvMode5g;
  }

  public BeaconControlVo dtimPeriod5g(Integer dtimPeriod5g) {
    this.dtimPeriod5g = dtimPeriod5g;
    return this;
  }

  /**
   * 5GHz DTIM period, parameter dtimPeriod5g should be within the range of 1-255
   * @return dtimPeriod5g
  */
  @ApiModelProperty(required = true, value = "5GHz DTIM period, parameter dtimPeriod5g should be within the range of 1-255")
  @NotNull


  public Integer getDtimPeriod5g() {
    return dtimPeriod5g;
  }

  public void setDtimPeriod5g(Integer dtimPeriod5g) {
    this.dtimPeriod5g = dtimPeriod5g;
  }

  public BeaconControlVo rtsThreshold5g(Integer rtsThreshold5g) {
    this.rtsThreshold5g = rtsThreshold5g;
    return this;
  }

  /**
   * 5GHz RTS threshold, parameter rtsThreshold5g should be within the range of 1-2347
   * @return rtsThreshold5g
  */
  @ApiModelProperty(required = true, value = "5GHz RTS threshold, parameter rtsThreshold5g should be within the range of 1-2347")
  @NotNull


  public Integer getRtsThreshold5g() {
    return rtsThreshold5g;
  }

  public void setRtsThreshold5g(Integer rtsThreshold5g) {
    this.rtsThreshold5g = rtsThreshold5g;
  }

  public BeaconControlVo fragmentationThreshold5g(Integer fragmentationThreshold5g) {
    this.fragmentationThreshold5g = fragmentationThreshold5g;
    return this;
  }

  /**
   * 5GHz fragmentation threshold, parameter fragmentationThreshold5g should be within the range of 256-2346
   * @return fragmentationThreshold5g
  */
  @ApiModelProperty(value = "5GHz fragmentation threshold, parameter fragmentationThreshold5g should be within the range of 256-2346")


  public Integer getFragmentationThreshold5g() {
    return fragmentationThreshold5g;
  }

  public void setFragmentationThreshold5g(Integer fragmentationThreshold5g) {
    this.fragmentationThreshold5g = fragmentationThreshold5g;
  }

  public BeaconControlVo beaconInterval6g(Integer beaconInterval6g) {
    this.beaconInterval6g = beaconInterval6g;
    return this;
  }

  /**
   * 6GHz beacon interval, parameter beaconInterval6g should be within the range of 40-500)
   * @return beaconInterval6g
  */
  @ApiModelProperty(value = "6GHz beacon interval, parameter beaconInterval6g should be within the range of 40-500)")


  public Integer getBeaconInterval6g() {
    return beaconInterval6g;
  }

  public void setBeaconInterval6g(Integer beaconInterval6g) {
    this.beaconInterval6g = beaconInterval6g;
  }

  public BeaconControlVo beaconIntvMode6g(Integer beaconIntvMode6g) {
    this.beaconIntvMode6g = beaconIntvMode6g;
    return this;
  }

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


  public Integer getBeaconIntvMode6g() {
    return beaconIntvMode6g;
  }

  public void setBeaconIntvMode6g(Integer beaconIntvMode6g) {
    this.beaconIntvMode6g = beaconIntvMode6g;
  }

  public BeaconControlVo dtimPeriod6g(Integer dtimPeriod6g) {
    this.dtimPeriod6g = dtimPeriod6g;
    return this;
  }

  /**
   * 6GHz DTIM period, parameter dtimPeriod6g should be within the range of 1-255
   * @return dtimPeriod6g
  */
  @ApiModelProperty(required = true, value = "6GHz DTIM period, parameter dtimPeriod6g should be within the range of 1-255")
  @NotNull


  public Integer getDtimPeriod6g() {
    return dtimPeriod6g;
  }

  public void setDtimPeriod6g(Integer dtimPeriod6g) {
    this.dtimPeriod6g = dtimPeriod6g;
  }

  public BeaconControlVo rtsThreshold6g(Integer rtsThreshold6g) {
    this.rtsThreshold6g = rtsThreshold6g;
    return this;
  }

  /**
   * 6GHz RTS threshold, parameter rtsThreshold6g should be within the range of 1-2347
   * @return rtsThreshold6g
  */
  @ApiModelProperty(required = true, value = "6GHz RTS threshold, parameter rtsThreshold6g should be within the range of 1-2347")
  @NotNull


  public Integer getRtsThreshold6g() {
    return rtsThreshold6g;
  }

  public void setRtsThreshold6g(Integer rtsThreshold6g) {
    this.rtsThreshold6g = rtsThreshold6g;
  }

  public BeaconControlVo fragmentationThreshold6g(Integer fragmentationThreshold6g) {
    this.fragmentationThreshold6g = fragmentationThreshold6g;
    return this;
  }

  /**
   * 6GHz fragmentation threshold, parameter fragmentationThreshold6g should be within the range of 256-2346
   * @return fragmentationThreshold6g
  */
  @ApiModelProperty(value = "6GHz fragmentation threshold, parameter fragmentationThreshold6g should be within the range of 256-2346")


  public Integer getFragmentationThreshold6g() {
    return fragmentationThreshold6g;
  }

  public void setFragmentationThreshold6g(Integer fragmentationThreshold6g) {
    this.fragmentationThreshold6g = fragmentationThreshold6g;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    BeaconControlVo beaconControlVo = (BeaconControlVo) o;
    return Objects.equals(this.beaconInterval2g, beaconControlVo.beaconInterval2g) &&
        Objects.equals(this.beaconIntvMode2g, beaconControlVo.beaconIntvMode2g) &&
        Objects.equals(this.dtimPeriod2g, beaconControlVo.dtimPeriod2g) &&
        Objects.equals(this.rtsThreshold2g, beaconControlVo.rtsThreshold2g) &&
        Objects.equals(this.fragmentationThreshold2g, beaconControlVo.fragmentationThreshold2g) &&
        Objects.equals(this.beaconInterval5g, beaconControlVo.beaconInterval5g) &&
        Objects.equals(this.beaconIntvMode5g, beaconControlVo.beaconIntvMode5g) &&
        Objects.equals(this.dtimPeriod5g, beaconControlVo.dtimPeriod5g) &&
        Objects.equals(this.rtsThreshold5g, beaconControlVo.rtsThreshold5g) &&
        Objects.equals(this.fragmentationThreshold5g, beaconControlVo.fragmentationThreshold5g) &&
        Objects.equals(this.beaconInterval6g, beaconControlVo.beaconInterval6g) &&
        Objects.equals(this.beaconIntvMode6g, beaconControlVo.beaconIntvMode6g) &&
        Objects.equals(this.dtimPeriod6g, beaconControlVo.dtimPeriod6g) &&
        Objects.equals(this.rtsThreshold6g, beaconControlVo.rtsThreshold6g) &&
        Objects.equals(this.fragmentationThreshold6g, beaconControlVo.fragmentationThreshold6g);
  }

  @Override
  public int hashCode() {
    return Objects.hash(beaconInterval2g, beaconIntvMode2g, dtimPeriod2g, rtsThreshold2g, fragmentationThreshold2g, beaconInterval5g, beaconIntvMode5g, dtimPeriod5g, rtsThreshold5g, fragmentationThreshold5g, beaconInterval6g, beaconIntvMode6g, dtimPeriod6g, rtsThreshold6g, fragmentationThreshold6g);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class BeaconControlVo {\n");
    
    sb.append("    beaconInterval2g: ").append(toIndentedString(beaconInterval2g)).append("\n");
    sb.append("    beaconIntvMode2g: ").append(toIndentedString(beaconIntvMode2g)).append("\n");
    sb.append("    dtimPeriod2g: ").append(toIndentedString(dtimPeriod2g)).append("\n");
    sb.append("    rtsThreshold2g: ").append(toIndentedString(rtsThreshold2g)).append("\n");
    sb.append("    fragmentationThreshold2g: ").append(toIndentedString(fragmentationThreshold2g)).append("\n");
    sb.append("    beaconInterval5g: ").append(toIndentedString(beaconInterval5g)).append("\n");
    sb.append("    beaconIntvMode5g: ").append(toIndentedString(beaconIntvMode5g)).append("\n");
    sb.append("    dtimPeriod5g: ").append(toIndentedString(dtimPeriod5g)).append("\n");
    sb.append("    rtsThreshold5g: ").append(toIndentedString(rtsThreshold5g)).append("\n");
    sb.append("    fragmentationThreshold5g: ").append(toIndentedString(fragmentationThreshold5g)).append("\n");
    sb.append("    beaconInterval6g: ").append(toIndentedString(beaconInterval6g)).append("\n");
    sb.append("    beaconIntvMode6g: ").append(toIndentedString(beaconIntvMode6g)).append("\n");
    sb.append("    dtimPeriod6g: ").append(toIndentedString(dtimPeriod6g)).append("\n");
    sb.append("    rtsThreshold6g: ").append(toIndentedString(rtsThreshold6g)).append("\n");
    sb.append("    fragmentationThreshold6g: ").append(toIndentedString(fragmentationThreshold6g)).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    ");
  }
}

