package com.aegis.notification.mapper;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.aegis.notification.domain.NotificationTemplate;

/**
 * 通知模板Mapper接口
 * 
 * @author aegis
 */
public interface NotificationTemplateMapper {

    /**
     * 查询通知模板列表
     * 
     * @param template 通知模板信息
     * @return 通知模板集合
     */
    public List<NotificationTemplate> selectNotificationTemplateList(NotificationTemplate template);

    /**
     * 根据ID查询通知模板
     * 
     * @param id 模板ID
     * @return 通知模板信息
     */
    public NotificationTemplate selectNotificationTemplateById(Long id);

    /**
     * 根据编码查询通知模板
     * 
     * @param templateCode 模板编码
     * @return 通知模板信息
     */
    public NotificationTemplate selectNotificationTemplateByCode(String templateCode);

    /**
     * 新增通知模板
     * 
     * @param template 通知模板信息
     * @return 结果
     */
    public int insertNotificationTemplate(NotificationTemplate template);

    /**
     * 修改通知模板
     * 
     * @param template 通知模板信息
     * @return 结果
     */
    public int updateNotificationTemplate(NotificationTemplate template);

    /**
     * 删除通知模板
     * 
     * @param id 模板ID
     * @return 结果
     */
    public int deleteNotificationTemplateById(Long id);

    /**
     * 批量删除通知模板
     * 
     * @param ids 需要删除的模板ID数组
     * @return 结果
     */
    public int deleteNotificationTemplateByIds(Long[] ids);

    /**
     * 校验模板编码是否唯一
     * 
     * @param templateCode 模板编码
     * @param id 模板ID（更新时排除自己）
     * @return 结果
     */
    public NotificationTemplate checkTemplateCodeUnique(@Param("templateCode") String templateCode, @Param("id") Long id);
}