package com.qqchen.deploy.backend.deploy.dto;

import com.qqchen.deploy.backend.framework.dto.DiskInfo;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
import java.util.List;

/**
 * 服务器初始化 DTO
 * 用于前端SSH采集硬件信息后回调
 */
@Data
public class ServerInitializeDTO {

    /**
     * CPU核心数
     */
    @NotNull(message = "CPU核心数不能为空")
    @Min(value = 1, message = "CPU核心数至少为1")
    private Integer cpuCores;

    /**
     * 内存大小(GB)
     */
    @NotNull(message = "内存大小不能为空")
    @Min(value = 1, message = "内存大小至少为1GB")
    private Integer memorySize;

    /**
     * 磁盘总容量(GB)
     */
    @NotNull(message = "磁盘大小不能为空")
    @Min(value = 1, message = "磁盘大小至少为1GB")
    private Integer diskSize;

    /**
     * 磁盘详细信息列表
     */
    @NotEmpty(message = "磁盘信息不能为空")
    private List<DiskInfo> diskInfo;

    /**
     * 操作系统版本
     */
    @NotBlank(message = "操作系统版本不能为空")
    private String osVersion;

    /**
     * 主机名
     */
    @NotBlank(message = "主机名不能为空")
    private String hostname;
}

