package com.kym.service;

/**
 * 故障通知核心服务 —— 检测故障、触发通知、防重复、恢复通知
 *
 * @author skyline
 */
public interface FaultNotificationService {

    /**
     * 处理设备离线故障
     */
    void handleOfflineFault(String stationId, String deviceName);

    /**
     * 处理设备上线恢复
     */
    void handleOnlineRecovery(String stationId, String deviceName);

    /**
     * 处理缺水/缺泡沫故障
     *
     * @param stationId  站点ID
     * @param deviceName 设备名称
     * @param faultType  故障类型 (water_shortage / foam_shortage)
     */
    void handleResourceShortage(String stationId, String deviceName, String faultType);

    /**
     * 处理水/泡沫恢复
     */
    void handleResourceRecovery(String stationId, String deviceName, String faultType);

    /**
     * 定时兜底：扫描未通知的故障记录并发送通知
     */
    void reconcileUnnotifiedFaults();
}
