package cn.axzo.msg.center.inside.notices.service;

import cn.axzo.msg.center.api.request.CreateTemplateReq;
import cn.axzo.msg.center.api.request.UpdateTemplateAudioFileReq;
import cn.axzo.msg.center.api.request.UpdateTemplateReq;
import cn.axzo.msg.center.domain.dto.SearchTemplateDTO;
import cn.axzo.msg.center.domain.dto.SyncRelationDataDTO;
import cn.axzo.msg.center.domain.entity.MessageRelation;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;
import java.util.Set;

/**
 * 模块与模板的关系表(MessageRelation)表服务接口
 *
 * @author zhangran
 * @since 2022-03-28 14:59:16
 */
public interface MessageRelationService {


  List<MessageRelation> getAllRelations();

  Boolean hasRelationGtUpdateAt(LocalDateTime updateAt);

  void createTemplate(CreateTemplateReq req);

  void updateTemplate(UpdateTemplateReq req);

  IPage<MessageRelation> page(SearchTemplateDTO dto);

  MessageRelation getRelationById(Long id);

  List<MessageRelation> getRelationByIds(Set<Long> relationIds);

  void delete(Long id);

  void syncData(List<SyncRelationDataDTO> dtoList);

  List<Long> listRelationIds(Collection<Long> moduleIds);

  void updateTemplateAudioFile(UpdateTemplateAudioFileReq req);
}
