package cn.axzo.msg.center.message.service;

import cn.axzo.msg.center.domain.entity.BizEventMapping;
import cn.axzo.msg.center.domain.entity.MessageBaseTemplate;
import cn.axzo.msg.center.message.domain.param.BizEventMappingQueryParam;
import cn.axzo.msg.center.message.domain.param.BizEventSaveOrUpdateParam;
import cn.axzo.msg.center.service.bizevent.request.BizEventMappingPageResponse;
import cn.axzo.msg.center.service.bizevent.request.BizEventMappingRemoveRequest;
import cn.axzo.msg.center.service.bizevent.request.ReachDto;
import cn.azxo.framework.common.model.Page;
import java.util.Optional;

/**
 * @author syl
 * @date 2023/12/14
 */
public interface BizEventMappingService {

    String create(BizEventSaveOrUpdateParam param);

    void update(BizEventSaveOrUpdateParam param);

    Page<BizEventMappingPageResponse> page(BizEventMappingQueryParam param);

    void remove(BizEventMappingRemoveRequest param);

    Optional<BizEventMapping> getByBizCode(String bizCode);

    MessageBaseTemplate checkTemplateCodeByBizEvent(ReachDto reachConfig);
}
