package com.smppw.modaq.application.service;

import com.smppw.modaq.domain.dto.MailboxInfoDTO;
import com.smppw.modaq.domain.dto.UploadReportParams;
import com.smppw.modaq.domain.dto.UploadReportResult;
import org.springframework.web.multipart.MultipartFile;

import java.util.Date;
import java.util.List;

/**
 * @author mozuwen
 * @date 2024-09-12
 * @description 邮件解析服务对外接口
 */
public interface EmailParseApiService {

    void parseEmail(Date startDate, Date endDate, List<String> folderNames, List<Integer> emailTypes);

    /**
     * 解析指定邮箱指定时间范围内的邮件
     *
     * @param mailboxInfoDTO 邮箱配置信息
     * @param startDate      邮件起始日期(yyyy-MM-dd HH:mm:ss)
     * @param endDate        邮件截止日期(yyyy-MM-dd HH:mm:ss, 为null,将解析邮件日期小于等于startDate的当天邮件)
     * @param folderNames    文件夹
     * @param emailTypes     支持的解析类型
     */
    void parseEmail(MailboxInfoDTO mailboxInfoDTO, Date startDate, Date endDate, List<String> folderNames, List<Integer> emailTypes);

    /**
     * 批量文件解析（文件路径）
     *
     * @param params 上传参数
     * @return /
     */
    List<UploadReportResult> uploadReport(UploadReportParams params);

    /**
     * 批量上传文件解析
     *
     * @param files 文件流对象
     * @return /
     */
    List<UploadReportResult> batchUploadReport(MultipartFile[] files);

//    /**
//     * 重新解析指定邮件
//     *
//     * @param emailId 邮件id
//     */
//    void reparseEmail(Integer emailId);
//
//
//    /**
//     * 重新解析指定估值表文件
//     *
//     * @param fileIdList 文件id列表
//     */
//    void reparseFile(List<Integer> fileIdList);

}
