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

import cn.axzo.msg.center.domain.entity.MNSChannelMessageTemplate;
import cn.axzo.msg.center.domain.entity.MNSMessageTemplate;
import cn.axzo.msg.center.notices.manager.api.dto.response.TemplateParamDto;

import java.util.List;

/**
 * 消息模板处理类
 *
 * @author zhaoyong_sh
 * @see MessageTemplateManager
 * @since 2021-05-27 20:23
 */
public interface MessageTemplateManager {

  /**
   * 验证内部模板
   * @param innerTemplateNo
   * @return
   */
  MNSMessageTemplate queryAndCheckInnerTemplate(String innerTemplateNo);

  /**
   * 获取渠道模板
   * @param innerTemplateNo
   * @param channelCode
   * @return
   */
  MNSChannelMessageTemplate queryChannelTemplate(String innerTemplateNo, String channelCode);

  /**
   * 查询模板变量
   * @param innerTemplateNo
   * @return
   */
  List<TemplateParamDto> queryTemplateParam(String innerTemplateNo);

  /**
   * 查询内部模板编码与渠道模板编码的映射的渠道编码列表
   *
   * @param innerTemplateNo 内部模板编码
   * @return 映射的渠道编码集合
   */
  List<String> listChannelCodes(String innerTemplateNo);

  int changeChannelTemplateCode(String channelCode, String srcTemplateCode, String destTemplateCode);
}
