/*
 * 文 件 名:  OpEnergyStrategyTriggerMapper
 * 版    权:  华设设计集团股份有限公司
 * 描    述:  <描述>
 * 修 改 人:  lvwenbin
 * 修改时间:  2025/11/27
 * 跟踪单号:  <跟踪单号>
 * 修改单号:  <修改单号>
 * 修改内容:  <修改内容>
 */
package com.ruoyi.ems.mapper;

import com.ruoyi.ems.domain.OpEnergyStrategyTrigger;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 能源策略触发器Mapper接口
 * <功能详细描述>
 *
 * @author lvwenbin
 * @version [版本号, 2025/11/27]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public interface OpEnergyStrategyTriggerMapper {
    /**
     * 查询策略触发器列表
     * @param strategyCode 策略代码
     * @return 触发器列表
     */
    List<OpEnergyStrategyTrigger> selectByStrategyCode(@Param("strategyCode") String strategyCode);

    /**
     * 根据源对象和事件查询触发器
     * @param sourceObjCode 源对象代码
     * @param eventKey 事件标识
     * @return 触发器列表
     */
    List<OpEnergyStrategyTrigger> findBySourceAndEvent(
        @Param("sourceObjCode") String sourceObjCode,
        @Param("eventKey") String eventKey
    );

    /**
     * 根据源对象和属性查询触发器
     * @param sourceObjCode 源对象代码
     * @param attrKey 属性标识
     * @return 触发器列表
     */
    List<OpEnergyStrategyTrigger> findBySourceAndAttr(
        @Param("sourceObjCode") String sourceObjCode,
        @Param("attrKey") String attrKey
    );

    OpEnergyStrategyTrigger selectById(@Param("id") Long id);

    /**
     * 新增触发器
     * @param trigger 触发器
     * @return 结果
     */
    int insertTrigger(OpEnergyStrategyTrigger trigger);

    /**
     * 修改触发器
     * @param trigger 触发器
     * @return 结果
     */
    int updateTrigger(OpEnergyStrategyTrigger trigger);

    /**
     * 删除触发器
     * @param id 触发器ID
     * @return 结果
     */
    int deleteTrigger(@Param("id") Long id);

    /**
     * 批量删除触发器
     * @param ids 触发器ID数组
     * @return 结果
     */
    int deleteTriggerByIds(@Param("ids") Long[] ids);
}