package cn.axzo.msg.center.notices.manager.api;

import cn.axzo.msg.center.domain.entity.MNSBatchMessage;
import cn.axzo.msg.center.notices.common.lang.Page;
import cn.axzo.msg.center.notices.manager.api.dto.request.BatchMessageRequestDto;

/**
 * @Auther: szg
 * @Date: 2021/8/9 17:16
 * @Description:
 */
public interface BatchMessageManger {

  /**
   * 根据条件分页查询发送批次
   * @param dto
   * @return
   */
  Page<MNSBatchMessage> queryByPage(BatchMessageRequestDto dto);

  /**
   * 查询批量消息
   * @param batchNo
   * @return
   */
  MNSBatchMessage queryBatchMessage(String batchNo);

  /**
   * 发送批次拆分消息
   * @param batchMessage
   */
  boolean batchMessageSplitToMessage(MNSBatchMessage batchMessage);

  /**
   * 按照批次发送消息、更新状态和回执单号
   * @param batchMessage
   */
  void sendBatchMessageAndHandleReceipt(MNSBatchMessage batchMessage);
}
