package cn.iocoder.yudao.module.pms.controller.admin.yanfan.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 设备分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class DevicePageReqVO extends PageParam {

    @Schema(description = "设备名称", example = "芋艿")
    private String deviceName;

    @Schema(description = "产品ID", example = "30992")
    private Long productId;

    @Schema(description = "产品名称", example = "王五")
    private String productName;

    @Schema(description = "租户名称", example = "芋艿")
    private String tenantName;

    @Schema(description = "设备编号")
    private String serialNumber;

    @Schema(description = "子设备网关编号")
    private String gwDevCode;

    @Schema(description = "固件版本")
    private Double firmwareVersion;

    @Schema(description = "设备状态（1-未激活，2-禁用，3-在线，4-离线）", example = "2")
    private Integer status;

    @Schema(description = "信号强度（	信号极好4格[-55— 0]，	信号好3格[-70— -55]，	信号一般2格[-85— -70]，	信号差1格[-100— -85]）")
    private Integer rssi;

    @Schema(description = "是否启用设备影子(0=禁用，1=启用)")
    private Boolean isShadow;

    @Schema(description = "定位方式(1=ip自动定位，2=设备定位，3=自定义)")
    private Boolean locationWay;

    @Schema(description = "物模型值")
    private String thingsModelValue;

    @Schema(description = "设备所在地址")
    private String networkAddress;

    @Schema(description = "设备入网IP")
    private String networkIp;

    @Schema(description = "设备经度")
    private Double longitude;

    @Schema(description = "设备纬度")
    private Double latitude;

    @Schema(description = "激活时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] activeTime;

    @Schema(description = "设备摘要")
    private String summary;

    @Schema(description = "图片地址", example = "https://www.iocoder.cn")
    private String imgUrl;

    @Schema(description = "删除标志（0代表存在 2代表删除）")
    private String delFlag;

    @Schema(description = "创建者")
    private String createBy;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @Schema(description = "更新者")
    private String updateBy;

    @Schema(description = "备注", example = "你猜")
    private String remark;

    @Schema(description = "是否是模拟设备")
    private Integer isSimulate;

    @Schema(description = "从机id", example = "31402")
    private Integer slaveId;

    @Schema(description = "clientId编号", example = "28927")
    private String clientId;

    @Schema(description = "发布")
    private String postDev;

    @Schema(description = "订阅")
    private String getDev;

    @Schema(description = "mqtt是否自定义状态（1为初始化，0为自定义）")
    private Integer mqttstats;

}
