package com.dora.mapper;

import com.dora.entity.WechatKeywordReply;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 微信关键词回复配置Mapper接口
 * 
 * @author dora
 * @date 2024/12/01
 */
@Mapper
public interface WechatKeywordReplyMapper {

    /**
     * 根据ID查询关键词回复
     */
    WechatKeywordReply selectById(@Param("id") Long id);

    /**
     * 根据关键词查询回复配置
     */
    List<WechatKeywordReply> selectByKeyword(@Param("keyword") String keyword);

    /**
     * 查询所有启用的关键词回复（按优先级排序）
     */
    List<WechatKeywordReply> selectAllEnabled();

    /**
     * 插入关键词回复
     */
    int insert(WechatKeywordReply keywordReply);

    /**
     * 更新关键词回复
     */
    int updateById(WechatKeywordReply keywordReply);

    /**
     * 根据ID删除关键词回复
     */
    int deleteById(@Param("id") Long id);

    /**
     * 根据模板ID删除关键词回复
     */
    int deleteByTemplateId(@Param("templateId") Long templateId);

    /**
     * 批量更新关键词回复状态
     */
    int updateStatusBatch(@Param("ids") List<Long> ids, @Param("isEnabled") Integer isEnabled);

    /**
     * 分页查询关键词回复列表
     */
    List<WechatKeywordReply> selectKeywordReplyList(@Param("keyword") String keyword,
                                                   @Param("matchType") String matchType,
                                                   @Param("isEnabled") Integer isEnabled,
                                                   @Param("offset") int offset,
                                                   @Param("size") int size);

    /**
     * 统计关键词回复列表总数
     */
    int countKeywordReplyList(@Param("keyword") String keyword,
                             @Param("matchType") String matchType,
                             @Param("isEnabled") Integer isEnabled);
}
