package com.yida.data.common.core.file;

import com.yida.data.common.core.file.common.DownloadFileChunk;
import com.yida.data.common.core.file.common.export.SelectExportData;

import javax.servlet.http.HttpServletResponse;

/**
 * 导出大文件默认interface
 * 进度条类型
 * zip文件
 *
 * @author ZYJ
 * @date 2023/10/18 15:56
 */
public interface IExportLargeClient<T extends SelectExportData> {

    /**
     * 导出大文件数据
     *
     * @param t 导出文件查询类
     * @author ZYJ
     * @date 2023/10/20 11:10
     */
    void exportLargeData(T t);

    /**
     * 查询导出进度
     *
     * @param key 导出唯一标识
     * @return java.lang.Object
     * @author ZYJ
     * @date 2023/12/12 14:06
     */
    Object selectExportInfo(String key);

    /**
     * 分片下载
     *
     * @param dto      分片下载请求类
     * @param response response返回流信息
     * @author ZYJ
     * @date 2023/10/19 16:41
     */
    void downLoadChunk(DownloadFileChunk dto, HttpServletResponse response);
}
