package io.wdd.server.beans.vo;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
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;

    /**
     * server host name
     */
    private String serverName;

    /**
     * server public ipv4
     */
    private String serverIpPbV4;

    /**
     * server inner ipv4

     */
    private String serverIpInV4;

    /**
     * server public ipv6

     */
    private String serverIpPbV6;

    /**
     * server inner ipv6

     */
    private String serverIpInV6;

    /**
     *
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime registerTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime expireTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    private Integer proxyType;

    /**
     * server location , type City Country
     */
    private String location;

    /**
     * server isp manager
     */
    private String provider;

    /**
     * split by ,
     */
    private String managePort;

    /**
     *
     */
    private String cpuBrand;

    /**
     *
     */
    private String cpuCore;

    /**
     *
     */
    private String memoryTotal;

    /**
     *
     */
    private String diskTotal;

    /**
     *
     */
    private String diskUsage;

    /**
     *
     */
    private String ioSpeed;

    /**
     *
     */
    private String tcpControl;

    /**
     * server virtualization method
     */
    private String virtualization;

    /**
     *
     */
    private String osInfo;

    /**
     *
     */
    private String osKernelInfo;

    /**
     * machine uuid from /etc/machineid
     */
    private String machineId;

    /**
     * octopus message unique key name
     */
    private String topicName;
    /**
     *
     */
    private String comment;


    private String agentVersion;


}
