package org.xyzh.ai.mapper;

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

import java.util.List;

/**
 * @description 对话数据访问层
 * @filename ChatMapper.java
 * @author yslg
 * @copyright xyzh
 * @since 2025-12-17
 */
@Mapper
public interface TbChatMapper {

    /**
     * 插入对话
     */
    int insertChat(TbChat chat);

    /**
     * 更新对话
     */
    int updateChat(TbChat chat);

    /**
     * 逻辑删除对话
     */
    int deleteChat(TbChat chat);

    /**
     * 根据ID查询对话
     */
    TbChat selectChatById(@Param("chatId") String chatId);

    /**
     * 根据智能体ID和用户ID查询对话列表
     */
    List<TbChat> selectChatList(
            @Param("agentId") String agentId,
            @Param("userId") String userId
    );

    /**
     * 分页查询对话
     */
    List<TbChat> selectChatPage(
            @Param("filter") TbChat filter,
            @Param("pageParam") PageParam pageParam
    );

    /**
     * 统计对话数量
     */
    long countChats(@Param("filter") TbChat filter);
}
