package com.njcn.cloud.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.cloud.pojo.dto.AppEventInfo;
import com.njcn.cloud.pojo.dto.AppReport;
import com.njcn.cloud.pojo.param.AppReportParam;
import com.njcn.cloud.pojo.vo.ReportVO;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;


/**
 * <p>
 * 报告信息 服务类
 * </p>
 *
 * @author wr
 * @since 2023-11-02
 */
public interface IAppReportService extends IService<AppReport> {

    /**
     * @param userId
     * @param eventDetailIndex
     * @Description: 报告申请
     * @return: int
     * @Author: wr
     * @Date: 2023/11/2 14:38
     */
    String eventDetailReportApply(String userId, String eventDetailIndex) throws Exception;

    /**
     * @param userId
     * @param eventDetailIndex
     * @Description: 报告下载入口
     * @return: com.njcn.cloud.pojo.dto.AppEventInfo
     * @Author: wr
     * @Date: 2023/11/3 8:53
     */
    AppEventInfo getDownLoadPath(String userId, String eventDetailIndex);

    /**
     * @param param
     * @Description: 获取报告列表
     * @return: com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.njcn.cloud.pojo.vo.ReportVO>
     * @Author: wr
     * @Date: 2023/12/21 15:34
     */
    Page<ReportVO> reportList(AppReportParam param);

    /**
     * @param param
     * @Description: 生成自定义报告
     * @return: int
     * @Author: wr
     * @Date: 2023/12/22 11:08
     */
    int customReport(AppReportParam param);

}
