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

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

import javax.validation.constraints.NotNull;
import java.util.Objects;

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

public class TelephoneNumberAdvancedSettingOsgOpenApiVo   {
  @JsonProperty("locale")
  private String locale;

  @JsonProperty("noAnswerTime")
  private Integer noAnswerTime;

  @JsonProperty("t38Support")
  private Boolean t38Support;

  @JsonProperty("interfaceType")
  private Integer interfaceType;

  @JsonProperty("interfaceId")
  private String interfaceId;

  @JsonProperty("virtualWanId")
  private String virtualWanId;

  public TelephoneNumberAdvancedSettingOsgOpenApiVo locale(String locale) {
    this.locale = locale;
    return this;
  }

  /**
   * The country code of telephone number.
   * @return locale
  */
  @ApiModelProperty(value = "The country code of telephone number.")


  public String getLocale() {
    return locale;
  }

  public void setLocale(String locale) {
    this.locale = locale;
  }

  public TelephoneNumberAdvancedSettingOsgOpenApiVo noAnswerTime(Integer noAnswerTime) {
    this.noAnswerTime = noAnswerTime;
    return this;
  }

  /**
   * The no answer time of telephone number.
   * @return noAnswerTime
  */
  @ApiModelProperty(value = "The no answer time of telephone number.")


  public Integer getNoAnswerTime() {
    return noAnswerTime;
  }

  public void setNoAnswerTime(Integer noAnswerTime) {
    this.noAnswerTime = noAnswerTime;
  }

  public TelephoneNumberAdvancedSettingOsgOpenApiVo t38Support(Boolean t38Support) {
    this.t38Support = t38Support;
    return this;
  }

  /**
   * Whether to enable t38 Support.
   * @return t38Support
  */
  @ApiModelProperty(value = "Whether to enable t38 Support.")


  public Boolean getT38Support() {
    return t38Support;
  }

  public void setT38Support(Boolean t38Support) {
    this.t38Support = t38Support;
  }

  public TelephoneNumberAdvancedSettingOsgOpenApiVo interfaceType(Integer interfaceType) {
    this.interfaceType = interfaceType;
    return this;
  }

  /**
   * InterfaceType should be a value as follows: 0: WAN; 1: LAN; 2: Virtual WAN.
   * @return interfaceType
  */
  @ApiModelProperty(required = true, value = "InterfaceType should be a value as follows: 0: WAN; 1: LAN; 2: Virtual WAN.")
  @NotNull


  public Integer getInterfaceType() {
    return interfaceType;
  }

  public void setInterfaceType(Integer interfaceType) {
    this.interfaceType = interfaceType;
  }

  public TelephoneNumberAdvancedSettingOsgOpenApiVo interfaceId(String interfaceId) {
    this.interfaceId = interfaceId;
    return this;
  }

  /**
   * Interface ID, for example: if interfaceType is LAN network, interfaceId should be LAN network ID. LAN Network can be created using 'Create LAN network' interface, and LAN Network ID can be obtained from 'Get LAN network list' interface. When parameter [interfaceType] is 0 or 1, parameter [interfaceId] should not be empty.
   * @return interfaceId
  */
  @ApiModelProperty(value = "Interface ID, for example: if interfaceType is LAN network, interfaceId should be LAN network ID. LAN Network can be created using 'Create LAN network' interface, and LAN Network ID can be obtained from 'Get LAN network list' interface. When parameter [interfaceType] is 0 or 1, parameter [interfaceId] should not be empty.")


  public String getInterfaceId() {
    return interfaceId;
  }

  public void setInterfaceId(String interfaceId) {
    this.interfaceId = interfaceId;
  }

  public TelephoneNumberAdvancedSettingOsgOpenApiVo virtualWanId(String virtualWanId) {
    this.virtualWanId = virtualWanId;
    return this;
  }

  /**
   * Virtual WAN ID, can be obtained from 'Query virtual WAN list' interface. When parameter [interfaceType] is 2, parameter [virtualWanId] should not be empty.
   * @return virtualWanId
  */
  @ApiModelProperty(value = "Virtual WAN ID, can be obtained from 'Query virtual WAN list' interface. When parameter [interfaceType] is 2, parameter [virtualWanId] should not be empty.")


  public String getVirtualWanId() {
    return virtualWanId;
  }

  public void setVirtualWanId(String virtualWanId) {
    this.virtualWanId = virtualWanId;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    TelephoneNumberAdvancedSettingOsgOpenApiVo telephoneNumberAdvancedSettingOsgOpenApiVo = (TelephoneNumberAdvancedSettingOsgOpenApiVo) o;
    return Objects.equals(this.locale, telephoneNumberAdvancedSettingOsgOpenApiVo.locale) &&
        Objects.equals(this.noAnswerTime, telephoneNumberAdvancedSettingOsgOpenApiVo.noAnswerTime) &&
        Objects.equals(this.t38Support, telephoneNumberAdvancedSettingOsgOpenApiVo.t38Support) &&
        Objects.equals(this.interfaceType, telephoneNumberAdvancedSettingOsgOpenApiVo.interfaceType) &&
        Objects.equals(this.interfaceId, telephoneNumberAdvancedSettingOsgOpenApiVo.interfaceId) &&
        Objects.equals(this.virtualWanId, telephoneNumberAdvancedSettingOsgOpenApiVo.virtualWanId);
  }

  @Override
  public int hashCode() {
    return Objects.hash(locale, noAnswerTime, t38Support, interfaceType, interfaceId, virtualWanId);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class TelephoneNumberAdvancedSettingOsgOpenApiVo {\n");
    
    sb.append("    locale: ").append(toIndentedString(locale)).append("\n");
    sb.append("    noAnswerTime: ").append(toIndentedString(noAnswerTime)).append("\n");
    sb.append("    t38Support: ").append(toIndentedString(t38Support)).append("\n");
    sb.append("    interfaceType: ").append(toIndentedString(interfaceType)).append("\n");
    sb.append("    interfaceId: ").append(toIndentedString(interfaceId)).append("\n");
    sb.append("    virtualWanId: ").append(toIndentedString(virtualWanId)).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    ");
  }
}

