content: package org.ruoyi.service;
  
  
  import org.ruoyi.core.page.PageQuery;
  import org.ruoyi.core.page.TableDataInfo;
  import org.ruoyi.domain.ChatModel;
  import org.ruoyi.domain.bo.ChatModelBo;
  import org.ruoyi.domain.vo.ChatModelVo;
  
  import java.util.Collection;
  import java.util.List;
  
  /**
   * 聊天模型Service接口
   *
   * @author ageerle
   * @date 2025-04-08
   */
  public interface IChatModelService {
  
      /**
       * 查询聊天模型
       */
      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);
  
  
      /**
       * 通过模型名称获取模型信息
       */
      ChatModelVo selectModelByName(String modelName);
      /**
       * 通过模型分类获取模型信息
       */
      ChatModelVo selectModelByCategory(String image);
      
      /**
       * 通过模型分类获取优先级最高的模型信息
       */
      ChatModelVo selectModelByCategoryWithHighestPriority(String category);
      
      /**
       * 在同一分类下，查找优先级小于当前优先级的最高优先级模型（用于降级）。
       */
      ChatModelVo selectFallbackModelByCategoryAndLessPriority(String category, Integer currentPriority);
      
      /**
       * 获取ppt模型信息
       */
      ChatModel getPPT();
  
  }
  