package com.fs.wxcid.service;

import com.fs.wxcid.dto.callback.ReturnMessage;
import com.fs.wxcid.dto.common.ApiResponse;
import com.fs.wxcid.dto.callback.CallbackConfigRequest;

import java.util.Map;

public interface MessageCallbackService {

    /**
     * 接收消息回调内容
     * <p>对应接口：POST /message/Callback</p>
     *
     * @param callback 回调内容
     * @return 统一响应结果
     */
    ReturnMessage returnMessage(Map<String, Object> callback);
    /**
     * 设置消息回调地址并启用/禁用推送
     * <p>对应接口：POST /message/SetCallback</p>
     *
     * @param authKey     账号唯一标识
     * @param config 回调配置（URL + 启用状态）
     * @return 统一响应结果
     */
    ApiResponse setCallback(String authKey, CallbackConfigRequest config);

    /**
     * 获取当前账号的消息回调配置
     * <p>对应接口：GET /message/GetCallback</p>
     *
     * @param authKey 账号唯一标识
     * @return 包含 CallbackURL 和 Enabled 状态的响应
     */
    ApiResponse getCallback(String authKey);

    /**
     * 删除（清空）消息回调配置
     * <p>执行后将不再推送任何消息到原回调地址</p>
     * <p>对应接口：GET /message/DeleteCallback</p>
     *
     * @param authKey 账号唯一标识
     * @return 操作结果
     */
    ApiResponse deleteCallback(String authKey);
}