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

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

import java.util.Objects;

/**
 * Radio channel 6g
 */
@ApiModel(description = "Radio channel 6g")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:26:25.576+08:00[Asia/Shanghai]")

public class ApRadioChannel   {
  @JsonProperty("actualChannel")
  private String actualChannel;

  @JsonProperty("maxTxRate")
  private Integer maxTxRate;

  @JsonProperty("txPower")
  private Integer txPower;

  @JsonProperty("region")
  private Integer region;

  @JsonProperty("bandWidth")
  private String bandWidth;

  @JsonProperty("rdMode")
  private String rdMode;

  @JsonProperty("txUtil")
  private Integer txUtil;

  @JsonProperty("rxUtil")
  private Integer rxUtil;

  @JsonProperty("interUtil")
  private Integer interUtil;

  @JsonProperty("busyUtil")
  private Integer busyUtil;

  @JsonProperty("aiRoamingOffset")
  private Integer aiRoamingOffset;

  public ApRadioChannel actualChannel(String actualChannel) {
    this.actualChannel = actualChannel;
    return this;
  }

  /**
   * Actual channel of the device
   * @return actualChannel
  */
  @ApiModelProperty(value = "Actual channel of the device")


  public String getActualChannel() {
    return actualChannel;
  }

  public void setActualChannel(String actualChannel) {
    this.actualChannel = actualChannel;
  }

  public ApRadioChannel maxTxRate(Integer maxTxRate) {
    this.maxTxRate = maxTxRate;
    return this;
  }

  /**
   * TxRate of the device
   * @return maxTxRate
  */
  @ApiModelProperty(value = "TxRate of the device")


  public Integer getMaxTxRate() {
    return maxTxRate;
  }

  public void setMaxTxRate(Integer maxTxRate) {
    this.maxTxRate = maxTxRate;
  }

  public ApRadioChannel txPower(Integer txPower) {
    this.txPower = txPower;
    return this;
  }

  /**
   * TxPower of the device
   * @return txPower
  */
  @ApiModelProperty(value = "TxPower of the device")


  public Integer getTxPower() {
    return txPower;
  }

  public void setTxPower(Integer txPower) {
    this.txPower = txPower;
  }

  public ApRadioChannel region(Integer region) {
    this.region = region;
    return this;
  }

  /**
   * Region code of the device
   * @return region
  */
  @ApiModelProperty(value = "Region code of the device")


  public Integer getRegion() {
    return region;
  }

  public void setRegion(Integer region) {
    this.region = region;
  }

  public ApRadioChannel bandWidth(String bandWidth) {
    this.bandWidth = bandWidth;
    return this;
  }

  /**
   * BandWidth of the device
   * @return bandWidth
  */
  @ApiModelProperty(value = "BandWidth of the device")


  public String getBandWidth() {
    return bandWidth;
  }

  public void setBandWidth(String bandWidth) {
    this.bandWidth = bandWidth;
  }

  public ApRadioChannel rdMode(String rdMode) {
    this.rdMode = rdMode;
    return this;
  }

  /**
   * RdMode of the device
   * @return rdMode
  */
  @ApiModelProperty(value = "RdMode of the device")


  public String getRdMode() {
    return rdMode;
  }

  public void setRdMode(String rdMode) {
    this.rdMode = rdMode;
  }

  public ApRadioChannel txUtil(Integer txUtil) {
    this.txUtil = txUtil;
    return this;
  }

  /**
   * TxUtil of the device, value range [0, 100].
   * @return txUtil
  */
  @ApiModelProperty(value = "TxUtil of the device, value range [0, 100].")


  public Integer getTxUtil() {
    return txUtil;
  }

  public void setTxUtil(Integer txUtil) {
    this.txUtil = txUtil;
  }

  public ApRadioChannel rxUtil(Integer rxUtil) {
    this.rxUtil = rxUtil;
    return this;
  }

  /**
   * RxUtil of the device, value range [0, 100].
   * @return rxUtil
  */
  @ApiModelProperty(value = "RxUtil of the device, value range [0, 100].")


  public Integer getRxUtil() {
    return rxUtil;
  }

  public void setRxUtil(Integer rxUtil) {
    this.rxUtil = rxUtil;
  }

  public ApRadioChannel interUtil(Integer interUtil) {
    this.interUtil = interUtil;
    return this;
  }

  /**
   * InterUtil of the device, value range [0, 100].
   * @return interUtil
  */
  @ApiModelProperty(value = "InterUtil of the device, value range [0, 100].")


  public Integer getInterUtil() {
    return interUtil;
  }

  public void setInterUtil(Integer interUtil) {
    this.interUtil = interUtil;
  }

  public ApRadioChannel busyUtil(Integer busyUtil) {
    this.busyUtil = busyUtil;
    return this;
  }

  /**
   * BusyUtil of the device(Support by MTK device), value range [0, 100].
   * @return busyUtil
  */
  @ApiModelProperty(value = "BusyUtil of the device(Support by MTK device), value range [0, 100].")


  public Integer getBusyUtil() {
    return busyUtil;
  }

  public void setBusyUtil(Integer busyUtil) {
    this.busyUtil = busyUtil;
  }

  public ApRadioChannel aiRoamingOffset(Integer aiRoamingOffset) {
    this.aiRoamingOffset = aiRoamingOffset;
    return this;
  }

  /**
   * AI Roaming offset of the device
   * @return aiRoamingOffset
  */
  @ApiModelProperty(value = "AI Roaming offset of the device")


  public Integer getAiRoamingOffset() {
    return aiRoamingOffset;
  }

  public void setAiRoamingOffset(Integer aiRoamingOffset) {
    this.aiRoamingOffset = aiRoamingOffset;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ApRadioChannel apRadioChannel = (ApRadioChannel) o;
    return Objects.equals(this.actualChannel, apRadioChannel.actualChannel) &&
        Objects.equals(this.maxTxRate, apRadioChannel.maxTxRate) &&
        Objects.equals(this.txPower, apRadioChannel.txPower) &&
        Objects.equals(this.region, apRadioChannel.region) &&
        Objects.equals(this.bandWidth, apRadioChannel.bandWidth) &&
        Objects.equals(this.rdMode, apRadioChannel.rdMode) &&
        Objects.equals(this.txUtil, apRadioChannel.txUtil) &&
        Objects.equals(this.rxUtil, apRadioChannel.rxUtil) &&
        Objects.equals(this.interUtil, apRadioChannel.interUtil) &&
        Objects.equals(this.busyUtil, apRadioChannel.busyUtil) &&
        Objects.equals(this.aiRoamingOffset, apRadioChannel.aiRoamingOffset);
  }

  @Override
  public int hashCode() {
    return Objects.hash(actualChannel, maxTxRate, txPower, region, bandWidth, rdMode, txUtil, rxUtil, interUtil, busyUtil, aiRoamingOffset);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ApRadioChannel {\n");
    
    sb.append("    actualChannel: ").append(toIndentedString(actualChannel)).append("\n");
    sb.append("    maxTxRate: ").append(toIndentedString(maxTxRate)).append("\n");
    sb.append("    txPower: ").append(toIndentedString(txPower)).append("\n");
    sb.append("    region: ").append(toIndentedString(region)).append("\n");
    sb.append("    bandWidth: ").append(toIndentedString(bandWidth)).append("\n");
    sb.append("    rdMode: ").append(toIndentedString(rdMode)).append("\n");
    sb.append("    txUtil: ").append(toIndentedString(txUtil)).append("\n");
    sb.append("    rxUtil: ").append(toIndentedString(rxUtil)).append("\n");
    sb.append("    interUtil: ").append(toIndentedString(interUtil)).append("\n");
    sb.append("    busyUtil: ").append(toIndentedString(busyUtil)).append("\n");
    sb.append("    aiRoamingOffset: ").append(toIndentedString(aiRoamingOffset)).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    ");
  }
}

