package com.agileboot.reader.service;

import com.agileboot.common.mybatis.core.page.PageR;
import com.agileboot.reader.dto.TextFileQueryDTO;
import com.agileboot.reader.vo.TextFileContentVO;
import com.agileboot.reader.vo.TextFileVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 文本文件服务接口
 */
public interface ITextFileService {

    /**
     * 上传文本文件
     */
    Long uploadFile(MultipartFile file, String description);

    /**
     * 分页查询文本文件列表
     */
    PageR<TextFileVO> getFileList(TextFileQueryDTO query);

    /**
     * 获取所有文本文件列表（用户端）
     */
    List<TextFileVO> getAllFiles();

    /**
     * 获取文件详情
     */
    TextFileVO getFileDetail(Long fileId);

    /**
     * 读取文件内容
     */
    TextFileContentVO readFileContent(Long fileId);

    /**
     * 删除文件
     */
    boolean deleteFile(Long fileId);

    /**
     * 批量删除文件
     */
    boolean deleteBatch(List<Long> fileIds);

    /**
     * 更新文件状态
     */
    boolean updateStatus(Long fileId, Integer status);
}


