package com.yushu.system.service;

import com.yushu.system.domain.SysMailTemplate;
import java.util.List;
import java.util.Map;

/**
 * 邮件模板Service接口
 * 
 * @author yushu
 * @date 2024-12-13
 */
public interface ISysMailTemplateService {
    
    /**
     * 查询邮件模板
     */
    SysMailTemplate selectSysMailTemplateByTemplateId(Long templateId);

    /**
     * 根据模板代码查询
     */
    SysMailTemplate selectSysMailTemplateByCode(String templateCode);

    /**
     * 查询邮件模板列表
     */
    List<SysMailTemplate> selectSysMailTemplateList(SysMailTemplate sysMailTemplate);

    /**
     * 新增邮件模板
     */
    int insertSysMailTemplate(SysMailTemplate sysMailTemplate);

    /**
     * 修改邮件模板
     */
    int updateSysMailTemplate(SysMailTemplate sysMailTemplate);

    /**
     * 批量删除邮件模板
     */
    int deleteSysMailTemplateByTemplateIds(Long[] templateIds);

    /**
     * 删除邮件模板信息
     */
    int deleteSysMailTemplateByTemplateId(Long templateId);

    /**
     * 校验模板代码是否唯一
     */
    boolean checkTemplateCodeUnique(SysMailTemplate sysMailTemplate);

    /**
     * 渲染模板内容
     */
    String renderTemplate(String templateCode, Map<String, Object> variables);

    /**
     * 预览模板
     */
    String previewTemplate(Long templateId, Map<String, Object> variables);
}
