package org.wfc.omada.api.sitesetting.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;

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

public class PortalResOpenApiVo   {
  @JsonProperty("id")
  private String id;

  @JsonProperty("name")
  private String name;

  @JsonProperty("enable")
  private Boolean enable;

  @JsonProperty("ssidList")
  @Valid
  private List<String> ssidList = null;

  @JsonProperty("networkList")
  @Valid
  private List<String> networkList = null;

  @JsonProperty("authType")
  private Integer authType;

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

  public PortalResOpenApiVo id(String id) {
    this.id = id;
    return this;
  }

  /**
   * Portal ID
   * @return id
  */
  @ApiModelProperty(value = "Portal ID")


  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }

  public PortalResOpenApiVo name(String name) {
    this.name = name;
    return this;
  }

  /**
   * Portal name
   * @return name
  */
  @ApiModelProperty(value = "Portal name")


  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public PortalResOpenApiVo enable(Boolean enable) {
    this.enable = enable;
    return this;
  }

  /**
   * Is the portal enable.
   * @return enable
  */
  @ApiModelProperty(value = "Is the portal enable.")


  public Boolean getEnable() {
    return enable;
  }

  public void setEnable(Boolean enable) {
    this.enable = enable;
  }

  public PortalResOpenApiVo ssidList(List<String> ssidList) {
    this.ssidList = ssidList;
    return this;
  }

  public PortalResOpenApiVo addSsidListItem(String ssidListItem) {
    if (this.ssidList == null) {
      this.ssidList = new ArrayList<>();
    }
    this.ssidList.add(ssidListItem);
    return this;
  }

  /**
   * The ssid list of the portal binding.
   * @return ssidList
  */
  @ApiModelProperty(value = "The ssid list of the portal binding.")


  public List<String> getSsidList() {
    return ssidList;
  }

  public void setSsidList(List<String> ssidList) {
    this.ssidList = ssidList;
  }

  public PortalResOpenApiVo networkList(List<String> networkList) {
    this.networkList = networkList;
    return this;
  }

  public PortalResOpenApiVo addNetworkListItem(String networkListItem) {
    if (this.networkList == null) {
      this.networkList = new ArrayList<>();
    }
    this.networkList.add(networkListItem);
    return this;
  }

  /**
   * The network ID list of the portal binding.
   * @return networkList
  */
  @ApiModelProperty(value = "The network ID list of the portal binding.")


  public List<String> getNetworkList() {
    return networkList;
  }

  public void setNetworkList(List<String> networkList) {
    this.networkList = networkList;
  }

  public PortalResOpenApiVo authType(Integer authType) {
    this.authType = authType;
    return this;
  }

  /**
   * The type of authentication should be a value as follows: 0: NO_AUTH; 1: SIMPLE_PASSWORD; 2: EXTERNAL_RADIUS; 4: EXTERNAL_PORTAL_SERVER; 7: FACEBOOK; 11: HOTSPOT
   * @return authType
  */
  @ApiModelProperty(value = "The type of authentication should be a value as follows: 0: NO_AUTH; 1: SIMPLE_PASSWORD; 2: EXTERNAL_RADIUS; 4: EXTERNAL_PORTAL_SERVER; 7: FACEBOOK; 11: HOTSPOT")


  public Integer getAuthType() {
    return authType;
  }

  public void setAuthType(Integer authType) {
    this.authType = authType;
  }

  public PortalResOpenApiVo hotspotTypes(List<Integer> hotspotTypes) {
    this.hotspotTypes = hotspotTypes;
    return this;
  }

  public PortalResOpenApiVo addHotspotTypesItem(Integer hotspotTypesItem) {
    if (this.hotspotTypes == null) {
      this.hotspotTypes = new ArrayList<>();
    }
    this.hotspotTypes.add(hotspotTypesItem);
    return this;
  }

  /**
   * The enable types of hotspot should be a value as follows: 3: VOUCHER; 5: LOCAL_USER 6: SMS; 8: HOTSPOT_RADIUS; 12: FORM_AUTH
   * @return hotspotTypes
  */
  @ApiModelProperty(value = "The enable types of hotspot should be a value as follows: 3: VOUCHER; 5: LOCAL_USER 6: SMS; 8: HOTSPOT_RADIUS; 12: FORM_AUTH")


  public List<Integer> getHotspotTypes() {
    return hotspotTypes;
  }

  public void setHotspotTypes(List<Integer> hotspotTypes) {
    this.hotspotTypes = hotspotTypes;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    PortalResOpenApiVo portalResOpenApiVo = (PortalResOpenApiVo) o;
    return Objects.equals(this.id, portalResOpenApiVo.id) &&
        Objects.equals(this.name, portalResOpenApiVo.name) &&
        Objects.equals(this.enable, portalResOpenApiVo.enable) &&
        Objects.equals(this.ssidList, portalResOpenApiVo.ssidList) &&
        Objects.equals(this.networkList, portalResOpenApiVo.networkList) &&
        Objects.equals(this.authType, portalResOpenApiVo.authType) &&
        Objects.equals(this.hotspotTypes, portalResOpenApiVo.hotspotTypes);
  }

  @Override
  public int hashCode() {
    return Objects.hash(id, name, enable, ssidList, networkList, authType, hotspotTypes);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class PortalResOpenApiVo {\n");
    
    sb.append("    id: ").append(toIndentedString(id)).append("\n");
    sb.append("    name: ").append(toIndentedString(name)).append("\n");
    sb.append("    enable: ").append(toIndentedString(enable)).append("\n");
    sb.append("    ssidList: ").append(toIndentedString(ssidList)).append("\n");
    sb.append("    networkList: ").append(toIndentedString(networkList)).append("\n");
    sb.append("    authType: ").append(toIndentedString(authType)).append("\n");
    sb.append("    hotspotTypes: ").append(toIndentedString(hotspotTypes)).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    ");
  }
}

