package com.shzg.project.worn.service;

/**
 * 设备状态服务（用于告警去重 / 状态变更判断）
 */
public interface IDeviceStatusService {

    /**
     * 判断设备状态是否发生变化（核心方法）
     *
     * @param deviceId 设备ID
     * @param newStatus 新状态（如 alarm / normal / open / close）
     * @return true=状态发生变化，需要处理；false=未变化，忽略
     */
    boolean isStatusChanged(Long deviceId, String newStatus);

    /**
     * 带“状态类型”的状态变更判断（推荐）
     * 例如：door / smoke / water / env
     *
     * @param deviceId 设备ID
     * @param type 状态类型
     * @param newStatus 新状态
     * @return 是否变化
     */
    boolean isStatusChanged(Long deviceId, String type, String newStatus);

    /**
     * 获取当前状态
     */
    String getStatus(Long deviceId);

    /**
     * 删除状态（设备解绑/删除时用）
     */
    void clearStatus(Long deviceId);
}