package cn.iocoder.yudao.module.iot.controller.admin.device.vo.message; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.validation.InEnum; import cn.iocoder.yudao.module.iot.core.enums.IotDeviceMessageMethodEnum; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import lombok.Data; 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 = "管理后台 - IoT 设备消息分页查询 Request VO") @Data public class IotDeviceMessagePageReqVO extends PageParam { @Schema(description = "设备编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "设备编号不能为空") private Long deviceId; @Schema(description = "消息类型", example = "property") @InEnum(IotDeviceMessageMethodEnum.class) private String method; @Schema(description = "是否上行", example = "true") private Boolean upstream; @Schema(description = "是否回复", example = "true") private Boolean reply; @Schema(description = "标识符", example = "temperature") private String identifier; @Schema(description = "时间范围", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @Size(min = 2, max = 2, message = "请选择时间范围") private LocalDateTime[] times; }