package cn.iocoder.yudao.module.iot.dal.mysql.devicewarinningrecord;

import java.util.*;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.iot.dal.dataobject.devicewarinningrecord.DeviceWarinningRecordDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.iot.controller.admin.devicewarinningrecord.vo.*;

/**
 * 告警记录 Mapper
 *
 * @author 必硕科技
 */
@Mapper
public interface DeviceWarinningRecordMapper extends BaseMapperX<DeviceWarinningRecordDO> {

    default PageResult<DeviceWarinningRecordDO> selectPage(DeviceWarinningRecordPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<DeviceWarinningRecordDO>()
                .eqIfPresent(DeviceWarinningRecordDO::getDeviceId, reqVO.getDeviceId())
                .eqIfPresent(DeviceWarinningRecordDO::getModelId, reqVO.getModelId())
                .eqIfPresent(DeviceWarinningRecordDO::getRule, reqVO.getRule())
                .eqIfPresent(DeviceWarinningRecordDO::getAlarmLevel, reqVO.getAlarmLevel())
                .eqIfPresent(DeviceWarinningRecordDO::getAddressValue, reqVO.getAddressValue())
                .betweenIfPresent(DeviceWarinningRecordDO::getCreateTime, reqVO.getCreateTime())
                .eqIfPresent(DeviceWarinningRecordDO::getRuleId, reqVO.getRuleId())
                .orderByDesc(DeviceWarinningRecordDO::getId));
    }

    List<Map<String, Object>> getLastSevenHoursCount();
}