package com.test.bijihoudaun.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.test.bijihoudaun.entity.MarkdownFile;
import com.test.bijihoudaun.entity.MarkdownFileVO;

import java.util.List;

public interface MarkdownFileService extends IService<MarkdownFile> {

    /**
     * 更新Markdown内容
     * @return 更新后的文件对象
     */
    MarkdownFile updateMarkdownContent(MarkdownFile markdownFile);
    
    /**
     * 根据ID获取Markdown文件
     * @param id 文件ID
     * @return Markdown文件对象
     */
    MarkdownFile getMarkdownById(Long id);

    
    /**
     * 根据分组ID获取Markdown文件
     * @param groupingId 分组ID
     * @return 文件列表
     */
    List<MarkdownFileVO> getFilesByGroupingId(String groupingId);
    
    /**
     * 删除Markdown文件
     * @param id 文件ID
     * @return 是否删除成功
     */
    boolean deleteMarkdownFile(Long id);

    List<MarkdownFile> test();

    /**
     * 获取所有Markdown文件
     * @return 文件列表
     */
    List<MarkdownFile> getAllMarkdownFiles();

    /**
     * 根据标题模糊搜索
     * @param keyword 关键词
     * @return 文件列表
     */
    List<MarkdownFile> searchByTitle(String keyword);

    /**
     * 更新Markdown文件标题
     * @param id 文件ID
     * @param title 新标题
     * @return 更新后的文件对象
     */
    MarkdownFile updateMarkdownTitle(Long id, String title);

    /**
     * 获取最近更新的笔记
     * @param limit 数量
     * @return 文件列表
     */
    List<MarkdownFileVO> getRecentFiles(int limit);
}
