package com.wdkl.ncs.android.middleware.model;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;

import java.io.Serializable;

import io.swagger.annotations.ApiModelProperty;

@JsonNaming(value = PropertyNamingStrategy.SnakeCaseStrategy.class)
public class ServerInfo implements Serializable {
    @ApiModelProperty(notes = "局域网TCP服务器IP")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String tcpLocalIp;

    @ApiModelProperty(notes = "互联网TCP服务器IP")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String tcpPublicIp;

    @ApiModelProperty(notes = "TCP端口")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer tcpPort;

    @ApiModelProperty(notes = "TCP体征数据库端口")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer tcpVsPort;

    @ApiModelProperty(notes = "TCP心跳间隔，单位：秒")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer tcpIdleSeconds;

    @ApiModelProperty(notes = "局域网HTTP服务器IP")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String httpLocalIp;

    @ApiModelProperty(notes = "互联网HTTP服务器IP")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String httpPublicIp;

    @ApiModelProperty(notes = "HTTP端口")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer httpPort;

    @ApiModelProperty(notes = "RTC Local IP")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String rtcLocalIp;

    @ApiModelProperty(notes = "RTC Public IP")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String rtcPublicIp;

    @ApiModelProperty(notes = "RTC 端口")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer rtcPort;

    @ApiModelProperty(notes = "stun地址", example = "stun:xxx.xxx.xxx.xxx:3478")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String stunServer;

    @ApiModelProperty(notes = "turn地址", example = "turn:xxx.xxx.xxx.xxx:3478|username|password")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String[] turnServer;

    private Long serverTime;

    public String getTcpLocalIp() {
        return tcpLocalIp;
    }

    public void setTcpLocalIp(String tcpLocalIp) {
        this.tcpLocalIp = tcpLocalIp;
    }

    public String getTcpPublicIp() {
        return tcpPublicIp;
    }

    public void setTcpPublicIp(String tcpPublicIp) {
        this.tcpPublicIp = tcpPublicIp;
    }

    public Integer getTcpPort() {
        return tcpPort;
    }

    public void setTcpPort(Integer tcpPort) {
        this.tcpPort = tcpPort;
    }

    public Integer getTcpVsPort() {
        return tcpVsPort;
    }

    public void setTcpVsPort(Integer tcpVsPort) {
        this.tcpVsPort = tcpVsPort;
    }

    public Integer getTcpIdleSeconds() {
        return tcpIdleSeconds;
    }

    public void setTcpIdleSeconds(Integer tcpIdleSeconds) {
        this.tcpIdleSeconds = tcpIdleSeconds;
    }

    public String getHttpLocalIp() {
        return httpLocalIp;
    }

    public void setHttpLocalIp(String httpLocalIp) {
        this.httpLocalIp = httpLocalIp;
    }

    public String getHttpPublicIp() {
        return httpPublicIp;
    }

    public void setHttpPublicIp(String httpPublicIp) {
        this.httpPublicIp = httpPublicIp;
    }

    public Integer getHttpPort() {
        return httpPort;
    }

    public void setHttpPort(Integer httpPort) {
        this.httpPort = httpPort;
    }

    public String getRtcLocalIp() {
        return rtcLocalIp;
    }

    public void setRtcLocalIp(String rtcLocalIp) {
        this.rtcLocalIp = rtcLocalIp;
    }

    public String getRtcPublicIp() {
        return rtcPublicIp;
    }

    public void setRtcPublicIp(String rtcPublicIp) {
        this.rtcPublicIp = rtcPublicIp;
    }

    public Integer getRtcPort() {
        return rtcPort;
    }

    public void setRtcPort(Integer rtcPort) {
        this.rtcPort = rtcPort;
    }

    public String getStunServer() {
        return stunServer;
    }

    public void setStunServer(String stunServer) {
        this.stunServer = stunServer;
    }

    public String[] getTurnServer() {
        return turnServer;
    }

    public void setTurnServer(String[] turnServer) {
        this.turnServer = turnServer;
    }

    public Long getServerTime() {
        return serverTime;
    }

    public void setServerTime(Long serverTime) {
        this.serverTime = serverTime;
    }
}
