package org.dromara.chat.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.dromara.chat.domain.ChatModel;
import org.dromara.chat.domain.bo.ChatModelBo;
import org.dromara.chat.domain.vo.ChatModelVo;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;

import java.util.Collection;
import java.util.List;

/**
 * 聊天模型Service接口
 *
 * @author pengles
 */
public interface ChatModelService extends IService<ChatModel> {

    /**
     * 查询聊天模型
     */
    ChatModelVo queryById(Long id);

    /**
     * 查询聊天模型列表
     */
    TableDataInfo<ChatModelVo> queryPageList(ChatModelBo bo, PageQuery pageQuery);

    /**
     * 查询聊天模型列表
     */
    List<ChatModelVo> queryList(ChatModelBo bo);

    /**
     * 新增聊天模型
     */
    Boolean insertByBo(ChatModelBo bo);

    /**
     * 修改聊天模型
     */
    Boolean updateByBo(ChatModelBo bo);

    /**
     * 校验并批量删除聊天模型
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 根据模型分类查询模型列表
     */
    List<ChatModelVo> queryListByCategory(String category);

    /**
     * 根据模型名称查询模型
     */
    ChatModelVo queryByModelName(String modelName);

    /**
     * 查询显示的模型列表
     */
    List<ChatModelVo> queryShowModelList();

    /**
     * 根据模型类型查询模型列表
     */
    List<ChatModelVo> queryListByModelType(String modelType);

}