package com.cmvr.device.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.cmvr.common.annotation.Excel;
import com.cmvr.common.core.domain.BaseEntity;

import java.util.Date;

/**
 * 设备终端配置对象 de_device_terminal_config
 * 
 * @author cmvr-iot
 * @date 2025-05-08
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("设备终端配置")
public class DeDeviceTerminalConfig extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    @ApiModelProperty("id")
    @TableId(value = "id" , type = IdType.ASSIGN_UUID)
    private String id;

    /** 备注 */
    @Excel(name = "备注")
    @ApiModelProperty("备注")
    private String remake;

    /** 终端名称 */
    @Excel(name = "终端名称")
    @ApiModelProperty("终端名称")
    private String name;

    /** 主机 */
    @Excel(name = "主机")
    @ApiModelProperty("主机")
    private String host;

    /** 端口号 */
    @Excel(name = "端口号")
    @ApiModelProperty("端口号")
    private Long port;

    /** 状态 */
    @Excel(name = "状态")
    @ApiModelProperty("状态")
    private String status;

    /** 说明 */
    @Excel(name = "说明")
    @ApiModelProperty("说明")
    private String description;

    /** QUIC终端主动注册时使用的稳定节点ID，人工绑定后不可与其他终端重复。 */
    @Excel(name = "QUIC节点ID")
    @ApiModelProperty("QUIC节点ID")
    private String quicNodeId;

    /** Gateway从已认证QUIC连接中观察到的源IP。 */
    @ApiModelProperty("QUIC连接源IP")
    private String quicObservedIp;

    /** 当前QUIC注册会话ID。 */
    @ApiModelProperty("QUIC会话ID")
    private String quicSessionId;

    /** 终端本次操作系统启动ID。 */
    @ApiModelProperty("QUIC终端启动ID")
    private String quicBootId;

    /** cmvr-es上报的软件版本。 */
    @ApiModelProperty("终端软件版本")
    private String quicSoftwareVersion;

    /** QUIC在线状态：0离线，1在线；与原有status启停字段相互独立。 */
    @ApiModelProperty("QUIC在线状态：0离线，1在线")
    private String quicOnlineStatus;

    /** 最近一次收到有效QUIC心跳或注册事件的时间。 */
    @ApiModelProperty("最近QUIC心跳时间")
    private Date quicLastHeartbeatTime;

}
