package com.koobietech.eas.service;

import com.koobietech.eas.dao.dto.ArchivesDto;
import com.koobietech.eas.mbg.model.EasArcTlsStudents;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xwpf.usermodel.XWPFDocument;

import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;

/**
 * @author lc
 */
public interface EasArchivesFilesService {
    /**
     * 获取学生档案文件
     * @param studentNumber 学号
     * @return 学生档案文件
     */
    EasArcTlsStudents getArchiveStudentsFile(String studentNumber);

    /**
     * 保存学生考勤文件
     * @param studentNumber
     * @param document
     * @return
     */
    ArchivesDto saveArchiveAttendanceFile(String studentNumber, XWPFDocument document);
    /**
     * 保存学生评测文件
     * @param studentNumber
     * @param document
     * @return
     */
    ArchivesDto saveArchiveScoresFile(String studentNumber, XWPFDocument document);

    /**
     * 保存学生档案文件
     * @param studentNumber
     * @param document
     * @return
     */
    ArchivesDto saveArchiveStudentsFile(String studentNumber, XWPFDocument document);

    /**
     * 保存其他档案文件
     * @param studentNumber
     * @param stream
     * @param type
     * @return
     */
    ArchivesDto saveArchiveFile(String studentNumber, InputStream stream, String type);

    /**
     * 保存 Excel
     * @param studentNumber
     * @param workbook
     * @return
     */
    ArchivesDto saveArchiveFile(String studentNumber, Workbook workbook);

    /**
     * 获取文件
     * @param filePath
     * @return
     */
    FileInputStream getArchiveFile(String filePath);

    /**
     * 获取Resource文件
     * @param filePath
     * @return
     */
    InputStream getResourceStream(String filePath);

    /**
     * 删除文件
     * @param filePath
     * @return
     */
    boolean deleteArchiveFile(String filePath);

    /**
     * 备份档案文件
     * @param filePath
     * @return
     */
    boolean backupArchiveFile(String filePath);

    /**
     * 获取档案连接Url地址
     * @param filePath
     * @return
     */
    String getArchiveUrl(String filePath);

}
