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

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

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

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

public class SsidOverrideConfigOpenApiVo   {
  @JsonProperty("ssidId")
  private Integer ssidId;

  @JsonProperty("ssidName")
  private String ssidName;

  @JsonProperty("ssidPassword")
  private String ssidPassword;

  @JsonProperty("band")
  @Valid
  private List<Integer> band = null;

  @JsonProperty("security")
  private Integer security;

  @JsonProperty("vlanEnable")
  private Boolean vlanEnable;

  @JsonProperty("vlanId")
  private Integer vlanId;

  @JsonProperty("ssidEnable")
  private Boolean ssidEnable;

  public SsidOverrideConfigOpenApiVo ssidId(Integer ssidId) {
    this.ssidId = ssidId;
    return this;
  }

  /**
   * SSID Entry ID
   * @return ssidId
  */
  @ApiModelProperty(required = true, value = "SSID Entry ID")
  @NotNull


  public Integer getSsidId() {
    return ssidId;
  }

  public void setSsidId(Integer ssidId) {
    this.ssidId = ssidId;
  }

  public SsidOverrideConfigOpenApiVo ssidName(String ssidName) {
    this.ssidName = ssidName;
    return this;
  }

  /**
   * SSID name
   * @return ssidName
  */
  @ApiModelProperty(required = true, value = "SSID name")
  @NotNull


  public String getSsidName() {
    return ssidName;
  }

  public void setSsidName(String ssidName) {
    this.ssidName = ssidName;
  }

  public SsidOverrideConfigOpenApiVo ssidPassword(String ssidPassword) {
    this.ssidPassword = ssidPassword;
    return this;
  }

  /**
   * SSID password
   * @return ssidPassword
  */
  @ApiModelProperty(value = "SSID password")


  public String getSsidPassword() {
    return ssidPassword;
  }

  public void setSsidPassword(String ssidPassword) {
    this.ssidPassword = ssidPassword;
  }

  public SsidOverrideConfigOpenApiVo band(List<Integer> band) {
    this.band = band;
    return this;
  }

  public SsidOverrideConfigOpenApiVo addBandItem(Integer bandItem) {
    if (this.band == null) {
      this.band = new ArrayList<>();
    }
    this.band.add(bandItem);
    return this;
  }

  /**
   * SSID band should be a value as follows: 0: 2.4GHz; 1: 5GHz; 2: 6GHz
   * @return band
  */
  @ApiModelProperty(value = "SSID band should be a value as follows: 0: 2.4GHz; 1: 5GHz; 2: 6GHz")


  public List<Integer> getBand() {
    return band;
  }

  public void setBand(List<Integer> band) {
    this.band = band;
  }

  public SsidOverrideConfigOpenApiVo security(Integer security) {
    this.security = security;
    return this;
  }

  /**
   * SSID security mode should be a value as follows: 0: None; 2: WPA-Enterprise; 3: WPA-Personal;4: PPSK without RADIUS; 5: PPSK with RADIUS.
   * @return security
  */
  @ApiModelProperty(value = "SSID security mode should be a value as follows: 0: None; 2: WPA-Enterprise; 3: WPA-Personal;4: PPSK without RADIUS; 5: PPSK with RADIUS.")


  public Integer getSecurity() {
    return security;
  }

  public void setSecurity(Integer security) {
    this.security = security;
  }

  public SsidOverrideConfigOpenApiVo vlanEnable(Boolean vlanEnable) {
    this.vlanEnable = vlanEnable;
    return this;
  }

  /**
   * Enable/disable VLAN
   * @return vlanEnable
  */
  @ApiModelProperty(value = "Enable/disable VLAN")


  public Boolean getVlanEnable() {
    return vlanEnable;
  }

  public void setVlanEnable(Boolean vlanEnable) {
    this.vlanEnable = vlanEnable;
  }

  public SsidOverrideConfigOpenApiVo vlanId(Integer vlanId) {
    this.vlanId = vlanId;
    return this;
  }

  /**
   * VLAN ID
   * @return vlanId
  */
  @ApiModelProperty(value = "VLAN ID")


  public Integer getVlanId() {
    return vlanId;
  }

  public void setVlanId(Integer vlanId) {
    this.vlanId = vlanId;
  }

  public SsidOverrideConfigOpenApiVo ssidEnable(Boolean ssidEnable) {
    this.ssidEnable = ssidEnable;
    return this;
  }

  /**
   * Enable/disable SSID
   * @return ssidEnable
  */
  @ApiModelProperty(value = "Enable/disable SSID")


  public Boolean getSsidEnable() {
    return ssidEnable;
  }

  public void setSsidEnable(Boolean ssidEnable) {
    this.ssidEnable = ssidEnable;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    SsidOverrideConfigOpenApiVo ssidOverrideConfigOpenApiVo = (SsidOverrideConfigOpenApiVo) o;
    return Objects.equals(this.ssidId, ssidOverrideConfigOpenApiVo.ssidId) &&
        Objects.equals(this.ssidName, ssidOverrideConfigOpenApiVo.ssidName) &&
        Objects.equals(this.ssidPassword, ssidOverrideConfigOpenApiVo.ssidPassword) &&
        Objects.equals(this.band, ssidOverrideConfigOpenApiVo.band) &&
        Objects.equals(this.security, ssidOverrideConfigOpenApiVo.security) &&
        Objects.equals(this.vlanEnable, ssidOverrideConfigOpenApiVo.vlanEnable) &&
        Objects.equals(this.vlanId, ssidOverrideConfigOpenApiVo.vlanId) &&
        Objects.equals(this.ssidEnable, ssidOverrideConfigOpenApiVo.ssidEnable);
  }

  @Override
  public int hashCode() {
    return Objects.hash(ssidId, ssidName, ssidPassword, band, security, vlanEnable, vlanId, ssidEnable);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class SsidOverrideConfigOpenApiVo {\n");
    
    sb.append("    ssidId: ").append(toIndentedString(ssidId)).append("\n");
    sb.append("    ssidName: ").append(toIndentedString(ssidName)).append("\n");
    sb.append("    ssidPassword: ").append(toIndentedString(ssidPassword)).append("\n");
    sb.append("    band: ").append(toIndentedString(band)).append("\n");
    sb.append("    security: ").append(toIndentedString(security)).append("\n");
    sb.append("    vlanEnable: ").append(toIndentedString(vlanEnable)).append("\n");
    sb.append("    vlanId: ").append(toIndentedString(vlanId)).append("\n");
    sb.append("    ssidEnable: ").append(toIndentedString(ssidEnable)).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    ");
  }
}

