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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
* Restful接口--资源详情--数据传输对象：设备表
*
* createdate:  2021-08-30 09:31:20  <br>
* @author:  maven-cctp-plugin  <br>
* @since:  1.0 <br>
*/
@JsonSerialize
@ApiModel(description = "设备表")
public class DeviceDetailDto  implements Serializable
{
    /**
     * 设备系统标识<br>
     */
    @ApiModelProperty("设备系统标识")
    @Size(max = 128, message="设备系统标识-serial: 数据长度不能 > 128" )
    private String serial;
    /**
     * 设备型号<br>
     */
    @ApiModelProperty("设备型号")
    @Size(max = 32, message="设备型号-modelId: 数据长度不能 > 32" )
    private String modelId;
    /**
     * 平台类型<br>
     */
    @ApiModelProperty("平台类型")
    @Size(max = 32, message="平台类型-platform: 数据长度不能 > 32" )
    private String platform;
    /**
     * 平台版本<br>
     */
    @ApiModelProperty("平台版本")
    @Size(max = 32, message="平台版本-platformVersion: 数据长度不能 > 32" )
    private String platformVersion;
    /**
     * 关联上位机<br>
     */
    @ApiModelProperty("关联上位机")
    @Size(max = 32, message="关联上位机-ctrlId: 数据长度不能 > 32" )
    private String ctrlId;
    /**
     * CPU型号<br>
     */
    @ApiModelProperty("CPU型号")
    @Size(max = 32, message="CPU型号-cpuModel: 数据长度不能 > 32" )
    private String cpuModel;
    /**
     * CPU核心数<br>
     */
    @ApiModelProperty("CPU核心数")
    private Integer cpuCoreNum;
    /**
     * 内存大小<br>
     */
    @ApiModelProperty("内存大小")
    @Size(max = 32, message="内存大小-memSize: 数据长度不能 > 32" )
    private String memSize;
    /**
     * 存储大小<br>
     */
    @ApiModelProperty("存储大小")
    @Size(max = 32, message="存储大小-storageSize: 数据长度不能 > 32" )
    private String storageSize;
    /**
     * 设备状态<br>
     */
    @ApiModelProperty("设备状态")
    @Size(max = 32, message="设备状态-status: 数据长度不能 > 32" )
    private String status;
    /**
     * 租户ID<br>
     */
    @ApiModelProperty("租户ID")
    @Size(max = 32, message="租户ID-tenantId: 数据长度不能 > 32" )
    private String tenantId;
    /**
     * 当前使用人<br>
     */
    @ApiModelProperty("当前使用人")
    @Size(max = 32, message="当前使用人-usedBy: 数据长度不能 > 32" )
    private String usedBy;
    /**
     * 更新人<br>
     */
    @ApiModelProperty("更新人")
    @Size(max = 32, message="更新人-updatedBy: 数据长度不能 > 32" )
    private String updatedBy;
    /**
     * 更新时间<br>
     */
    @ApiModelProperty("更新时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updatedTime;

    @ApiModelProperty("品牌")
    private String brandNameCn;

    @ApiModelProperty("产品名称")
    private String prodouctName;

    @ApiModelProperty("产品型号")
    private String moduleName;

    @ApiModelProperty("上位机ip")
    private String ctrlIp;

    @ApiModelProperty("所属租户")
    private String tenantName;

    @ApiModelProperty("上位机位置")
    private String ctrlAddr;

    @ApiModelProperty("到期时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date scheduleEndDate;

    @ApiModelProperty("回收方式")
    private String recycleType;

    @ApiModelProperty("归属对象id")
    private String ownerId;

    @ApiModelProperty("归属对象名称")
    private String ownerName;

    @ApiModelProperty("归属对象设备到期时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd" ,timezone = "GMT+8")
    private Date ownerScheduleEndDate;

    @ApiModelProperty("型号图片")
    private byte[] modelImg;

    @ApiModelProperty("分辨率")
    private String resolution;

    @ApiModelProperty("标题显示")
    private String titleName;

    @ApiModelProperty("系统")
    private String system;


    @ApiModelProperty("屏幕尺寸")
    private String screenSize;

    @ApiModelProperty("cpu品牌")
    private String cpuBrand;

    @ApiModelProperty("使用人名称")
    private String usedByName;

    @ApiModelProperty("通道")
    private String channel;

    @ApiModelProperty("stf地址")
    private String stfAddress;

    @ApiModelProperty("display")
    private Map<String,Object> display;
    @ApiModelProperty("provider")
    private Map<String, Object> provider;
    @ApiModelProperty("browser")
    private Map<String, Object> browser;
    @ApiModelProperty("network")
    private Map<String, Object> network;
    @ApiModelProperty("model")
    private String model;
    @ApiModelProperty("marketName")
    private String marketName;
    @ApiModelProperty("类型")
    private String type;//类型

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
    public Map<String, Object> getDisplay() {
        return display;
    }

    public void setDisplay(Map<String, Object> display) {
        this.display = display;
    }

    public Map<String, Object> getProvider() {
        return provider;
    }

    public void setProvider(Map<String, Object> provider) {
        this.provider = provider;
    }

    public Map<String, Object> getBrowser() {
        return browser;
    }

    public void setBrowser(Map<String, Object> browser) {
        this.browser = browser;
    }

    public Map<String, Object> getNetwork() {
        return network;
    }

    public void setNetwork(Map<String, Object> network) {
        this.network = network;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public String getMarketName() {
        return marketName;
    }

    public void setMarketName(String marketName) {
        this.marketName = marketName;
    }

    public String getChannel() {
        return channel;
    }

    public void setChannel(String channel) {
        this.channel = channel;
    }

    public String getStfAddress() {
        return stfAddress;
    }

    public void setStfAddress(String stfAddress) {
        this.stfAddress = stfAddress;
    }

    public String getUsedByName() {
        return usedByName;
    }

    public void setUsedByName(String usedByName) {
        this.usedByName = usedByName;
    }

    public String getScreenSize() {
        return screenSize;
    }

    public void setScreenSize(String screenSize) {
        this.screenSize = screenSize;
    }

    public String getCpuBrand() {
        return cpuBrand;
    }

    public void setCpuBrand(String cpuBrand) {
        this.cpuBrand = cpuBrand;
    }

    public byte[] getModelImg() {
        return modelImg;
    }

    public void setModelImg(byte[] modelImg) {
        this.modelImg = modelImg;
    }

    public String getResolution() {
        return resolution;
    }

    public void setResolution(String resolution) {
        this.resolution = resolution;
    }

    public String getTitleName() {
        return titleName;
    }

    public void setTitleName(String titleName) {
        this.titleName = titleName;
    }

    public String getSystem() {
        return system;
    }

    public void setSystem(String system) {
        this.system = system;
    }

    public String getOwnerId() {
        return ownerId;
    }

    public void setOwnerId(String ownerId) {
        this.ownerId = ownerId;
    }

    public String getOwnerName() {
        return ownerName;
    }

    public void setOwnerName(String ownerName) {
        this.ownerName = ownerName;
    }

    public Date getOwnerScheduleEndDate() {
        return ownerScheduleEndDate;
    }

    public void setOwnerScheduleEndDate(Date ownerScheduleEndDate) {
        this.ownerScheduleEndDate = ownerScheduleEndDate;
    }

    public String getRecycleType() {
        return recycleType;
    }

    public void setRecycleType(String recycleType) {
        this.recycleType = recycleType;
    }

    public Date getScheduleEndDate() {
        return scheduleEndDate;
    }

    public void setScheduleEndDate(Date scheduleEndDate) {
        this.scheduleEndDate = scheduleEndDate;
    }

    public String getSerial() {
        return serial;
    }

    public void setSerial(String serial) {
        this.serial = serial;
    }

    public String getModelId() {
        return modelId;
    }

    public void setModelId(String modelId) {
        this.modelId = modelId;
    }

    public String getPlatform() {
        return platform;
    }

    public void setPlatform(String platform) {
        this.platform = platform;
    }

    public String getPlatformVersion() {
        return platformVersion;
    }

    public void setPlatformVersion(String platformVersion) {
        this.platformVersion = platformVersion;
    }

    public String getCtrlId() {
        return ctrlId;
    }

    public void setCtrlId(String ctrlId) {
        this.ctrlId = ctrlId;
    }

    public String getCpuModel() {
        return cpuModel;
    }

    public void setCpuModel(String cpuModel) {
        this.cpuModel = cpuModel;
    }

    public Integer getCpuCoreNum() {
        return cpuCoreNum;
    }

    public void setCpuCoreNum(Integer cpuCoreNum) {
        this.cpuCoreNum = cpuCoreNum;
    }

    public String getMemSize() {
        return memSize;
    }

    public void setMemSize(String memSize) {
        this.memSize = memSize;
    }

    public String getStorageSize() {
        return storageSize;
    }

    public void setStorageSize(String storageSize) {
        this.storageSize = storageSize;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }


    public String getTenantId() {
        return tenantId;
    }

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    public String getUsedBy() {
        return usedBy;
    }

    public void setUsedBy(String usedBy) {
        this.usedBy = usedBy;
    }

    public String getUpdatedBy() {
        return updatedBy;
    }

    public void setUpdatedBy(String updatedBy) {
        this.updatedBy = updatedBy;
    }

    public Date getUpdatedTime() {
        return updatedTime;
    }

    public void setUpdatedTime(Date updatedTime) {
        this.updatedTime = updatedTime;
    }

    public String getBrandNameCn() {
        return brandNameCn;
    }

    public void setBrandNameCn(String brandNameCn) {
        this.brandNameCn = brandNameCn;
    }


    public String getModuleName() {
        return moduleName;
    }

    public void setModuleName(String moduleName) {
        this.moduleName = moduleName;
    }

    public String getCtrlIp() {
        return ctrlIp;
    }

    public void setCtrlIp(String ctrlIp) {
        this.ctrlIp = ctrlIp;
    }

    public String getTenantName() {
        return tenantName;
    }

    public void setTenantName(String tenantName) {
        this.tenantName = tenantName;
    }

    public String getCtrlAddr() {
        return ctrlAddr;
    }

    public void setCtrlAddr(String ctrlAddr) {
        this.ctrlAddr = ctrlAddr;
    }

    public String getProdouctName() {
        return prodouctName;
    }

    public void setProdouctName(String prodouctName) {
        this.prodouctName = prodouctName;
    }

    @Override
    public String toString() {
        return "DeviceDetailDto{" +
                "serial='" + serial + '\'' +
                ", modelId='" + modelId + '\'' +
                ", platform='" + platform + '\'' +
                ", platformVersion='" + platformVersion + '\'' +
                ", ctrlId='" + ctrlId + '\'' +
                ", cpuModel='" + cpuModel + '\'' +
                ", cpuCoreNum=" + cpuCoreNum +
                ", memSize='" + memSize + '\'' +
                ", storageSize='" + storageSize + '\'' +
                ", status='" + status + '\'' +
                ", tenantId='" + tenantId + '\'' +
                ", usedBy='" + usedBy + '\'' +
                ", updatedBy='" + updatedBy + '\'' +
                ", updatedTime=" + updatedTime +
                ", brandNameCn='" + brandNameCn + '\'' +
                ", prodouctName='" + prodouctName + '\'' +
                ", moduleName='" + moduleName + '\'' +
                ", ctrlIp='" + ctrlIp + '\'' +
                ", tenantName='" + tenantName + '\'' +
                ", ctrlAddr='" + ctrlAddr + '\'' +
                ", scheduleEndDate=" + scheduleEndDate +
                ", recycleType='" + recycleType + '\'' +
                ", ownerId='" + ownerId + '\'' +
                ", ownerName='" + ownerName + '\'' +
                ", ownerScheduleEndDate=" + ownerScheduleEndDate +
                ", modelImg=" + Arrays.toString(modelImg) +
                ", resolution='" + resolution + '\'' +
                ", titleName='" + titleName + '\'' +
                ", system='" + system + '\'' +
                '}';
    }
}