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.TbChatRoomSummaryDTO;
import org.xyzh.common.core.page.PageParam;

/**
 * @description    聊天室总结数据访问层
 * @filename    TbChatRoomSummaryMapper.java
 * @author    system
 * @copyright xyzh
 * @since 2026-01-01
 */
@Mapper
public interface TbChatRoomSummaryMapper {

    /**
     * 插入聊天室总结
     */
    int insertChatRoomSummary(TbChatRoomSummaryDTO summary);

    /**
     * 更新聊天室总结（只更新非null字段）
     */
    int updateChatRoomSummary(TbChatRoomSummaryDTO summary);

    /**
     * 根据ID查询聊天室总结
     */
    TbChatRoomSummaryDTO selectChatRoomSummaryById(@Param("summaryId") String summaryId);

    /**
     * 根据聊天室ID查询最新一条总结
     */
    TbChatRoomSummaryDTO selectLatestSummaryByRoomId(@Param("roomId") String roomId);

    /**
     * 查询聊天室总结列表
     */
    List<TbChatRoomSummaryDTO> selectChatRoomSummaryList(@Param("filter") TbChatRoomSummaryDTO filter);

    /**
     * 分页查询聊天室总结
     */
    List<TbChatRoomSummaryDTO> selectChatRoomSummaryPage(@Param("filter") TbChatRoomSummaryDTO filter, @Param("pageParam") PageParam pageParam);

    /**
     * 统计聊天室总结数量
     */
    long countChatRoomSummaries(@Param("filter") TbChatRoomSummaryDTO filter);

    /**
     * 删除聊天室总结（逻辑删除）
     */
    int deleteChatRoomSummary(@Param("summaryId") String summaryId);

}
