package org.xyzh.workcase.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.xyzh.api.workcase.dto.TbWordCloudDTO;
import org.xyzh.common.core.page.PageParam;

/**
 * @description    词云数据访问层
 * @filename    TbWordCloudMapper.java
 * @author    yslg
 * @copyright xyzh
 * @since 2025-12-19
 */
@Mapper
public interface TbWordCloudMapper {

    /**
     * 插入词云
     */
    int insertWordCloud(TbWordCloudDTO wordCloud);

    /**
     * 更新词云（只更新非null字段）
     */
    int updateWordCloud(TbWordCloudDTO wordCloud);

    /**
     * 根据ID查询词云
     */
    TbWordCloudDTO selectWordCloudById(@Param("wordId") String wordId);

    /**
     * 查询单条词云（用于更新词频等场景）
     */
    TbWordCloudDTO selectWordCloudOne(@Param("filter") TbWordCloudDTO filter);

    /**
     * 查询词云列表
     */
    List<TbWordCloudDTO> selectWordCloudList(@Param("filter") TbWordCloudDTO filter);

    /**
     * 分页查询词云
     */
    List<TbWordCloudDTO> selectWordCloudPage(@Param("filter") TbWordCloudDTO filter, @Param("pageParam") PageParam pageParam);

    /**
     * 统计词云数量
     */
    long countWordClouds(@Param("filter") TbWordCloudDTO filter);

    /**
     * 增加词频
     */
    int incrementFrequency(@Param("wordId") String wordId, @Param("count") int count);

}
