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

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

import java.util.Objects;

/**
 * (Wireless) Client multifrequency info list.
 */
@ApiModel(description = "(Wireless) Client multifrequency info list.")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:05.926+08:00[Asia/Shanghai]")

public class ClientMultifrequencyInfo   {
  @JsonProperty("radioId")
  private Integer radioId;

  @JsonProperty("wifiMode")
  private Integer wifiMode;

  @JsonProperty("channel")
  private Integer channel;

  @JsonProperty("rxRate")
  private Long rxRate;

  @JsonProperty("txRate")
  private Long txRate;

  @JsonProperty("powerSave")
  private Boolean powerSave;

  @JsonProperty("rssi")
  private Integer rssi;

  @JsonProperty("snr")
  private Integer snr;

  @JsonProperty("signalLevel")
  private Integer signalLevel;

  @JsonProperty("signalRank")
  private Integer signalRank;

  @JsonProperty("upPacket")
  private Long upPacket;

  @JsonProperty("downPacket")
  private Long downPacket;

  @JsonProperty("trafficDown")
  private Long trafficDown;

  @JsonProperty("trafficUp")
  private Long trafficUp;

  @JsonProperty("activity")
  private Long activity;

  @JsonProperty("signalLevelAndRank")
  private Integer signalLevelAndRank;

  public ClientMultifrequencyInfo radioId(Integer radioId) {
    this.radioId = radioId;
    return this;
  }

  /**
   * Radio ID should be a value as follows: 0: 2.4GHz; 1: 5GHz-1; 2:5GHz-2; 3: 6GHz.
   * @return radioId
  */
  @ApiModelProperty(value = "Radio ID should be a value as follows: 0: 2.4GHz; 1: 5GHz-1; 2:5GHz-2; 3: 6GHz.")


  public Integer getRadioId() {
    return radioId;
  }

  public void setRadioId(Integer radioId) {
    this.radioId = radioId;
  }

  public ClientMultifrequencyInfo wifiMode(Integer wifiMode) {
    this.wifiMode = wifiMode;
    return this;
  }

  /**
   * Wi-Fi mode should be a value as follows: 0: 11a; 1: 11b; 2: 11g; 3: 11na; 4: 11ng; 5: 11ac; 6: 11axa; 7: 11axg.
   * @return wifiMode
  */
  @ApiModelProperty(value = "Wi-Fi mode should be a value as follows: 0: 11a; 1: 11b; 2: 11g; 3: 11na; 4: 11ng; 5: 11ac; 6: 11axa; 7: 11axg.")


  public Integer getWifiMode() {
    return wifiMode;
  }

  public void setWifiMode(Integer wifiMode) {
    this.wifiMode = wifiMode;
  }

  public ClientMultifrequencyInfo channel(Integer channel) {
    this.channel = channel;
    return this;
  }

  /**
   * (Wireless)  Actual channel.
   * @return channel
  */
  @ApiModelProperty(value = "(Wireless)  Actual channel.")


  public Integer getChannel() {
    return channel;
  }

  public void setChannel(Integer channel) {
    this.channel = channel;
  }

  public ClientMultifrequencyInfo rxRate(Long rxRate) {
    this.rxRate = rxRate;
    return this;
  }

  /**
   * (Wireless) Uplink negotiation rate (Kbit/s).
   * @return rxRate
  */
  @ApiModelProperty(value = "(Wireless) Uplink negotiation rate (Kbit/s).")


  public Long getRxRate() {
    return rxRate;
  }

  public void setRxRate(Long rxRate) {
    this.rxRate = rxRate;
  }

  public ClientMultifrequencyInfo txRate(Long txRate) {
    this.txRate = txRate;
    return this;
  }

  /**
   * (Wireless) Downlink negotiation rate (Kbit/s).
   * @return txRate
  */
  @ApiModelProperty(value = "(Wireless) Downlink negotiation rate (Kbit/s).")


  public Long getTxRate() {
    return txRate;
  }

  public void setTxRate(Long txRate) {
    this.txRate = txRate;
  }

  public ClientMultifrequencyInfo powerSave(Boolean powerSave) {
    this.powerSave = powerSave;
    return this;
  }

  /**
   * (Wireless)  true: Power save mode enabled.
   * @return powerSave
  */
  @ApiModelProperty(value = "(Wireless)  true: Power save mode enabled.")


  public Boolean getPowerSave() {
    return powerSave;
  }

  public void setPowerSave(Boolean powerSave) {
    this.powerSave = powerSave;
  }

  public ClientMultifrequencyInfo rssi(Integer rssi) {
    this.rssi = rssi;
    return this;
  }

  /**
   * (Wireless) Signal strength, unit: dBm.
   * @return rssi
  */
  @ApiModelProperty(value = "(Wireless) Signal strength, unit: dBm.")


  public Integer getRssi() {
    return rssi;
  }

  public void setRssi(Integer rssi) {
    this.rssi = rssi;
  }

  public ClientMultifrequencyInfo snr(Integer snr) {
    this.snr = snr;
    return this;
  }

  /**
   * (Wireless) Signal Noise Ratio.
   * @return snr
  */
  @ApiModelProperty(value = "(Wireless) Signal Noise Ratio.")


  public Integer getSnr() {
    return snr;
  }

  public void setSnr(Integer snr) {
    this.snr = snr;
  }

  public ClientMultifrequencyInfo signalLevel(Integer signalLevel) {
    this.signalLevel = signalLevel;
    return this;
  }

  /**
   * (Wireless) Signal strength percentage should be within the range of 0-100.
   * @return signalLevel
  */
  @ApiModelProperty(value = "(Wireless) Signal strength percentage should be within the range of 0-100.")


  public Integer getSignalLevel() {
    return signalLevel;
  }

  public void setSignalLevel(Integer signalLevel) {
    this.signalLevel = signalLevel;
  }

  public ClientMultifrequencyInfo signalRank(Integer signalRank) {
    this.signalRank = signalRank;
    return this;
  }

  /**
   * (Wireless) Signal strength level should be within the range of 0-5.
   * @return signalRank
  */
  @ApiModelProperty(value = "(Wireless) Signal strength level should be within the range of 0-5.")


  public Integer getSignalRank() {
    return signalRank;
  }

  public void setSignalRank(Integer signalRank) {
    this.signalRank = signalRank;
  }

  public ClientMultifrequencyInfo upPacket(Long upPacket) {
    this.upPacket = upPacket;
    return this;
  }

  /**
   * Number of upstream packets.
   * @return upPacket
  */
  @ApiModelProperty(value = "Number of upstream packets.")


  public Long getUpPacket() {
    return upPacket;
  }

  public void setUpPacket(Long upPacket) {
    this.upPacket = upPacket;
  }

  public ClientMultifrequencyInfo downPacket(Long downPacket) {
    this.downPacket = downPacket;
    return this;
  }

  /**
   * Number of downstream packets.
   * @return downPacket
  */
  @ApiModelProperty(value = "Number of downstream packets.")


  public Long getDownPacket() {
    return downPacket;
  }

  public void setDownPacket(Long downPacket) {
    this.downPacket = downPacket;
  }

  public ClientMultifrequencyInfo trafficDown(Long trafficDown) {
    this.trafficDown = trafficDown;
    return this;
  }

  /**
   * Downstream traffic (Byte).
   * @return trafficDown
  */
  @ApiModelProperty(value = "Downstream traffic (Byte).")


  public Long getTrafficDown() {
    return trafficDown;
  }

  public void setTrafficDown(Long trafficDown) {
    this.trafficDown = trafficDown;
  }

  public ClientMultifrequencyInfo trafficUp(Long trafficUp) {
    this.trafficUp = trafficUp;
    return this;
  }

  /**
   * Upstream traffic (Byte).
   * @return trafficUp
  */
  @ApiModelProperty(value = "Upstream traffic (Byte).")


  public Long getTrafficUp() {
    return trafficUp;
  }

  public void setTrafficUp(Long trafficUp) {
    this.trafficUp = trafficUp;
  }

  public ClientMultifrequencyInfo activity(Long activity) {
    this.activity = activity;
    return this;
  }

  /**
   * Real-time downlink rate (Byte/s).
   * @return activity
  */
  @ApiModelProperty(value = "Real-time downlink rate (Byte/s).")


  public Long getActivity() {
    return activity;
  }

  public void setActivity(Long activity) {
    this.activity = activity;
  }

  public ClientMultifrequencyInfo signalLevelAndRank(Integer signalLevelAndRank) {
    this.signalLevelAndRank = signalLevelAndRank;
    return this;
  }

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


  public Integer getSignalLevelAndRank() {
    return signalLevelAndRank;
  }

  public void setSignalLevelAndRank(Integer signalLevelAndRank) {
    this.signalLevelAndRank = signalLevelAndRank;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ClientMultifrequencyInfo clientMultifrequencyInfo = (ClientMultifrequencyInfo) o;
    return Objects.equals(this.radioId, clientMultifrequencyInfo.radioId) &&
        Objects.equals(this.wifiMode, clientMultifrequencyInfo.wifiMode) &&
        Objects.equals(this.channel, clientMultifrequencyInfo.channel) &&
        Objects.equals(this.rxRate, clientMultifrequencyInfo.rxRate) &&
        Objects.equals(this.txRate, clientMultifrequencyInfo.txRate) &&
        Objects.equals(this.powerSave, clientMultifrequencyInfo.powerSave) &&
        Objects.equals(this.rssi, clientMultifrequencyInfo.rssi) &&
        Objects.equals(this.snr, clientMultifrequencyInfo.snr) &&
        Objects.equals(this.signalLevel, clientMultifrequencyInfo.signalLevel) &&
        Objects.equals(this.signalRank, clientMultifrequencyInfo.signalRank) &&
        Objects.equals(this.upPacket, clientMultifrequencyInfo.upPacket) &&
        Objects.equals(this.downPacket, clientMultifrequencyInfo.downPacket) &&
        Objects.equals(this.trafficDown, clientMultifrequencyInfo.trafficDown) &&
        Objects.equals(this.trafficUp, clientMultifrequencyInfo.trafficUp) &&
        Objects.equals(this.activity, clientMultifrequencyInfo.activity) &&
        Objects.equals(this.signalLevelAndRank, clientMultifrequencyInfo.signalLevelAndRank);
  }

  @Override
  public int hashCode() {
    return Objects.hash(radioId, wifiMode, channel, rxRate, txRate, powerSave, rssi, snr, signalLevel, signalRank, upPacket, downPacket, trafficDown, trafficUp, activity, signalLevelAndRank);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ClientMultifrequencyInfo {\n");
    
    sb.append("    radioId: ").append(toIndentedString(radioId)).append("\n");
    sb.append("    wifiMode: ").append(toIndentedString(wifiMode)).append("\n");
    sb.append("    channel: ").append(toIndentedString(channel)).append("\n");
    sb.append("    rxRate: ").append(toIndentedString(rxRate)).append("\n");
    sb.append("    txRate: ").append(toIndentedString(txRate)).append("\n");
    sb.append("    powerSave: ").append(toIndentedString(powerSave)).append("\n");
    sb.append("    rssi: ").append(toIndentedString(rssi)).append("\n");
    sb.append("    snr: ").append(toIndentedString(snr)).append("\n");
    sb.append("    signalLevel: ").append(toIndentedString(signalLevel)).append("\n");
    sb.append("    signalRank: ").append(toIndentedString(signalRank)).append("\n");
    sb.append("    upPacket: ").append(toIndentedString(upPacket)).append("\n");
    sb.append("    downPacket: ").append(toIndentedString(downPacket)).append("\n");
    sb.append("    trafficDown: ").append(toIndentedString(trafficDown)).append("\n");
    sb.append("    trafficUp: ").append(toIndentedString(trafficUp)).append("\n");
    sb.append("    activity: ").append(toIndentedString(activity)).append("\n");
    sb.append("    signalLevelAndRank: ").append(toIndentedString(signalLevelAndRank)).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    ");
  }
}

