package com.haha.service;

import java.util.Map;

/**
 * 哈哈平台回调业务逻辑接口
 */
public interface HahaCallbackService {

    /**
     * 处理统一消息回调
     * 
     * @param params 回调原始参数
     */
    void handleMessage(Map<String, Object> params);

    /**
     * 处理开关门状态通知 (DEVICE_STATUS)
     */
    void handleDeviceStatus(Map<String, Object> params);

    /**
     * 处理设备在线状态通知 (ONLINE_STATUS)
     */
    void handleOnlineStatus(Map<String, Object> params);

    /**
     * 处理音量调节结果通知 (VOICE_RESULT)
     */
    void handleVoiceResult(Map<String, Object> params);

    /**
     * 处理新品审核结果回调 (CLIENT_NEW_PRODUCT)
     */
    void handleNewProductAudit(Map<String, Object> params);

    /**
     * 处理商品合并结果通知 (MERGE_PRODUCT)
     */
    void handleMergeProduct(Map<String, Object> params);

    /**
     * 处理AI识别结果通知 (ORC_RESULT)
     */
    void handleOrcResult(Map<String, Object> params);

    /**
     * 处理订单信息回调
     * 
     * @param params 订单回调参数
     */
    void handleOrderCallback(Map<String, Object> params);
    
    /**
     * 验证回调签名
     */
    boolean validateSign(Map<String, Object> params);

    /**
     * 获取订单图像（开门前后图片/视频）
     */
    Map<String, Object> getOrderMedia(String orderId, String activityId);

    /**
     * 从哈哈平台查询订单详情（用于对账补偿）
     */
    Map<String, Object> queryOrderFromHaha(String orderId, String activityId);

    /**
     * 查询回调投递状态
     */
    Map<String, Object> getCallbackInfo(String type, String actId);

    /**
     * 获取静态柜分层识别结果
     */
    Map<String, Object> getLayerRecognize(String orderId, String activityId);
}
