package com.rj.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.rj.entity.KnowledgeBase;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 知识库管理表 服务类
 * </p>
 *
 * @author 李中华 ,spllzh
 * @since 2025-01-27
 */
public interface IKnowledgeBaseService extends IService<KnowledgeBase> {

    /**
     * 新增知识
     * @param knowledgeBase 知识信息
     * @return 操作结果
     */
    Map<String, Object> addKnowledge(KnowledgeBase knowledgeBase);

    /**
     * 根据ID查询知识（增加浏览次数）
     * @param id 知识ID
     * @return 知识信息
     */
    Map<String, Object> getKnowledgeById(String id);

    /**
     * 分页查询知识列表
     * @param current 页码
     * @param size 每页大小
     * @param title 知识标题
     * @param category 知识分类
     * @param industry 应用行业
     * @param creator 创建人
     * @param status 状态
     * @return 分页结果
     */
    Map<String, Object> getKnowledgeList(Integer current, Integer size, String title, 
                                        String category, String industry, String creator, String status);

    /**
     * 更新知识信息
     * @param knowledgeBase 知识信息
     * @return 操作结果
     */
    Map<String, Object> updateKnowledge(KnowledgeBase knowledgeBase);

    /**
     * 根据ID删除知识
     * @param id 知识ID
     * @return 操作结果
     */
    Map<String, Object> deleteKnowledge(String id);

    /**
     * 批量删除知识
     * @param ids 知识ID列表
     * @return 操作结果
     */
    Map<String, Object> batchDeleteKnowledge(List<String> ids);

    /**
     * 点赞知识
     * @param id 知识ID
     * @return 操作结果
     */
    Map<String, Object> likeKnowledge(String id);

    /**
     * 置顶/取消置顶知识
     * @param id 知识ID
     * @return 操作结果
     */
    Map<String, Object> toggleTopKnowledge(String id);

    /**
     * 获取知识统计信息
     * @return 统计信息
     */
    Map<String, Object> getKnowledgeStatistics();

    /**
     * 获取分类列表
     * @return 分类列表
     */
    Map<String, Object> getCategories();

    /**
     * 获取行业列表
     * @return 行业列表
     */
    Map<String, Object> getIndustries();
}
