package cd.casic.module.machine.controller.vo;

import cd.casic.framework.commons.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

@Schema(description = "管理后台 - 机器代理信息 Response VO")
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class MachineProxyVO extends PageParam {

    @Schema(description = "代理ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long id;

    @Schema(description = "用户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "admin")
    private String username;

    @Schema(description = "代理类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "HTTP")
    private Integer proxyType = -1;

    @Schema(description = "版本号", example = "1.0.0")
    private String version;

    @Schema(description = "状态（ONLINE:在线，OFFLINE:离线）", requiredMode = Schema.RequiredMode.REQUIRED, example = "ONLINE")
    private int status = -1;

    @Schema(description = "描述信息", example = "用于生产环境的代理服务器")
    private String description;

    @Schema(description = "主机IP", requiredMode = Schema.RequiredMode.REQUIRED, example = "192.168.1.100")
    private String hostIp;

    @Schema(description = "SSH端口", requiredMode = Schema.RequiredMode.REQUIRED, example = "22")
    private String sshPort;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "2023-06-15T10:30:00")
    private LocalDateTime createTime;

    @Schema(description = "更新时间", example = "2023-06-15T10:30:00")
    private LocalDateTime updateTime;

    @Schema(description = "密码", example = "******")
    private String password;

}
