package com.ruoyi.system.api.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;

import java.util.Date;

/**
 * 资源注册对象 rm_resource_registration
 * 
 * @author gyt
 * @date 2025-08-12
 */
@Data
public class RmResourceRegistrationRemote extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 硬件SN */
    @Excel(name = "硬件SN")
    private String hardwareSn;

    /** 资源类型
     * 1 服务器，2 交换机*/
    @Excel(name = "资源类型",readConverterExp = "1=服务器,2=交换机")
    private String resourceType;

    /** 资源名称 */
    @Excel(name = "资源名称")
    private String resourceName;

    /** IP地址 */
    @Excel(name = "IP地址")
    private String ipAddress;

    /** 端口1.162(SNMP),2.其他 */
    @Excel(name = "端口")
    private String resourcePort;

    /**其他端口名称 */
    private String otherPortName;

    /** agent版本 */
    @Excel(name = "agent版本")
    private String agentVersion;


    /** 协议 1.TCP,2.UDP */
    @Excel(name = "协议",readConverterExp = "1=TCP,2=UDP")
    private String protocol;

    /** SNMP探测 0=否,1=是 */
    @Excel(name = "",readConverterExp = "0=否,1=是")
    private String snmpDetect;
    /** 版本(1.SNMPv2,2.SNMPv3) */
    @Excel(name = "SNMP版本",readConverterExp = "1=华为SNMPv2c,2=华为SNMPv3")
    private String resourceVersion;

    /** 读写权限(1.RW,2.ReadOnly) */
    @Excel(name = "读写权限",readConverterExp = "1=只读,2=可读可写")
    private String rwPermission;
    /** 团体名称 */
    @Excel(name = "团体名称")
    private String teamName;

    /** SNMP采集地址 */
    @Excel(name = "SNMP采集地址")
    private String snmpCollectAddr;
    /** SNMP采集端口 */
    @Excel(name = "SNMP采集端口")
    private String snmpCollectPort;

    /** 安全级别(1.authPriv、2.authNoPriv，3.noAuthNoPriv) */
    @Excel(name = "安全级别",readConverterExp = "1=authPriv,2=authNoPriv,3=noAuthNoPriv")
    private String securityLevel;

    /** 加密方式 1.md5,2.SHA */
    @Excel(name = "加密方式",readConverterExp = "1=MD5,2=SHA")
    private String encryption;

    /** 用户名 */
    @Excel(name = "用户名")
    private String resourceUserName;
    /** 密码 */
    @Excel(name = "密码")
    private String resourcePwd;

    /** 注册状态 0-未注册，1-已注册 */
    @Excel(name = "注册状态",readConverterExp = "0=未注册,1=已注册")
    private String registrationStatus;

    /** 在线状态 0-离线，1-在线 */
    @Excel(name = "在线状态",readConverterExp = "0=离线,1=在线")
    private String onlineStatus;
    @Excel(name = "交换机在线状态",readConverterExp = "0=离线,1=在线")
    private String switchOnlineStatus;

    /** 描述 */
    @Excel(name = "描述")
    private String description;

    /** 设备业务客户id */
    private Long customerId;

    /** 设备业务客户名称 */
    @Excel(name = "设备业务客户")
    private String customerName;

    /** 业务号 */
    @Excel(name = "业务号")
    private String serviceNumber;

    /** 创建人id */
    private Long creatorId;

    /** 创建人名称 */
    private String creatorName;

    /** 修改人id */
    private Long updaterId;

    /** 修改人名称 */
    private String updaterName;
    /** 监控项 */
    private String monitorItems;
    /** 自动发现项 */
    private String discoveryRules;
    /**
     * 客户端ID
     */
    private String clientId;

    /**
     * 运营商
     */
    private String operator;

    /**
     * 省
     */
    private String province;

    /**
     * 公网IP
     */
    private String publicIp;

    /**
     * 业务名称
     */
    private String businessName;

    /**
     * 逻辑节点标识
     */
    private String logicalNodeId;

    /**
     * 多公网IP状态
     */
    private String multiPublicIpStatus;

    /**
     * 心跳次数
     */
    private Integer heartbeatCount;

    /**
     * 心跳周期（单位：秒）
     */
    private Integer heartbeatInterval;
    /** 上机时间 */
    @Excel(name = "上机时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date onboardTime;

}
