package com.zksy.visualization.domain.response;

import cn.hutool.core.date.DateTime;
import com.dahuatech.icc.oauth.http.IccResponse;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * program:java-sdk-demo
 *
 * @Author: 355079
 * @Date:2024-05-07 10:03
 * @Description: 设备通道分页查询返回参数
 */
@Data
public class ChannelPageResponse  {
    @ApiModelProperty(value = "当前页码", example = "1", required = true)
    private int currentPage;

    @ApiModelProperty(value = "总页数", example = "5", required = true)
    private int totalPage;

    @ApiModelProperty(value = "每页记录数", example = "10", required = true)
    private int pageSize;

    @ApiModelProperty(value = "总数", example = "45", required = true)
    private int totalRows;

    @ApiModelProperty(value = "数据列表", required = true)
    private List<ChannelInfoVO> pageData;
    @Data
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @ApiModel(description = "通道信息")
    public static class ChannelInfoVO {

        @ApiModelProperty(value = "自增ID", example = "408", required = true)
        private Long id;

        @ApiModelProperty(value = "设备编码", example = "1000088", required = true)
        private String deviceCode;

        @ApiModelProperty(value = "单元类型", example = "23", required = true)
        private Integer unitType;

        @ApiModelProperty(value = "单元序号", example = "1", required = true)
        private Integer unitSeq;

        @ApiModelProperty(value = "通道序号", example = "1", required = true)
        private Integer channelSeq;

        @ApiModelProperty(value = "通道编码", example = "1000088$23$1$1", required = true)
        private String channelCode;

        @ApiModelProperty(value = "通道标识码", example = "864160064339432$1$0$1", required = true)
        private String channelSn;

        @ApiModelProperty(value = "通道名称", example = "1F液体压力表", required = true)
        private String channelName;

        @ApiModelProperty(value = "通道类型", example = "1", required = true)
        private String channelType;

        @ApiModelProperty(value = "摄像头类型", example = "")
        private String cameraType;

        @ApiModelProperty(value = "所属组织编码", example = "001002", required = true)
        private String ownerCode;

        @ApiModelProperty(value = "经度", example = "")
        private String gpsX;

        @ApiModelProperty(value = "纬度", example = "")
        private String gpsY;

        @ApiModelProperty(value = "z轴", example = "")
        private String gpsZ;

        @ApiModelProperty(value = "光栅图ID", example = "")
        private Long mapId;

        @ApiModelProperty(value = "域ID", example = "")
        private Long domainId;

        @ApiModelProperty(value = "描述", example = "")
        private String memo;

        @ApiModelProperty(value = "设备通道在线状态", example = "0", required = true)
        private Integer isOnline;

        @ApiModelProperty(value = "状态 0:关闭 1:开启", example = "1", required = true)
        private Integer stat;

        @ApiModelProperty(value = "通道能力集，详细说明请参考通道能力级说明", example = "")
        private String capability;

        @ApiModelProperty(value = "是否已经接入 ：1-已接入， 0-未接入", example = "1", required = true)
        private Integer access;

        @ApiModelProperty(value = "通道详情扩展信息,json体，具体参考设备扩展信息->XX设备->通道扩展协议", example = "")
        private String chExt;

        @ApiModelProperty(value = "是否是虚拟通道", example = "false", required = true)
        private Boolean isVirtual;

        @ApiModelProperty(value = "创建时间")
        private DateTime createTime;
    }

}
