package com.ruoyi.ccdi.project.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.ccdi.project.domain.entity.CcdiBankTagResult;
import com.ruoyi.ccdi.project.domain.vo.CcdiBankStatementHitTagVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 流水标签结果 Mapper
 */
public interface CcdiBankTagResultMapper extends BaseMapper<CcdiBankTagResult> {

    /**
     * 按项目和可选模型删除历史结果
     *
     * @param projectId 项目ID
     * @param modelCode 模型编码
     * @return 删除条数
     */
    int deleteByProjectAndModel(@Param("projectId") Long projectId, @Param("modelCode") String modelCode);

    /**
     * 按项目和流水ID批量查询命中的异常标签
     *
     * @param projectId 项目ID
     * @param bankStatementIds 流水ID列表
     * @param modelCode 模型编码
     * @param suspiciousType 预警类型
     * @return 命中的异常标签列表
     */
    List<CcdiBankStatementHitTagVO> selectStatementTagsByProjectAndStatementIds(
            @Param("projectId") Long projectId,
            @Param("bankStatementIds") List<Long> bankStatementIds,
            @Param("modelCode") String modelCode,
            @Param("suspiciousType") String suspiciousType
    );

    /**
     * 批量插入结果
     *
     * @param list 结果列表
     * @return 插入条数
     */
    int insertBatch(@Param("list") List<CcdiBankTagResult> list);
}
