package com.ruoyi.notification.mapper;

import java.util.List;

import com.ruoyi.notification.domain.NotificationTemplate;

/**
 * 通知模板Mapper接口
 * 
 * @author ruoyi
 * @date 2025-12-19
 */
public interface NotificationTemplateMapper 
{
    /**
     * 查询通知模板
     * 
     * @param templateId 通知模板主键
     * @return 通知模板
     */
    public NotificationTemplate selectNotificationTemplateByTemplateId(Long templateId);

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

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

    /**
     * 根据业务类型查询通知模板
     * 
     * @param businessType 业务类型
     * @return 通知模板集合
     */
    public List<NotificationTemplate> selectNotificationTemplateByBusinessType(String businessType);

    /**
     * 查询活跃的通知模板
     * 
     * @return 通知模板集合
     */
    public List<NotificationTemplate> selectActiveNotificationTemplates();

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

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

    /**
     * 更新模板状态
     * 
     * @param templateId 模板ID
     * @param templateStatus 模板状态
     * @return 结果
     */
    public int updateTemplateStatus(Long templateId, String templateStatus);

    /**
     * 删除通知模板
     * 
     * @param templateId 通知模板主键
     * @return 结果
     */
    public int deleteNotificationTemplateByTemplateId(Long templateId);

    /**
     * 批量删除通知模板
     * 
     * @param templateIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteNotificationTemplateByTemplateIds(Long[] templateIds);

    /**
     * 检查模板编码是否存在
     * 
     * @param templateCode 模板编码
     * @return 结果
     */
    public int checkTemplateCodeExists(String templateCode);
}