package com.artfess.rescue.cloud.model;

import com.artfess.base.entity.BizDelModel;
import com.artfess.base.entity.BizModel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;

/**
 * 私有云资源申请明细表
 *
 * @author 管理员
 * @company 阿特菲斯信息技术有限公司
 * @since 2024-08-07
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "BizCloudApplyDetail对象", description = "私有云资源申请明细表")
@TableName("biz_cloud_apply_detail")
@Data
public class BizCloudApplyDetail extends BizDelModel<BizCloudApplyDetail> {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键ID")
    @TableId(value = "ID_", type = IdType.ASSIGN_ID)
    private String id;

    @ApiModelProperty(value = "云资源申请ID	")
    @TableField("PRIVATE_CLOUD_APPLY_ID_")
    private String privateCloudApplyId;

    @ApiModelProperty(value = "虚拟机名称")
    @TableField("VIRTUAL_MACHINE_NAME_")
    private String virtualMachineName;

    @ApiModelProperty(value = "内网IP")
    @TableField("INTRANET_IP_")
    private String intranetIp;

    @ApiModelProperty(value = "外网IP")
    @TableField("EXTERNAL_IP_")
    private String externalIp;

    @ApiModelProperty(value = "CPU（核）")
    @TableField("CPU_NUM_")
    private Integer cpuNum;

    @ApiModelProperty(value = "内存容量（G）")
    @TableField("MEMORY_CAPACITY_")
    private Integer memoryCapacity;

    @ApiModelProperty(value = "数据盘容量（G)")
    @TableField("SYS_CAPACITY_")
    private Integer sysCapacity;

    @ApiModelProperty(value = "数据盘存储容量（G）")
    @TableField("DATA_CAPACITY_")
    private Integer dataCapacity;

    @ApiModelProperty(value = "资源所属云平台【使用字典，1：XSKY，2：Zstack】")
    @TableField("CLOUD_TYPE_")
    private Integer cloudType;

    @ApiModelProperty(value = "操作系统及版本")
    @TableField("SYSTEM_")
    private String system;

    @ApiModelProperty(value = "其他要求及说明")
    @TableField("OTHER_REQUIREMENTS_")
    private String otherRequirements;

    @ApiModelProperty(value = "租户ID")
    @TableField("TENANT_ID_")
    private String tenantId;

    @JsonIgnore
    @ApiModelProperty(value = "版本号")
    @TableField("VERSION_")
    private Long version;

    @Override
    public String toString() {
        return "BizCloudApplyDetail{" +
                "id=" + id +
                ", privateCloudApplyId=" + privateCloudApplyId +
                ", virtualMachineName=" + virtualMachineName +
                ", intranetIp=" + intranetIp +
                ", externalIp=" + externalIp +
                ", cpuNum=" + cpuNum +
                ", memoryCapacity=" + memoryCapacity +
                ", sysCapacity=" + sysCapacity +
                ", dataCapacity=" + dataCapacity +
                ", cloudType=" + cloudType +
                ", system=" + system +
                ", otherRequirements=" + otherRequirements +
                ", tenantId=" + tenantId +
                "}";
    }
}
