package org.tio.sitexxx.service.service.jpush.huawei.messaging;

import org.tio.sitexxx.service.service.jpush.huawei.exception.HuaweiMesssagingException;
import org.tio.sitexxx.service.service.jpush.huawei.message.Message;
import org.tio.sitexxx.service.service.jpush.huawei.message.TopicMessage;
import org.tio.sitexxx.service.service.jpush.huawei.response.SendResponse;

/**
 * <pre>
 *    @author : vagrancy
 *    e-mail : 18050829067@163.com
 *    time   : 2025-02-21 10:35
 *    desc   :
 * </pre>
 */
public interface HuaweiMessageClient {
    /**
     * Sends the given message with HCM.
     *
     * @param message      message {@link Message}
     * @param validateOnly A boolean indicating whether to send message for test. or not.
     * @return {@link SendResponse}.
     * @throws HuaweiMesssagingException
     */
    SendResponse send(Message message, boolean validateOnly, String accessToken) throws HuaweiMesssagingException;

    SendResponse send(TopicMessage message, String operation, String accessToken) throws HuaweiMesssagingException;

}
