package com.cy.guoyan.admin.module.ai.service.chatsession;

import java.io.IOException;
import javax.validation.*;
import com.cy.guoyan.admin.module.ai.controller.admin.chatsession.vo.ChatSessionPageReqVO;
import com.cy.guoyan.admin.module.ai.controller.admin.chatsession.vo.ChatSessionSaveReqVO;
import com.cy.guoyan.admin.module.ai.dal.dataobject.chatsession.ChatSessionDO;
import com.cy.guoyan.admin.framework.common.pojo.PageResult;

/**
 * AI聊天会话 Service 接口
 *
 * @author 管理员
 */
public interface ChatSessionService {

    /**
     * 创建AI聊天会话
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createChatSession(@Valid ChatSessionSaveReqVO createReqVO);

    /**
     * 更新AI聊天会话
     *
     * @param updateReqVO 更新信息
     */
    void updateChatSession(@Valid ChatSessionSaveReqVO updateReqVO);

    /**
     * 删除AI聊天会话
     *
     * @param id 编号
     */
    void deleteChatSession(Long id) throws IOException;

    /**
     * 获得AI聊天会话
     *
     * @param id 编号
     * @return AI聊天会话
     */
    ChatSessionDO getChatSession(Long id);

    /**
     * 获得AI聊天会话分页
     *
     * @param pageReqVO 分页查询
     * @return AI聊天会话分页
     */
    PageResult<ChatSessionDO> getChatSessionPage(ChatSessionPageReqVO pageReqVO);

}