package com.zksy.visualization.domain.request;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @author Administrator
 * @version 1.0
 * @project dh-server-micro
 * @description 设备树查询
 * @date 2024/12/23 14:39:25
 */
@Data
public class DeviceTreeRequest {
    @ApiModelProperty(value = "上级节点编码(组织编码/设备编码)，层级查询时将返回参数中的id作为上级节点编码请求；基础组织根节点是001，逻辑组织默认根节点调用户详情接口获取defaultOrgCode字段", example = "001")
    private String id;

    @ApiModelProperty(value = "组织/设备树展示的节点类型, type第一个分号的数据参考用户详情接口获取defaultOrgCode字段，入参为鉴权认证的用户id；" +
            "基础组织示例：001;;1 逻辑组织示例：L01;;1", example = "001;;1")
    private String type;

    @ApiModelProperty(value = "业务类型: 1-基本组织，2-逻辑组织，默认值1，基础组织；逻辑组织编码是L打头", example = "1")
    private Integer busiType;

    @ApiModelProperty(value = "查询逻辑组织根组织标识，默认true，逻辑组织查询时使用；等价于基本组织组织编码传空的情况，其它情况请将参数设置为false，逻辑组织时推荐false", example = "false")
    private Boolean checkLogicRootOrgNodeFlag;

    @ApiModelProperty(value = "通道归属于组织还是归属于设备 1：归属于设备 0：归属于组织，默认0；注意,该参数只在type值为”001;1;”这种类型(最后一个分号后面不指定通道类型)时生效", example = "0")
    private Integer channelBelong;

    @ApiModelProperty(value = "操作类型，没有默认为根据上级节点查询下级节点；如果为search,表示按节点名称模糊搜索", example = "search")
    private String act;

    @NotNull(message = "上级组织/设备节点是否有权限不能为空")
    @ApiModelProperty(value = "上级组织/设备节点是否有权限，查询下级节点时该值取上级节点中checkStat属性值；推荐送1", required = true, example = "1")
    private Integer checkStat;

    @ApiModelProperty(value = "act=search时模糊搜索的关键字", example = "关键字")
    private String searchKey;

    @ApiModelProperty(value = "通道能力集,取值为: '单元类型1_通道能力集,单元类型2_通道能力集', 如: ['1_0000000001000000','2_0000000000000001110']")
    private List<String> chCapability;

    @ApiModelProperty(value = "设备能力集,取值为: '设备大类1_通道能力集,设备大类2_通道能力集', 如: ['1_0000000001000000','2_0000000000000001110']")
    private List<String> devCapability;

    @ApiModelProperty(value = "初始化加载树时需要勾选的节点id列表")
    private List<String> checkNodes;

    @ApiModelProperty(value = "是否展示级联节点，默认是1", example = "1")
    private Integer showCascadeNode;

    @ApiModelProperty(value = "是否展示虚拟设备、通道，默认0", example = "0")
    private Integer showVirtualNode;

    @ApiModelProperty(value = "是否展示出没有通道或设备的组织节点，默认0", example = "0")
    private Integer showEmptyOrgNode;

    @ApiModelProperty(value = "设备通道状态 -1:查询全部 0:查询关闭 1:查询已经开启 默认:1", example = "1")
    private Integer stat;
}
