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.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;

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

public class CheckWanLanStatusOpenApiVo   {
  @JsonProperty("portName")
  @Valid
  private Map<String, String> portName = null;

  @JsonProperty("networkComptent")
  private Integer networkComptent;

  @JsonProperty("adoptedGateway")
  private Boolean adoptedGateway;

  @JsonProperty("supportIpv6")
  private Integer supportIpv6;

  @JsonProperty("wanList")
  @Valid
  private List<Object> wanList = null;

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

  @JsonProperty("preOsgModel")
  private Integer preOsgModel;

  public CheckWanLanStatusOpenApiVo portName(Map<String, String> portName) {
    this.portName = portName;
    return this;
  }

  public CheckWanLanStatusOpenApiVo putPortNameItem(String key, String portNameItem) {
    if (this.portName == null) {
      this.portName = new HashMap<>();
    }
    this.portName.put(key, portNameItem);
    return this;
  }

  /**
   * The map of port name, key: \"port ID\", value: \"port name\"
   * @return portName
  */
  @ApiModelProperty(value = "The map of port name, key: \"port ID\", value: \"port name\"")


  public Map<String, String> getPortName() {
    return portName;
  }

  public void setPortName(Map<String, String> portName) {
    this.portName = portName;
  }

  public CheckWanLanStatusOpenApiVo networkComptent(Integer networkComptent) {
    this.networkComptent = networkComptent;
    return this;
  }

  /**
   * NetworkComptent
   * @return networkComptent
  */
  @ApiModelProperty(value = "NetworkComptent")


  public Integer getNetworkComptent() {
    return networkComptent;
  }

  public void setNetworkComptent(Integer networkComptent) {
    this.networkComptent = networkComptent;
  }

  public CheckWanLanStatusOpenApiVo adoptedGateway(Boolean adoptedGateway) {
    this.adoptedGateway = adoptedGateway;
    return this;
  }

  /**
   * Indicates whether the gateway is connected
   * @return adoptedGateway
  */
  @ApiModelProperty(value = "Indicates whether the gateway is connected")


  public Boolean getAdoptedGateway() {
    return adoptedGateway;
  }

  public void setAdoptedGateway(Boolean adoptedGateway) {
    this.adoptedGateway = adoptedGateway;
  }

  public CheckWanLanStatusOpenApiVo supportIpv6(Integer supportIpv6) {
    this.supportIpv6 = supportIpv6;
    return this;
  }

  /**
   * IIndicates whether the gateway support IPv6
   * @return supportIpv6
  */
  @ApiModelProperty(value = "IIndicates whether the gateway support IPv6")


  public Integer getSupportIpv6() {
    return supportIpv6;
  }

  public void setSupportIpv6(Integer supportIpv6) {
    this.supportIpv6 = supportIpv6;
  }

  public CheckWanLanStatusOpenApiVo wanList(List<Object> wanList) {
    this.wanList = wanList;
    return this;
  }

  public CheckWanLanStatusOpenApiVo addWanListItem(Object wanListItem) {
    if (this.wanList == null) {
      this.wanList = new ArrayList<>();
    }
    this.wanList.add(wanListItem);
    return this;
  }

  /**
   * The WAN list of gateway
   * @return wanList
  */
  @ApiModelProperty(value = "The WAN list of gateway")


  public List<Object> getWanList() {
    return wanList;
  }

  public void setWanList(List<Object> wanList) {
    this.wanList = wanList;
  }

  public CheckWanLanStatusOpenApiVo iptvPorts(List<String> iptvPorts) {
    this.iptvPorts = iptvPorts;
    return this;
  }

  public CheckWanLanStatusOpenApiVo addIptvPortsItem(String iptvPortsItem) {
    if (this.iptvPorts == null) {
      this.iptvPorts = new ArrayList<>();
    }
    this.iptvPorts.add(iptvPortsItem);
    return this;
  }

  /**
   * IPTVPorts
   * @return iptvPorts
  */
  @ApiModelProperty(value = "IPTVPorts")


  public List<String> getIptvPorts() {
    return iptvPorts;
  }

  public void setIptvPorts(List<String> iptvPorts) {
    this.iptvPorts = iptvPorts;
  }

  public CheckWanLanStatusOpenApiVo preOsgModel(Integer preOsgModel) {
    this.preOsgModel = preOsgModel;
    return this;
  }

  /**
   * PreOSGModel
   * @return preOsgModel
  */
  @ApiModelProperty(value = "PreOSGModel")


  public Integer getPreOsgModel() {
    return preOsgModel;
  }

  public void setPreOsgModel(Integer preOsgModel) {
    this.preOsgModel = preOsgModel;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    CheckWanLanStatusOpenApiVo checkWanLanStatusOpenApiVo = (CheckWanLanStatusOpenApiVo) o;
    return Objects.equals(this.portName, checkWanLanStatusOpenApiVo.portName) &&
        Objects.equals(this.networkComptent, checkWanLanStatusOpenApiVo.networkComptent) &&
        Objects.equals(this.adoptedGateway, checkWanLanStatusOpenApiVo.adoptedGateway) &&
        Objects.equals(this.supportIpv6, checkWanLanStatusOpenApiVo.supportIpv6) &&
        Objects.equals(this.wanList, checkWanLanStatusOpenApiVo.wanList) &&
        Objects.equals(this.iptvPorts, checkWanLanStatusOpenApiVo.iptvPorts) &&
        Objects.equals(this.preOsgModel, checkWanLanStatusOpenApiVo.preOsgModel);
  }

  @Override
  public int hashCode() {
    return Objects.hash(portName, networkComptent, adoptedGateway, supportIpv6, wanList, iptvPorts, preOsgModel);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class CheckWanLanStatusOpenApiVo {\n");
    
    sb.append("    portName: ").append(toIndentedString(portName)).append("\n");
    sb.append("    networkComptent: ").append(toIndentedString(networkComptent)).append("\n");
    sb.append("    adoptedGateway: ").append(toIndentedString(adoptedGateway)).append("\n");
    sb.append("    supportIpv6: ").append(toIndentedString(supportIpv6)).append("\n");
    sb.append("    wanList: ").append(toIndentedString(wanList)).append("\n");
    sb.append("    iptvPorts: ").append(toIndentedString(iptvPorts)).append("\n");
    sb.append("    preOsgModel: ").append(toIndentedString(preOsgModel)).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    ");
  }
}

