package com.ruoyi.monitor.service;

import java.util.List;
import java.util.Map;

/**
 * 告警服务接口
 * 
 * @author ruoyi
 * @date 2025-12-19
 */
public interface IAlertService 
{
    /**
     * 发送告警通知
     * 
     * @param alertType 告警类型
     * @param level 告警级别
     * @param message 告警消息
     * @param details 告警详情
     */
    public void sendAlert(String alertType, String level, String message, Map<String, Object> details);

    /**
     * 批量发送告警通知
     * 
     * @param alerts 告警列表
     */
    public void sendBatchAlerts(List<Map<String, Object>> alerts);

    /**
     * 检查告警规则
     * 
     * @param metricType 指标类型
     * @param value 指标值
     * @return 是否触发告警
     */
    public boolean checkAlertRule(String metricType, double value);

    /**
     * 获取告警配置
     * 
     * @return 告警配置
     */
    public Map<String, Object> getAlertConfig();

    /**
     * 更新告警配置
     * 
     * @param config 告警配置
     */
    public void updateAlertConfig(Map<String, Object> config);

    /**
     * 获取告警历史
     * 
     * @param params 查询参数
     * @return 告警历史列表
     */
    public List<Map<String, Object>> getAlertHistory(Map<String, Object> params);

    /**
     * 处理告警恢复
     * 
     * @param alertType 告警类型
     * @param message 恢复消息
     */
    public void handleAlertRecovery(String alertType, String message);
}