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

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

import java.util.Objects;

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

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

  @JsonProperty("name")
  private String name;

  @JsonProperty("mac")
  private String mac;

  @JsonProperty("wireless")
  private Boolean wireless;

  @JsonProperty("ssid")
  private String ssid;

  @JsonProperty("networkName")
  private String networkName;

  @JsonProperty("authType")
  private Integer authType;

  @JsonProperty("fbVer")
  private Integer fbVer;

  @JsonProperty("download")
  private Long download;

  @JsonProperty("upload")
  private Long upload;

  @JsonProperty("duration")
  private Long duration;

  @JsonProperty("start")
  private Long start;

  @JsonProperty("end")
  private Long end;

  @JsonProperty("valid")
  private Boolean valid;

  @JsonProperty("localUserName")
  private String localUserName;

  @JsonProperty("voucherCode")
  private String voucherCode;

  @JsonProperty("formName")
  private String formName;

  @JsonProperty("radiusUsername")
  private String radiusUsername;

  @JsonProperty("adminName")
  private String adminName;

  @JsonProperty("ip")
  private String ip;

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

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


  public String getId() {
    return id;
  }

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

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

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


  public String getName() {
    return name;
  }

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

  public AuthClientOpenApiVo mac(String mac) {
    this.mac = mac;
    return this;
  }

  /**
   * Client MAC
   * @return mac
  */
  @ApiModelProperty(value = "Client MAC")


  public String getMac() {
    return mac;
  }

  public void setMac(String mac) {
    this.mac = mac;
  }

  public AuthClientOpenApiVo wireless(Boolean wireless) {
    this.wireless = wireless;
    return this;
  }

  /**
   * Is it wireless type
   * @return wireless
  */
  @ApiModelProperty(value = "Is it wireless type")


  public Boolean getWireless() {
    return wireless;
  }

  public void setWireless(Boolean wireless) {
    this.wireless = wireless;
  }

  public AuthClientOpenApiVo ssid(String ssid) {
    this.ssid = ssid;
    return this;
  }

  /**
   * SSID name
   * @return ssid
  */
  @ApiModelProperty(value = "SSID name")


  public String getSsid() {
    return ssid;
  }

  public void setSsid(String ssid) {
    this.ssid = ssid;
  }

  public AuthClientOpenApiVo networkName(String networkName) {
    this.networkName = networkName;
    return this;
  }

  /**
   * Network name
   * @return networkName
  */
  @ApiModelProperty(value = "Network name")


  public String getNetworkName() {
    return networkName;
  }

  public void setNetworkName(String networkName) {
    this.networkName = networkName;
  }

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

  /**
   * Auth type should be a value as follows: 0: No Auth; 1: Simple Password; 2: Exrternal Radius; 3: Voucher; 4: External Portal Server; 5: Local User; 6: SMS; 7: Facebook; 8: Hotspot Radius; 9: Mac Auth (with fail over); 10: Admin auth; 12: Form auth
   * @return authType
  */
  @ApiModelProperty(value = "Auth type should be a value as follows: 0: No Auth; 1: Simple Password; 2: Exrternal Radius; 3: Voucher; 4: External Portal Server; 5: Local User; 6: SMS; 7: Facebook; 8: Hotspot Radius; 9: Mac Auth (with fail over); 10: Admin auth; 12: Form auth")


  public Integer getAuthType() {
    return authType;
  }

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

  public AuthClientOpenApiVo fbVer(Integer fbVer) {
    this.fbVer = fbVer;
    return this;
  }

  /**
   * Version of Facebook Wi-Fi (authType = Facebook or Facebook V2)
   * @return fbVer
  */
  @ApiModelProperty(value = "Version of Facebook Wi-Fi (authType = Facebook or Facebook V2)")


  public Integer getFbVer() {
    return fbVer;
  }

  public void setFbVer(Integer fbVer) {
    this.fbVer = fbVer;
  }

  public AuthClientOpenApiVo download(Long download) {
    this.download = download;
    return this;
  }

  /**
   * Total Download (Byte)
   * @return download
  */
  @ApiModelProperty(value = "Total Download (Byte)")


  public Long getDownload() {
    return download;
  }

  public void setDownload(Long download) {
    this.download = download;
  }

  public AuthClientOpenApiVo upload(Long upload) {
    this.upload = upload;
    return this;
  }

  /**
   * Total Upload (Byte)
   * @return upload
  */
  @ApiModelProperty(value = "Total Upload (Byte)")


  public Long getUpload() {
    return upload;
  }

  public void setUpload(Long upload) {
    this.upload = upload;
  }

  public AuthClientOpenApiVo duration(Long duration) {
    this.duration = duration;
    return this;
  }

  /**
   * Total Duration (s)
   * @return duration
  */
  @ApiModelProperty(value = "Total Duration (s)")


  public Long getDuration() {
    return duration;
  }

  public void setDuration(Long duration) {
    this.duration = duration;
  }

  public AuthClientOpenApiVo start(Long start) {
    this.start = start;
    return this;
  }

  /**
   * Start timestamp
   * @return start
  */
  @ApiModelProperty(value = "Start timestamp")


  public Long getStart() {
    return start;
  }

  public void setStart(Long start) {
    this.start = start;
  }

  public AuthClientOpenApiVo end(Long end) {
    this.end = end;
    return this;
  }

  /**
   * End timestamp
   * @return end
  */
  @ApiModelProperty(value = "End timestamp")


  public Long getEnd() {
    return end;
  }

  public void setEnd(Long end) {
    this.end = end;
  }

  public AuthClientOpenApiVo valid(Boolean valid) {
    this.valid = valid;
    return this;
  }

  /**
   * Is the client valid
   * @return valid
  */
  @ApiModelProperty(value = "Is the client valid")


  public Boolean getValid() {
    return valid;
  }

  public void setValid(Boolean valid) {
    this.valid = valid;
  }

  public AuthClientOpenApiVo localUserName(String localUserName) {
    this.localUserName = localUserName;
    return this;
  }

  /**
   * LocalUser Name (authType = Local User)
   * @return localUserName
  */
  @ApiModelProperty(value = "LocalUser Name (authType = Local User)")


  public String getLocalUserName() {
    return localUserName;
  }

  public void setLocalUserName(String localUserName) {
    this.localUserName = localUserName;
  }

  public AuthClientOpenApiVo voucherCode(String voucherCode) {
    this.voucherCode = voucherCode;
    return this;
  }

  /**
   * Voucher code (authType = Voucher)
   * @return voucherCode
  */
  @ApiModelProperty(value = "Voucher code (authType = Voucher)")


  public String getVoucherCode() {
    return voucherCode;
  }

  public void setVoucherCode(String voucherCode) {
    this.voucherCode = voucherCode;
  }

  public AuthClientOpenApiVo formName(String formName) {
    this.formName = formName;
    return this;
  }

  /**
   * Form name (authType = form auth)
   * @return formName
  */
  @ApiModelProperty(value = "Form name (authType = form auth)")


  public String getFormName() {
    return formName;
  }

  public void setFormName(String formName) {
    this.formName = formName;
  }

  public AuthClientOpenApiVo radiusUsername(String radiusUsername) {
    this.radiusUsername = radiusUsername;
    return this;
  }

  /**
   * Radius userName (authType = External RADIUS or Hotspot RADIUS)
   * @return radiusUsername
  */
  @ApiModelProperty(value = "Radius userName (authType = External RADIUS or Hotspot RADIUS)")


  public String getRadiusUsername() {
    return radiusUsername;
  }

  public void setRadiusUsername(String radiusUsername) {
    this.radiusUsername = radiusUsername;
  }

  public AuthClientOpenApiVo adminName(String adminName) {
    this.adminName = adminName;
    return this;
  }

  /**
   * Admin name (authType = ADMIN)
   * @return adminName
  */
  @ApiModelProperty(value = "Admin name (authType = ADMIN)")


  public String getAdminName() {
    return adminName;
  }

  public void setAdminName(String adminName) {
    this.adminName = adminName;
  }

  public AuthClientOpenApiVo ip(String ip) {
    this.ip = ip;
    return this;
  }

  /**
   * IP address at the time of authentication
   * @return ip
  */
  @ApiModelProperty(value = "IP address at the time of authentication")


  public String getIp() {
    return ip;
  }

  public void setIp(String ip) {
    this.ip = ip;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    AuthClientOpenApiVo authClientOpenApiVo = (AuthClientOpenApiVo) o;
    return Objects.equals(this.id, authClientOpenApiVo.id) &&
        Objects.equals(this.name, authClientOpenApiVo.name) &&
        Objects.equals(this.mac, authClientOpenApiVo.mac) &&
        Objects.equals(this.wireless, authClientOpenApiVo.wireless) &&
        Objects.equals(this.ssid, authClientOpenApiVo.ssid) &&
        Objects.equals(this.networkName, authClientOpenApiVo.networkName) &&
        Objects.equals(this.authType, authClientOpenApiVo.authType) &&
        Objects.equals(this.fbVer, authClientOpenApiVo.fbVer) &&
        Objects.equals(this.download, authClientOpenApiVo.download) &&
        Objects.equals(this.upload, authClientOpenApiVo.upload) &&
        Objects.equals(this.duration, authClientOpenApiVo.duration) &&
        Objects.equals(this.start, authClientOpenApiVo.start) &&
        Objects.equals(this.end, authClientOpenApiVo.end) &&
        Objects.equals(this.valid, authClientOpenApiVo.valid) &&
        Objects.equals(this.localUserName, authClientOpenApiVo.localUserName) &&
        Objects.equals(this.voucherCode, authClientOpenApiVo.voucherCode) &&
        Objects.equals(this.formName, authClientOpenApiVo.formName) &&
        Objects.equals(this.radiusUsername, authClientOpenApiVo.radiusUsername) &&
        Objects.equals(this.adminName, authClientOpenApiVo.adminName) &&
        Objects.equals(this.ip, authClientOpenApiVo.ip);
  }

  @Override
  public int hashCode() {
    return Objects.hash(id, name, mac, wireless, ssid, networkName, authType, fbVer, download, upload, duration, start, end, valid, localUserName, voucherCode, formName, radiusUsername, adminName, ip);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class AuthClientOpenApiVo {\n");
    
    sb.append("    id: ").append(toIndentedString(id)).append("\n");
    sb.append("    name: ").append(toIndentedString(name)).append("\n");
    sb.append("    mac: ").append(toIndentedString(mac)).append("\n");
    sb.append("    wireless: ").append(toIndentedString(wireless)).append("\n");
    sb.append("    ssid: ").append(toIndentedString(ssid)).append("\n");
    sb.append("    networkName: ").append(toIndentedString(networkName)).append("\n");
    sb.append("    authType: ").append(toIndentedString(authType)).append("\n");
    sb.append("    fbVer: ").append(toIndentedString(fbVer)).append("\n");
    sb.append("    download: ").append(toIndentedString(download)).append("\n");
    sb.append("    upload: ").append(toIndentedString(upload)).append("\n");
    sb.append("    duration: ").append(toIndentedString(duration)).append("\n");
    sb.append("    start: ").append(toIndentedString(start)).append("\n");
    sb.append("    end: ").append(toIndentedString(end)).append("\n");
    sb.append("    valid: ").append(toIndentedString(valid)).append("\n");
    sb.append("    localUserName: ").append(toIndentedString(localUserName)).append("\n");
    sb.append("    voucherCode: ").append(toIndentedString(voucherCode)).append("\n");
    sb.append("    formName: ").append(toIndentedString(formName)).append("\n");
    sb.append("    radiusUsername: ").append(toIndentedString(radiusUsername)).append("\n");
    sb.append("    adminName: ").append(toIndentedString(adminName)).append("\n");
    sb.append("    ip: ").append(toIndentedString(ip)).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    ");
  }
}

