package com.yuchen.saas.park.service.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuchen.saas.park.api.dto.park.WarningDetailListQueryDTO;
import com.yuchen.saas.park.api.entity.park.PmgBatWarningInfo;
import com.yuchen.saas.park.api.vo.park.*;
import io.lettuce.core.dynamic.annotation.Param;

import java.util.List;

/**
 */
public interface WarningInfoMapper extends BaseMapper<PmgBatWarningInfo> {
        List<WarningEveryDayStatistics> getTotal();
    List<WarningDeviceVo> getWarningDevice();
    List<WarningLevelCountVo> getWarningByLevel(String level);
    List<WarningLevelCountVo> getWarningByLevelAndParkId(@Param("level") String level, @Param("parkId") String parkId);

    List<WarningDetailListVo> getWarningDetailList(WarningDetailListQueryDTO queryDTO);
    /**
     * 根据时间戳时间段获取新增告警数
     * @param list
     * @param beginTimestamp 开始时间戳
     * @param endTimestamp 结束时间戳
     * @return 时间戳时间段的新增告警数
     */
    Integer getWarningNumberBetweenTimestamp(List<String> list, Long beginTimestamp, Long endTimestamp);

    /**
     * 获取今日或者本月火警次数
     * @param list productKey
     * @param todayOrMonth
     * @return 今日或者本月火警次数
     */
    Integer getFireAlarmNumberTodayOrMonth(List<String> list, String todayOrMonth);

    /**
     * 获取指定日期火警趋势(小时-次)
     * @param list productKey
     * @param dateFormat 日期格式yyyy-MM-dd
     * @return 今日火警趋势
     */
    List<GetEnvironmentInfo> getFireAlarmTrendsDay(List<String> list, String dateFormat);

    /**
     * 获取指定月份火警趋势(天-次)
     * @param list productKey
     * @param dateFormat 月份格式yyyyMM
     * @return 本月火警趋势
     */
    List<GetEnvironmentInfo> getFireAlarmTrendsMonth(List<String> list, String dateFormat);

    /**
     * 获取对应场景的火警列表
     * @param list productKey
     * @return
     */
    List<FireListVO> getFireList(List<String> list);

}
