package io.wdd.server.beans.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import java.time.LocalDateTime;

@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder(toBuilder = true)
public class ServerInfoVO {


    /**
     * 2023年8月11日 用于前端的展示的顺序
     */
    private Integer id;

    @TableField(value = "tenant_name")
    private String tenantName;

    /**
     * octopus message unique key name
     */
    @TableField(value = "agent_topic_name")
    private String agentTopicName;

    /**
     * server host name
     */
    @TableField(value = "server_name")
    private String serverName;

    /**
     * server public ipv4

     */
    @TableField(value = "server_ip_pb_v4")
    private String serverIpPbV4;

    /**
     * server inner ipv4

     */
    @TableField(value = "server_ip_in_v4")
    private String serverIpInV4;

    /**
     * server public ipv6

     */
    @TableField(value = "server_ip_pb_v6")
    private String serverIpPbV6;

    /**
     * server inner ipv6

     */
    @TableField(value = "server_ip_in_v6")
    private String serverIpInV6;

    /**
     * server register time
     */
    @TableField(value = "register_time")
    private LocalDateTime registerTime;

    /**
     * expire time
     */
    @TableField(value = "expire_time")
    private LocalDateTime expireTime;

    /**
     *
     */
    @TableField(value = "update_time")
    private LocalDateTime updateTime;

    /**
     *
     */
    @TableField(value = "create_time")
    private LocalDateTime createTime;

    /**
     * 服务器所在的城市信息
     */
    @TableField(value = "city")
    private String city;

    /**
     * 省份
     */
    @TableField(value = "province")
    private String province;

    /**
     * 国家
     */
    @TableField(value = "country")
    private String country;

    /**
     * 经纬度
     */
    @TableField(value = "location")
    private String location;

    /**
     * 时区
     */
    @TableField(value = "timezone")
    private String timezone;

    /**
     * server isp manager
     */
    @TableField(value = "provider")
    private String provider;

    /**
     *
     */
    @TableField(value = "cpu_brand")
    private String cpuBrand;

    /**
     *
     */
    @TableField(value = "cpu_core")
    private String cpuCore;

    /**
     * cpu架构 amd64
     */
    @TableField(value = "cpu_arch")
    private String cpuArch;

    /**
     *
     */
    @TableField(value = "memory_total")
    private String memoryTotal;

    /**
     *
     */
    @TableField(value = "swap_total")
    private String swapTotal;

    /**
     *
     */
    @TableField(value = "disk_total")
    private String diskTotal;

    /**
     *
     */
    @TableField(value = "disk_usage")
    private String diskUsage;

    /**
     *
     */
    @TableField(value = "io_speed")
    private String ioSpeed;

    /**
     *
     */
    @TableField(value = "tcp_control")
    private String tcpControl;

    /**
     * server virtualization method
     */
    @TableField(value = "virtualization")
    private String virtualization;

    /**
     * 操作系统平台
     */
    @TableField(value = "platform")
    private String platform;

    /**
     * 操作系统具体类别
     */
    @TableField(value = "platform_family")
    private String platformFamily;

    /**
     * 操作系统的版本
     */
    @TableField(value = "platform_version")
    private String platformVersion;

    /**
     * 内核版本
     */
    @TableField(value = "kernel_version")
    private String kernelVersion;

    /**
     * 内核的架构 x86_64
     */
    @TableField(value = "kernel_arch")
    private String kernelArch;

    /**
     *
     */
    @TableField(value = "os_info")
    private String osInfo;

    /**
     *
     */
    @TableField(value = "os_kernel_info")
    private String osKernelInfo;

    /**
     * 服务器能否访问公网
     */
    @TableField(value = "can_access_public")
    private Integer canAccessPublic;

    /**
     * machine uuid from /etc/machineid
     */
    @TableField(value = "machine_id")
    private String machineId;

    /**
     *
     */
    @TableField(value = "comment")
    private String comment;

    /**
     * 0 alive || 1 deleted
     */
    @TableField(value = "is_delete")
    private Integer isDelete;

    /**
     * Agent的版本信息
     */
    @TableField(value = "agent_version")
    private String agentVersion;

    /**
     * 服务器的角色信息
     */
    @TableField(value = "role")
    private String role;


}
