/*
* Copyright (c) 京北方信息技术股份有限公司 Corporation 2022 . All rights reserved.
*
*/
package net.northking.cctp.device.dto.pcDevice;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import net.northking.cctp.device.db.entity.CdPcUser;

import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
* Restful接口--资源详情--数据传输对象：PC设备管理
*
* createdate:  2022-09-26 10:56:57  <br>
* @author:  maven-cctp-plugin  <br>
* @since:  1.0 <br>
*/
@JsonSerialize
@ApiModel(description = "PC设备管理")
@Data
public class CdPcDeviceDetailDto implements Serializable
{
    /**
     * 主键id<br>
     */
    @ApiModelProperty("主键id")
    @Size(max = 32, message="主键id-id: 数据长度不能 > 32" )
    private String id;
    /**
     * 设备名称<br>
     */
    @ApiModelProperty("设备名称")
    @Size(max = 100, message="设备名称-deviceName: 数据长度不能 > 100" )
    private String deviceName;
    /**
     * 设备域名<br>
     */
    @ApiModelProperty("设备域名")
    @Size(max = 50, message="设备域名-domainName: 数据长度不能 > 50" )
    private String domainName;
    /**
     * ip地址<br>
     */
    @ApiModelProperty("ip地址")
    @Size(max = 20, message="ip地址-ipAddr: 数据长度不能 > 20" )
    private String ipAddr;
    /**
     * mac地址<br>
     */
    @ApiModelProperty("mac地址")
    @Size(max = 50, message="mac地址-macAddr: 数据长度不能 > 50" )
    private String macAddr;
    /**
     * 操作系统架构<br>
     */
    @ApiModelProperty("操作系统架构")
    @Size(max = 100, message="操作系统架构-osArch: 数据长度不能 > 100" )
    private String osArch;

    @ApiModelProperty("操作系统")
    private String osName;
    /**
     * 内存容量<br>
     */
    @ApiModelProperty("内存容量")
    @Size(max = 10, message="内存容量-ramSize: 数据长度不能 > 10" )
    private String ramSize;
    /**
     * 分辨率-宽<br>
     */
    @ApiModelProperty("分辨率-宽")
    private Integer width;
    /**
     * 分辨率-高<br>
     */
    @ApiModelProperty("分辨率-高")
    private Integer height;
    /**
     * 执行机位置<br>
     */
    @ApiModelProperty("执行机位置")
    @Size(max = 100, message="执行机位置-location: 数据长度不能 > 100" )
    private String location;
    /**
     * 远程协议<br>
     */
    @ApiModelProperty("远程协议")
    @Size(max = 100, message="远程协议-remoteProtocol: 数据长度不能 > 100" )
    private String remoteProtocol;
    /**
     * 远程端口<br>
     */
    @ApiModelProperty("远程端口")
    @Size(max = 10, message="远程端口-remotePort: 数据长度不能 > 10" )
    private String remotePort;
    /**
     * 注册时间<br>
     */
    @ApiModelProperty("注册时间")
    private Date registedTime;
    /**
     * 创建人<br>
     */
    @ApiModelProperty("创建人")
    @Size(max = 32, message="创建人-createdBy: 数据长度不能 > 32" )
    private String createdBy;
    /**
     * 创建时间<br>
     */
    @ApiModelProperty("创建时间")
    private Date createdTime;
    /**
     * 更新人<br>
     */
    @ApiModelProperty("更新人")
    @Size(max = 32, message="更新人-updatedBy: 数据长度不能 > 32" )
    private String updatedBy;
    /**
     * 更新时间<br>
     */
    @ApiModelProperty("更新时间")
    private Date updatedTime;

    @ApiModelProperty("系统id")
    private String projectId;

    @ApiModelProperty("系统名称")
    private String projectName;

    @ApiModelProperty("设备状态")
    private String status;

    @ApiModelProperty("使用状态")
    private String usageStatus;

    @ApiModelProperty("租户到期时间")
    private Date tenantExpiredTime;

    @ApiModelProperty("系统到期时间")
    private Date projectExpiredTime;

    @ApiModelProperty("系统-设备到期时间-开始")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date projectExpiredTimeStart;

    @ApiModelProperty("系统-设备到期时间-结束")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date projectExpiredTimeEnd;

    @ApiModelProperty("租户-设备到期时间-开始")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date tenantExpiredTimeStart;

    @ApiModelProperty("租户-设备到期时间-结束")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date tenantExpiredTimeEnd;

    @ApiModelProperty("租户id")
    private String tenantId;

    @ApiModelProperty("租户名称")
    private String tenantName;

    @ApiModelProperty("系统回收方式")
    private String proRecycleType;

    @ApiModelProperty("租户回收方式")
    private String tenantRecycleType;

    @ApiModelProperty("PC设备用户")
    private List<CdPcUser> users;

}