package com.zksy.visualization.domain.request;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;

@Data
@ApiModel(description = "门禁记录查询请求参数")
public class AccessRecordQueryRequest {

    @ApiModelProperty(value = "页码，正整数", required = true)
    private Integer pageNum;

    @ApiModelProperty(value = "分页大小，正整数", required = true)
    private Integer pageSize;

    @ApiModelProperty(value = "查询开始时间，格式：yyyy-MM-dd HH:mm:ss，不送默认从当前时间点减30天")
    private String startSwingTime;

    @ApiModelProperty(value = "查询结束时间，格式：yyyy-MM-dd HH:mm:ss，不送默认是当前时间点")
    private String endSwingTime;

    @ApiModelProperty(value = "入库开始时间，格式：yyyy-MM-dd HH:mm:ss，V1.1.4新增")
    private String startCreateTime;

    @ApiModelProperty(value = "入库结束时间，格式：yyyy-MM-dd HH:mm:ss，V1.1.4新增")
    private String endCreateTime;

    @ApiModelProperty(value = "开门类型, 详见 开门类型 字典")
    private Integer openType;

    @ApiModelProperty(value = "开门类型多选, 详见 开门类型 字典，V1.1.4新增")
    private List<Integer> openTypes;

    @ApiModelProperty(value = "卡片类型, 不传-全部, 0-IC卡, 1-有源RFID, 2-CPU卡")
    private String category;

    @ApiModelProperty(value = "人员名称，仅允许汉字字母数字 -_.@", example = "张三_123")
    private String personName;

    @ApiModelProperty(value = "人员编号，人员编号仅支持字母或数字", example = "A123456")
    private String personCode;

    @ApiModelProperty(value = "通道编码列表（可通过设备管理接口获取unitType为7的channels）", example = "[\"channel1\",\"channel2\"]")
    private List<String> channelCodes;

    @ApiModelProperty(value = "部门ID, 部门间\",\"分隔", example = "dept1,dept2")
    private String deptIds;

    @ApiModelProperty(value = "卡号，字母或数字", example = "ABCD1234")
    private String cardNumber;

    @ApiModelProperty(value = "事件类型, 不传-全部, 1-进门, 2出门, 3-进/出门", allowableValues = "1,2,3")
    private Integer enterOrExit;

    @ApiModelProperty(value = "开门结果, 不传-全部, 1-成功, 0-失败", allowableValues = "0,1")
    private Integer openResult;

    @ApiModelProperty(value = "是否超温")
    private Boolean overTemp;

    @ApiModelProperty(value = "体温低限")
    private Float curTempStart;

    @ApiModelProperty(value = "体温高限")
    private Float curTempEnd;

    @ApiModelProperty(value = "口罩状态 3-带口罩,2—没带口罩,1-未识别", allowableValues = "1,2,3")
    private Integer maskState;

    @ApiModelProperty(value = "访客筛选，1 - 只查询访客记录 2 - 只查询非访客记录", allowableValues = "1,2")
    private Integer visitorFilter;
}