package com.ruoyi.device.mqtt.handler.decoder.json;

import com.ruoyi.device.mqtt.domain.BaseJsonBody;
import com.ruoyi.device.mqtt.enums.CmdTypeEnum;
import com.ruoyi.device.mqtt.vo.CommonHeader;
import com.ruoyi.device.mqtt.vo.CommonTopic;

/**
 * JSON Body 按 cmdUpType 分发的业务处理器
 *
 * @author lwm
 */
public interface IJsonCmdUpHandler
{
    /**
     * @param topic     上行 topic 解析结果
     * @param header    报文头
     * @param bodyJson  UTF-8 JSON 原文
     * @param cmd       已匹配的上行命令枚举
     */
    BaseJsonBody handle(CommonTopic topic, CommonHeader header, String bodyJson, CmdTypeEnum cmd);
}
