package com.fuyuanshen.equipment.domain.query;

import com.fuyuanshen.common.mybatis.core.domain.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.sql.Timestamp;
import java.util.List;
import java.util.Set;

/**
 * 设备查询参数
 *
 * @Description:
 * @Author: WY
 * @Date: 2025/5/16
 **/
@Data
public class DeviceQueryCriteria extends BaseEntity {

    /**
     * 设备id
     */
    private Long deviceId;

    /**
     * 设备名称
     */
    private String deviceName;

    /**
     * 设备类型
     */
    private Long deviceType;

    /**
     * 设备MAC
     */
    private String deviceMac;

    /**
     * 设备IMEI
     */
    private String deviceImei;

    /**
     * 设备SN
     */
    private String deviceSn;

    /**
     * 设备状态
     * 0 失效
     * 1 正常
     */
    private Integer deviceStatus;

    /**
     * 页码
     */
    private Integer pageNum = 1;

    /**
     * 每页数据量
     */
    private Integer pageSize = 10;

    /**
     * 客户id
     */
    private Long customerId;
    private Set<Long> customerIds;

    /**
     * 当前所有者
     */
    private Long currentOwnerId;

    /**
     * 租户ID
     */
    private String tenantId;

    /**
     * 通讯方式 0:4G;1:蓝牙,2 4G&蓝牙
     * communication_mode
     */
    @Schema(title = "通讯方式", example = "0:4G;1:蓝牙,2 4G&蓝牙")
    private Integer communicationMode;

    /* app绑定用户id */
    private Long bindingUserId;


    /**
     * 使用人员
     */
    private String personnelBy;


    /**
     * 是否为管理员
     */
    private Boolean isAdmin = false;

    /**
     * 设备所属分组
     * group_id
     */
    private Long groupId;

    /**
     * 设备地区
     */
    private String area;

    private String content;

    /**
     * 设备在线状态
     * 0:离线;1:在线；2:故障
     * online_status
     */
    private Integer onlineStatus;
    /**
     * 高德终端ID是否存在
     */
    private Boolean isTid;
    /**
     * 高德服务ID
     */
    private String sid;
    /**
     * 围栏ID
     */
    private Long fenceId;

    /**
     * 绑定状态
     * 0 未绑定
     * 1 已绑定
     */
    @Schema(title = "绑定状态")
    private Integer bindingStatus;

}
