/*
* 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 java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
* 查询接口--数据传输对象：设备表
*
* createdate:  2021-08-30 09:31:20  <br>
* @author:  maven-cctp-plugin  <br>
* @since:  1.0 <br>
*/
@JsonSerialize
@ApiModel(description = "设备表查询类")
public class DeviceQueryDto implements Serializable
{
    @ApiModelProperty("设备id")
    private String serial;

    @ApiModelProperty("设备品牌搜索条件")
    private String brandNameCn;

    @ApiModelProperty("产品名称搜索条件")
    private String prodouctName;

    @ApiModelProperty("操作系统搜索条件")
    private String platform;

    @ApiModelProperty("设备状态搜索条件")
    private String status;

    @ApiModelProperty("所属系统搜索条件")
    private String ownerId;

    @ApiModelProperty("所属租户搜索条件")
    private String tenantId;

    @ApiModelProperty("批量操纵设备id")
    private List<String> serialList;

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

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

    @ApiModelProperty("批量回收租户设备时，设备id为key,租户id为value")
    private Map<String, String> deviceBandOwner;

    @ApiModelProperty("查询列表，系统id的集合")
    private List<String> proIds;

    public List<String> getProIds() {
        return proIds;
    }

    public void setProIds(List<String> proIds) {
        this.proIds = proIds;
    }

    public DeviceQueryDto(String serial) {
        this.serial = serial;
    }


    public Map<String, String> getDeviceBandOwner() {
        return deviceBandOwner;
    }

    public void setDeviceBandOwner(Map<String, String> deviceBandOwner) {
        this.deviceBandOwner = deviceBandOwner;
    }

    @ApiModelProperty("品牌查询条件")
    private List<Map<String,String>> brandList;

    @ApiModelProperty("安卓版本查询条件")
    private List<String> androidVersionList;

    @ApiModelProperty("版本查询条件")
    private List<String> versionList;

    @ApiModelProperty("ios版本查询条件")
    private List<String> iosVersionList;

    @ApiModelProperty("分辨率查询条件")
    private List<Map<String,String>> resolutionRatioList;

    @ApiModelProperty("设备状态查询条件")
    private List<String> deviceStatus;

    @ApiModelProperty("设备私有还是共有查询条件")
    private List<String> deviceOwner;

    @ApiModelProperty("设备型号查询条件")
    private String moduleName;

    @ApiModelProperty("是否排除，0排除，1表示id必须在里面")
    private String inOrNot;

    @ApiModelProperty("创建的任务名称")
    private String taskName;

    @ApiModelProperty("任务id")
    private Long taskId;

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

    @ApiModelProperty("文件录屏地址")
    private String videoAddr;

    @ApiModelProperty("设备使用人")
    private String usedBy;

    @ApiModelProperty("使用过程中发送的心跳id")
    private String heartId;

    @ApiModelProperty("是否主动退出，1代表表示")
    private String flag;

    private TypeQuery iosType;

    private TypeQuery androidType;

    private DeviceSelectQueryDto deviceSelectQueryDto;

    public DeviceSelectQueryDto getDeviceSelectQueryDto() {
        return deviceSelectQueryDto;
    }

    public void setDeviceSelectQueryDto(DeviceSelectQueryDto deviceSelectQueryDto) {
        this.deviceSelectQueryDto = deviceSelectQueryDto;
    }

    public List<Map<String, String>> getResolutionRatioList() {
        return resolutionRatioList;
    }

    public List<Map<String, String>> getBrandList() {
        return brandList;
    }

    public void setBrandList(List<Map<String, String>> brandList) {
        this.brandList = brandList;
    }

    public void setResolutionRatioList(List<Map<String, String>> resolutionRatioList) {
        this.resolutionRatioList = resolutionRatioList;
    }

    public TypeQuery getIosType() {
        return iosType;
    }

    public void setIosType(TypeQuery iosType) {
        this.iosType = iosType;
    }

    public TypeQuery getAndroidType() {
        return androidType;
    }

    public void setAndroidType(TypeQuery androidType) {
        this.androidType = androidType;
    }

    public String getFlag() {
        return flag;
    }

    public void setFlag(String flag) {
        this.flag = flag;
    }

    public String getHeartId() {
        return heartId;
    }

    public void setHeartId(String heartId) {
        this.heartId = heartId;
    }

    public String getUsedBy() {
        return usedBy;
    }

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

    public String getVideoAddr() {
        return videoAddr;
    }

    public void setVideoAddr(String videoAddr) {
        this.videoAddr = videoAddr;
    }

    public Long getTaskId() {
        return taskId;
    }

    public void setTaskId(Long taskId) {
        this.taskId = taskId;
    }

    public Date getOwnerScheduleEndDate() {
        return ownerScheduleEndDate;
    }

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

    public String getTaskName() {
        return taskName;
    }

    public void setTaskName(String taskName) {
        this.taskName = taskName;
    }

    public String getInOrNot() {
        return inOrNot;
    }

    public void setInOrNot(String inOrNot) {
        this.inOrNot = inOrNot;
    }

    public List<String> getAndroidVersionList() {
        return androidVersionList;
    }

    public void setAndroidVersionList(List<String> androidVersionList) {
        this.androidVersionList = androidVersionList;
    }

    public List<String> getIosVersionList() {
        return iosVersionList;
    }

    public void setIosVersionList(List<String> iosVersionList) {
        this.iosVersionList = iosVersionList;
    }


    public List<String> getDeviceStatus() {
        return deviceStatus;
    }

    public void setDeviceStatus(List<String> deviceStatus) {
        this.deviceStatus = deviceStatus;
    }

    public List<String> getDeviceOwner() {
        return deviceOwner;
    }

    public void setDeviceOwner(List<String> deviceOwner) {
        this.deviceOwner = deviceOwner;
    }

    public String getModuleName() {
        return moduleName;
    }

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

    public String getSerial() {
        return serial;
    }

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


    public Date getScheduleEndDate() {
        return scheduleEndDate;
    }

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

    public String getRecycleType() {
        return recycleType;
    }

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

    public List<String> getSerialList() {
        return serialList;
    }

    public void setSerialList(List<String> serialList) {
        this.serialList = serialList;
    }

    public String getBrandNameCn() {
        return brandNameCn;
    }

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

    public String getProdouctName() {
        return prodouctName;
    }

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

    public String getPlatform() {
        return platform;
    }

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

    public String getStatus() {
        return status;
    }

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

    public String getOwnerId() {
        return ownerId;
    }

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

    public String getTenantId() {
        return tenantId;
    }

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

    public DeviceQueryDto() {
    }

    public List<String> getVersionList() {
        return versionList;
    }

    public void setVersionList(List<String> versionList) {
        this.versionList = versionList;
    }
}