package vip.xiaonuo.coldchain.core.service.dataprocess.handler;

import vip.xiaonuo.coldchain.core.service.dataprocess.model.ColdChainMessageData;
import vip.xiaonuo.coldchain.core.service.dataprocess.model.RenKeColdChainMessageData;

/**
 * @author jackzhou
 * @version 1.0
 * @project jfcloud-coldchain
 * @description
 * @date 2024/11/12 13:02:41
 */
public interface ColdChainDataHandler<T extends ColdChainMessageData> {

    /**
     * 处理实时数据
     */
    boolean handleRealTimeData(T data);

    /**
     * 处理缓存数据
     */
    boolean handleStoreData(RenKeColdChainMessageData renKeColdChainMessageData);

    /**
     * 注册处理器到 HandlerRegistry
     */
    default void registerHandler() {
        ColdChainHandlerRegistry.registerHandler(getDataClass(), this);
    }

    /**
     * 获取处理的数据类型，使用泛型反射来获取实际类型
     */
    Class<T> getDataClass();


    /**
     * 设备登录
     */
    void login(T data);

    /**
     * 处理心跳
     */
    void heartbeat(T data);


}
