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

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

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

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

public class MspUiInterfaceOpenApiVo   {
  @JsonProperty("language")
  private Integer language;

  @JsonProperty("use24hour")
  private Boolean use24hour;

  @JsonProperty("fixedMenu")
  private Boolean fixedMenu;

  @JsonProperty("theme")
  private Integer theme;

  @JsonProperty("showPDevices")
  private Boolean showPDevices;

  @JsonProperty("refreshBtnEnable")
  private Boolean refreshBtnEnable;

  @JsonProperty("refreshRate")
  private Integer refreshRate;

  @JsonProperty("websocketEnable")
  private Boolean websocketEnable;

  @JsonProperty("controllerNotification")
  private Boolean controllerNotification;

  @JsonProperty("privateLabelingEnable")
  private Boolean privateLabelingEnable;

  @JsonProperty("privateLabelingUrl")
  private String privateLabelingUrl;

  @JsonProperty("privateLabelingFileId")
  private String privateLabelingFileId;

  @JsonProperty("privateLabelingFileName")
  private String privateLabelingFileName;

  public MspUiInterfaceOpenApiVo language(Integer language) {
    this.language = language;
    return this;
  }

  /**
   * It should be a value as follows: 1: English; 4: German; 7: French; 8: Spanish; 10: Italian; 12: Portuguese; 13: Russian; 15: Turkish; 17: Japanese; 18: Traditional Chinese; 21: Korean
   * @return language
  */
  @ApiModelProperty(value = "It should be a value as follows: 1: English; 4: German; 7: French; 8: Spanish; 10: Italian; 12: Portuguese; 13: Russian; 15: Turkish; 17: Japanese; 18: Traditional Chinese; 21: Korean")


  public Integer getLanguage() {
    return language;
  }

  public void setLanguage(Integer language) {
    this.language = language;
  }

  public MspUiInterfaceOpenApiVo use24hour(Boolean use24hour) {
    this.use24hour = use24hour;
    return this;
  }

  /**
   * Get use24hour
   * @return use24hour
  */
  @ApiModelProperty(required = true, value = "")
  @NotNull


  public Boolean getUse24hour() {
    return use24hour;
  }

  public void setUse24hour(Boolean use24hour) {
    this.use24hour = use24hour;
  }

  public MspUiInterfaceOpenApiVo fixedMenu(Boolean fixedMenu) {
    this.fixedMenu = fixedMenu;
    return this;
  }

  /**
   * Get fixedMenu
   * @return fixedMenu
  */
  @ApiModelProperty(required = true, value = "")
  @NotNull


  public Boolean getFixedMenu() {
    return fixedMenu;
  }

  public void setFixedMenu(Boolean fixedMenu) {
    this.fixedMenu = fixedMenu;
  }

  public MspUiInterfaceOpenApiVo theme(Integer theme) {
    this.theme = theme;
    return this;
  }

  /**
   * It should be a value as follows: 0: default; 1: dark
   * @return theme
  */
  @ApiModelProperty(value = "It should be a value as follows: 0: default; 1: dark")


  public Integer getTheme() {
    return theme;
  }

  public void setTheme(Integer theme) {
    this.theme = theme;
  }

  public MspUiInterfaceOpenApiVo showPDevices(Boolean showPDevices) {
    this.showPDevices = showPDevices;
    return this;
  }

  /**
   * Show pending devices
   * @return showPDevices
  */
  @ApiModelProperty(value = "Show pending devices")


  public Boolean getShowPDevices() {
    return showPDevices;
  }

  public void setShowPDevices(Boolean showPDevices) {
    this.showPDevices = showPDevices;
  }

  public MspUiInterfaceOpenApiVo refreshBtnEnable(Boolean refreshBtnEnable) {
    this.refreshBtnEnable = refreshBtnEnable;
    return this;
  }

  /**
   * Enable refresh button
   * @return refreshBtnEnable
  */
  @ApiModelProperty(required = true, value = "Enable refresh button")
  @NotNull


  public Boolean getRefreshBtnEnable() {
    return refreshBtnEnable;
  }

  public void setRefreshBtnEnable(Boolean refreshBtnEnable) {
    this.refreshBtnEnable = refreshBtnEnable;
  }

  public MspUiInterfaceOpenApiVo refreshRate(Integer refreshRate) {
    this.refreshRate = refreshRate;
    return this;
  }

  /**
   * It should be a value as follows: 0: 15 seconds; 1: 1 minute; 2: 2 minutes; 3: 5 minutes; 4: never refresh
   * @return refreshRate
  */
  @ApiModelProperty(required = true, value = "It should be a value as follows: 0: 15 seconds; 1: 1 minute; 2: 2 minutes; 3: 5 minutes; 4: never refresh")
  @NotNull


  public Integer getRefreshRate() {
    return refreshRate;
  }

  public void setRefreshRate(Integer refreshRate) {
    this.refreshRate = refreshRate;
  }

  public MspUiInterfaceOpenApiVo websocketEnable(Boolean websocketEnable) {
    this.websocketEnable = websocketEnable;
    return this;
  }

  /**
   * Enable websocket connection
   * @return websocketEnable
  */
  @ApiModelProperty(required = true, value = "Enable websocket connection")
  @NotNull


  public Boolean getWebsocketEnable() {
    return websocketEnable;
  }

  public void setWebsocketEnable(Boolean websocketEnable) {
    this.websocketEnable = websocketEnable;
  }

  public MspUiInterfaceOpenApiVo controllerNotification(Boolean controllerNotification) {
    this.controllerNotification = controllerNotification;
    return this;
  }

  /**
   * Enable controller upgrade notification
   * @return controllerNotification
  */
  @ApiModelProperty(value = "Enable controller upgrade notification")


  public Boolean getControllerNotification() {
    return controllerNotification;
  }

  public void setControllerNotification(Boolean controllerNotification) {
    this.controllerNotification = controllerNotification;
  }

  public MspUiInterfaceOpenApiVo privateLabelingEnable(Boolean privateLabelingEnable) {
    this.privateLabelingEnable = privateLabelingEnable;
    return this;
  }

  /**
   * Enable private label
   * @return privateLabelingEnable
  */
  @ApiModelProperty(value = "Enable private label")


  public Boolean getPrivateLabelingEnable() {
    return privateLabelingEnable;
  }

  public void setPrivateLabelingEnable(Boolean privateLabelingEnable) {
    this.privateLabelingEnable = privateLabelingEnable;
  }

  public MspUiInterfaceOpenApiVo privateLabelingUrl(String privateLabelingUrl) {
    this.privateLabelingUrl = privateLabelingUrl;
    return this;
  }

  /**
   * The url of private label
   * @return privateLabelingUrl
  */
  @ApiModelProperty(value = "The url of private label")


  public String getPrivateLabelingUrl() {
    return privateLabelingUrl;
  }

  public void setPrivateLabelingUrl(String privateLabelingUrl) {
    this.privateLabelingUrl = privateLabelingUrl;
  }

  public MspUiInterfaceOpenApiVo privateLabelingFileId(String privateLabelingFileId) {
    this.privateLabelingFileId = privateLabelingFileId;
    return this;
  }

  /**
   * The file id of private label picture
   * @return privateLabelingFileId
  */
  @ApiModelProperty(value = "The file id of private label picture")


  public String getPrivateLabelingFileId() {
    return privateLabelingFileId;
  }

  public void setPrivateLabelingFileId(String privateLabelingFileId) {
    this.privateLabelingFileId = privateLabelingFileId;
  }

  public MspUiInterfaceOpenApiVo privateLabelingFileName(String privateLabelingFileName) {
    this.privateLabelingFileName = privateLabelingFileName;
    return this;
  }

  /**
   * The file name of private label picture
   * @return privateLabelingFileName
  */
  @ApiModelProperty(value = "The file name of private label picture")


  public String getPrivateLabelingFileName() {
    return privateLabelingFileName;
  }

  public void setPrivateLabelingFileName(String privateLabelingFileName) {
    this.privateLabelingFileName = privateLabelingFileName;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    MspUiInterfaceOpenApiVo mspUiInterfaceOpenApiVo = (MspUiInterfaceOpenApiVo) o;
    return Objects.equals(this.language, mspUiInterfaceOpenApiVo.language) &&
        Objects.equals(this.use24hour, mspUiInterfaceOpenApiVo.use24hour) &&
        Objects.equals(this.fixedMenu, mspUiInterfaceOpenApiVo.fixedMenu) &&
        Objects.equals(this.theme, mspUiInterfaceOpenApiVo.theme) &&
        Objects.equals(this.showPDevices, mspUiInterfaceOpenApiVo.showPDevices) &&
        Objects.equals(this.refreshBtnEnable, mspUiInterfaceOpenApiVo.refreshBtnEnable) &&
        Objects.equals(this.refreshRate, mspUiInterfaceOpenApiVo.refreshRate) &&
        Objects.equals(this.websocketEnable, mspUiInterfaceOpenApiVo.websocketEnable) &&
        Objects.equals(this.controllerNotification, mspUiInterfaceOpenApiVo.controllerNotification) &&
        Objects.equals(this.privateLabelingEnable, mspUiInterfaceOpenApiVo.privateLabelingEnable) &&
        Objects.equals(this.privateLabelingUrl, mspUiInterfaceOpenApiVo.privateLabelingUrl) &&
        Objects.equals(this.privateLabelingFileId, mspUiInterfaceOpenApiVo.privateLabelingFileId) &&
        Objects.equals(this.privateLabelingFileName, mspUiInterfaceOpenApiVo.privateLabelingFileName);
  }

  @Override
  public int hashCode() {
    return Objects.hash(language, use24hour, fixedMenu, theme, showPDevices, refreshBtnEnable, refreshRate, websocketEnable, controllerNotification, privateLabelingEnable, privateLabelingUrl, privateLabelingFileId, privateLabelingFileName);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class MspUiInterfaceOpenApiVo {\n");
    
    sb.append("    language: ").append(toIndentedString(language)).append("\n");
    sb.append("    use24hour: ").append(toIndentedString(use24hour)).append("\n");
    sb.append("    fixedMenu: ").append(toIndentedString(fixedMenu)).append("\n");
    sb.append("    theme: ").append(toIndentedString(theme)).append("\n");
    sb.append("    showPDevices: ").append(toIndentedString(showPDevices)).append("\n");
    sb.append("    refreshBtnEnable: ").append(toIndentedString(refreshBtnEnable)).append("\n");
    sb.append("    refreshRate: ").append(toIndentedString(refreshRate)).append("\n");
    sb.append("    websocketEnable: ").append(toIndentedString(websocketEnable)).append("\n");
    sb.append("    controllerNotification: ").append(toIndentedString(controllerNotification)).append("\n");
    sb.append("    privateLabelingEnable: ").append(toIndentedString(privateLabelingEnable)).append("\n");
    sb.append("    privateLabelingUrl: ").append(toIndentedString(privateLabelingUrl)).append("\n");
    sb.append("    privateLabelingFileId: ").append(toIndentedString(privateLabelingFileId)).append("\n");
    sb.append("    privateLabelingFileName: ").append(toIndentedString(privateLabelingFileName)).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    ");
  }
}

