package com.goldenwater.slgc.service.efinder;

import com.goldenwater.slgc.entity.efinder.DocFile;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;

public interface IDocFileService {
    /**
     * 查询文件列表
     */
    List<DocFile> selectList(DocFile docFile);

    /**
     * 根据主键查询文件
     */
    DocFile selectById(Long id);

    /**
     * 下载文件
     */
    void download(Long id, HttpServletResponse response);

    /**
     * 上传文件
     */
    String upload(MultipartFile file, Long pid);

    /**
     * 新增文件
     */
    int insert(DocFile docFile);

    /**
     * 修改文件
     */
    int update(DocFile docFile);

    /**
     * 删除文件
     */
    int deleteById(Long id);

    /**
     * 批量删除文件
     */
    int deleteByIds(Long[] ids);

    /**
     * 根据父ID查询文件列表
     */
    List<DocFile> selectByParentId(Long parentId);

    /**
     * 读取文本文件内容
     */
    String readTextContent(Long id, String charset);

    /**
     * 获取ZIP文件条目列表
     */
    List<Map<String, Object>> listZipEntries(Long id);

    /**
     * 下载ZIP文件中的单个文件
     */
    void downloadZipEntry(Long id, String entryPath, HttpServletResponse response);

    /**
     * 流式播放媒体文件
     */
    void streamMedia(Long id, HttpServletResponse response);
}
