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

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

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

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

public class ApRfScanInfo   {
  @JsonProperty("channel2g")
  @Valid
  private List<RfScanRadio> channel2g = null;

  @JsonProperty("channel5g")
  @Valid
  private List<RfScanRadio> channel5g = null;

  @JsonProperty("channel5g2")
  @Valid
  private List<RfScanRadio> channel5g2 = null;

  @JsonProperty("channel6g")
  @Valid
  private List<RfScanRadio> channel6g = null;

  @JsonProperty("currentChan2g")
  private String currentChan2g;

  @JsonProperty("currentChan5g")
  private String currentChan5g;

  @JsonProperty("currentChan5g2")
  private String currentChan5g2;

  @JsonProperty("currentChan6g")
  private String currentChan6g;

  @JsonProperty("currentChanW2g")
  private Integer currentChanW2g;

  @JsonProperty("currentChanW5g")
  private Integer currentChanW5g;

  @JsonProperty("currentChanW5g2")
  private Integer currentChanW5g2;

  @JsonProperty("currentChanW6g")
  private Integer currentChanW6g;

  @JsonProperty("time")
  private Long time;

  @JsonProperty("status")
  private Integer status;

  public ApRfScanInfo channel2g(List<RfScanRadio> channel2g) {
    this.channel2g = channel2g;
    return this;
  }

  public ApRfScanInfo addChannel2gItem(RfScanRadio channel2gItem) {
    if (this.channel2g == null) {
      this.channel2g = new ArrayList<>();
    }
    this.channel2g.add(channel2gItem);
    return this;
  }

  /**
   * Channel 2g
   * @return channel2g
  */
  @ApiModelProperty(value = "Channel 2g")

  @Valid

  public List<RfScanRadio> getChannel2g() {
    return channel2g;
  }

  public void setChannel2g(List<RfScanRadio> channel2g) {
    this.channel2g = channel2g;
  }

  public ApRfScanInfo channel5g(List<RfScanRadio> channel5g) {
    this.channel5g = channel5g;
    return this;
  }

  public ApRfScanInfo addChannel5gItem(RfScanRadio channel5gItem) {
    if (this.channel5g == null) {
      this.channel5g = new ArrayList<>();
    }
    this.channel5g.add(channel5gItem);
    return this;
  }

  /**
   * Channel 5g
   * @return channel5g
  */
  @ApiModelProperty(value = "Channel 5g")

  @Valid

  public List<RfScanRadio> getChannel5g() {
    return channel5g;
  }

  public void setChannel5g(List<RfScanRadio> channel5g) {
    this.channel5g = channel5g;
  }

  public ApRfScanInfo channel5g2(List<RfScanRadio> channel5g2) {
    this.channel5g2 = channel5g2;
    return this;
  }

  public ApRfScanInfo addChannel5g2Item(RfScanRadio channel5g2Item) {
    if (this.channel5g2 == null) {
      this.channel5g2 = new ArrayList<>();
    }
    this.channel5g2.add(channel5g2Item);
    return this;
  }

  /**
   * Channel 5g2
   * @return channel5g2
  */
  @ApiModelProperty(value = "Channel 5g2")

  @Valid

  public List<RfScanRadio> getChannel5g2() {
    return channel5g2;
  }

  public void setChannel5g2(List<RfScanRadio> channel5g2) {
    this.channel5g2 = channel5g2;
  }

  public ApRfScanInfo channel6g(List<RfScanRadio> channel6g) {
    this.channel6g = channel6g;
    return this;
  }

  public ApRfScanInfo addChannel6gItem(RfScanRadio channel6gItem) {
    if (this.channel6g == null) {
      this.channel6g = new ArrayList<>();
    }
    this.channel6g.add(channel6gItem);
    return this;
  }

  /**
   * Channel 6g
   * @return channel6g
  */
  @ApiModelProperty(value = "Channel 6g")

  @Valid

  public List<RfScanRadio> getChannel6g() {
    return channel6g;
  }

  public void setChannel6g(List<RfScanRadio> channel6g) {
    this.channel6g = channel6g;
  }

  public ApRfScanInfo currentChan2g(String currentChan2g) {
    this.currentChan2g = currentChan2g;
    return this;
  }

  /**
   * The 2G channel of AP, such as 1,6,11,13. It should be within the range of 1–13.
   * @return currentChan2g
  */
  @ApiModelProperty(value = "The 2G channel of AP, such as 1,6,11,13. It should be within the range of 1–13.")


  public String getCurrentChan2g() {
    return currentChan2g;
  }

  public void setCurrentChan2g(String currentChan2g) {
    this.currentChan2g = currentChan2g;
  }

  public ApRfScanInfo currentChan5g(String currentChan5g) {
    this.currentChan5g = currentChan5g;
    return this;
  }

  /**
   * The 5G channel of AP, such as 36,161. It should be within the range of 36–161.
   * @return currentChan5g
  */
  @ApiModelProperty(value = "The 5G channel of AP, such as 36,161. It should be within the range of 36–161.")


  public String getCurrentChan5g() {
    return currentChan5g;
  }

  public void setCurrentChan5g(String currentChan5g) {
    this.currentChan5g = currentChan5g;
  }

  public ApRfScanInfo currentChan5g2(String currentChan5g2) {
    this.currentChan5g2 = currentChan5g2;
    return this;
  }

  /**
   * The 5G2 channel of AP,such as 36,161. It should be within the range of 36–161.
   * @return currentChan5g2
  */
  @ApiModelProperty(value = "The 5G2 channel of AP,such as 36,161. It should be within the range of 36–161.")


  public String getCurrentChan5g2() {
    return currentChan5g2;
  }

  public void setCurrentChan5g2(String currentChan5g2) {
    this.currentChan5g2 = currentChan5g2;
  }

  public ApRfScanInfo currentChan6g(String currentChan6g) {
    this.currentChan6g = currentChan6g;
    return this;
  }

  /**
   * The 6G channel of AP,such as 36,161. It should be within the range of 36–161.
   * @return currentChan6g
  */
  @ApiModelProperty(value = "The 6G channel of AP,such as 36,161. It should be within the range of 36–161.")


  public String getCurrentChan6g() {
    return currentChan6g;
  }

  public void setCurrentChan6g(String currentChan6g) {
    this.currentChan6g = currentChan6g;
  }

  public ApRfScanInfo currentChanW2g(Integer currentChanW2g) {
    this.currentChanW2g = currentChanW2g;
    return this;
  }

  /**
   * The 2g channel bandwidth of the AP. It should be a value as follows: 2:20MHz, 3: 40MHz
   * @return currentChanW2g
  */
  @ApiModelProperty(value = "The 2g channel bandwidth of the AP. It should be a value as follows: 2:20MHz, 3: 40MHz")


  public Integer getCurrentChanW2g() {
    return currentChanW2g;
  }

  public void setCurrentChanW2g(Integer currentChanW2g) {
    this.currentChanW2g = currentChanW2g;
  }

  public ApRfScanInfo currentChanW5g(Integer currentChanW5g) {
    this.currentChanW5g = currentChanW5g;
    return this;
  }

  /**
   * The 5g channel bandwidth of the AP. It should be a value as follows: 2:20MHz, 3: 40MHz, 5: 80MHz2 menas 20MHz, 3 means 40MHz, 5 means 80MHz
   * @return currentChanW5g
  */
  @ApiModelProperty(value = "The 5g channel bandwidth of the AP. It should be a value as follows: 2:20MHz, 3: 40MHz, 5: 80MHz2 menas 20MHz, 3 means 40MHz, 5 means 80MHz")


  public Integer getCurrentChanW5g() {
    return currentChanW5g;
  }

  public void setCurrentChanW5g(Integer currentChanW5g) {
    this.currentChanW5g = currentChanW5g;
  }

  public ApRfScanInfo currentChanW5g2(Integer currentChanW5g2) {
    this.currentChanW5g2 = currentChanW5g2;
    return this;
  }

  /**
   * The 5g2 channel bandwidth of the AP. It should be a value as follows: 2:20MHz, 3: 40MHz, 5: 80MHz
   * @return currentChanW5g2
  */
  @ApiModelProperty(value = "The 5g2 channel bandwidth of the AP. It should be a value as follows: 2:20MHz, 3: 40MHz, 5: 80MHz")


  public Integer getCurrentChanW5g2() {
    return currentChanW5g2;
  }

  public void setCurrentChanW5g2(Integer currentChanW5g2) {
    this.currentChanW5g2 = currentChanW5g2;
  }

  public ApRfScanInfo currentChanW6g(Integer currentChanW6g) {
    this.currentChanW6g = currentChanW6g;
    return this;
  }

  /**
   * The 6g channel bandwidth of the AP. It should be a value as follows: 2:20MHz, 3: 40MHz, 5: 80MHz
   * @return currentChanW6g
  */
  @ApiModelProperty(value = "The 6g channel bandwidth of the AP. It should be a value as follows: 2:20MHz, 3: 40MHz, 5: 80MHz")


  public Integer getCurrentChanW6g() {
    return currentChanW6g;
  }

  public void setCurrentChanW6g(Integer currentChanW6g) {
    this.currentChanW6g = currentChanW6g;
  }

  public ApRfScanInfo time(Long time) {
    this.time = time;
    return this;
  }

  /**
   * The scan time(13 bits), Unit: ms
   * @return time
  */
  @ApiModelProperty(value = "The scan time(13 bits), Unit: ms")


  public Long getTime() {
    return time;
  }

  public void setTime(Long time) {
    this.time = time;
  }

  public ApRfScanInfo status(Integer status) {
    this.status = status;
    return this;
  }

  /**
   * Status should be a value as follows: 0: the scan result is displayed; 1: no scan result; 2: Scanning
   * @return status
  */
  @ApiModelProperty(value = "Status should be a value as follows: 0: the scan result is displayed; 1: no scan result; 2: Scanning")


  public Integer getStatus() {
    return status;
  }

  public void setStatus(Integer status) {
    this.status = status;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ApRfScanInfo apRfScanInfo = (ApRfScanInfo) o;
    return Objects.equals(this.channel2g, apRfScanInfo.channel2g) &&
        Objects.equals(this.channel5g, apRfScanInfo.channel5g) &&
        Objects.equals(this.channel5g2, apRfScanInfo.channel5g2) &&
        Objects.equals(this.channel6g, apRfScanInfo.channel6g) &&
        Objects.equals(this.currentChan2g, apRfScanInfo.currentChan2g) &&
        Objects.equals(this.currentChan5g, apRfScanInfo.currentChan5g) &&
        Objects.equals(this.currentChan5g2, apRfScanInfo.currentChan5g2) &&
        Objects.equals(this.currentChan6g, apRfScanInfo.currentChan6g) &&
        Objects.equals(this.currentChanW2g, apRfScanInfo.currentChanW2g) &&
        Objects.equals(this.currentChanW5g, apRfScanInfo.currentChanW5g) &&
        Objects.equals(this.currentChanW5g2, apRfScanInfo.currentChanW5g2) &&
        Objects.equals(this.currentChanW6g, apRfScanInfo.currentChanW6g) &&
        Objects.equals(this.time, apRfScanInfo.time) &&
        Objects.equals(this.status, apRfScanInfo.status);
  }

  @Override
  public int hashCode() {
    return Objects.hash(channel2g, channel5g, channel5g2, channel6g, currentChan2g, currentChan5g, currentChan5g2, currentChan6g, currentChanW2g, currentChanW5g, currentChanW5g2, currentChanW6g, time, status);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ApRfScanInfo {\n");
    
    sb.append("    channel2g: ").append(toIndentedString(channel2g)).append("\n");
    sb.append("    channel5g: ").append(toIndentedString(channel5g)).append("\n");
    sb.append("    channel5g2: ").append(toIndentedString(channel5g2)).append("\n");
    sb.append("    channel6g: ").append(toIndentedString(channel6g)).append("\n");
    sb.append("    currentChan2g: ").append(toIndentedString(currentChan2g)).append("\n");
    sb.append("    currentChan5g: ").append(toIndentedString(currentChan5g)).append("\n");
    sb.append("    currentChan5g2: ").append(toIndentedString(currentChan5g2)).append("\n");
    sb.append("    currentChan6g: ").append(toIndentedString(currentChan6g)).append("\n");
    sb.append("    currentChanW2g: ").append(toIndentedString(currentChanW2g)).append("\n");
    sb.append("    currentChanW5g: ").append(toIndentedString(currentChanW5g)).append("\n");
    sb.append("    currentChanW5g2: ").append(toIndentedString(currentChanW5g2)).append("\n");
    sb.append("    currentChanW6g: ").append(toIndentedString(currentChanW6g)).append("\n");
    sb.append("    time: ").append(toIndentedString(time)).append("\n");
    sb.append("    status: ").append(toIndentedString(status)).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    ");
  }
}

