package com.zcxk.rmcp.web.service;

import com.zcxk.core.mysql.pageing.Pagination;
import com.zcxk.rmcp.api.dto.alarm.AlarmRuleDto;
import com.zcxk.rmcp.api.dto.alarm.AlarmRulePageDto;
import com.zcxk.rmcp.api.dto.alarm.ConfigDataDto;
import com.zcxk.rmcp.api.dto.alarm.RuleMeasuringDto;

import java.util.List;
/**
 *
 * @author heyumin
 * @date 2021-07-30 9:44
 */
public interface AlarmRuleService {
    /**获取告警规则列表
      * @param alarmRulePageDto
     * @description
     * @author hym
     * @updateTime 2021/8/3 9:37
     * @return com.zcxk.core.mysql.pageing.Pagination<com.zcxk.rmcp.api.dto.alarm.AlarmRuleDto>
     * @throws
     */
    Pagination<AlarmRuleDto> getList(AlarmRulePageDto alarmRulePageDto);
    /**添加规则
     * @param deviceAlarmRule
     * @description
     * @author hym
     * @updateTime 2021/8/2 14:42
     * @return void
     * @throws
     */
    void add(AlarmRuleDto deviceAlarmRule);
    /**修改规则
     * @param deviceAlarmRule
     * @description
     * @author hym
     * @updateTime 2021/8/2 14:47
     * @return void
     * @throws
     */
    void edit(AlarmRuleDto deviceAlarmRule);
    /**删除规则
     * @param ids
     * @description
     * @author hym
     * @updateTime 2021/8/2 14:47
     * @return void
     * @throws
     */
    void delete(List<Integer> ids);
    /**删除所有规则
     * @param alarmTypeId
     * @description
     * @author hym
     * @updateTime 2021/8/2 14:47
     * @return void
     * @throws
     */
    void deleteAll(Integer alarmTypeId);
    /**获取测点列表
     * @param deviceTypeId
     * @description
     * @author hym
     * @updateTime 2021/8/2 14:47
     * @return java.util.List<com.zcxk.rmcp.api.dto.alarm.RuleMeasuringDto>
     * @throws
     */
    List<RuleMeasuringDto> getRuleMeasuringList(Integer deviceTypeId);
    /**获取测点选项
     * @param deviceTypeId
     * @param measuringId
     * @description
     * @author hym
     * @updateTime 2021/8/2 14:48
     * @return java.util.List<com.zcxk.rmcp.api.dto.alarm.ConfigDataDto>
     * @throws
     */
    List<ConfigDataDto> getMeasuringOptionList(Integer deviceTypeId, Integer measuringId);
}
