package com.yaoyicloud.service;

import com.yaoyicloud.constant.enums.ModuleType;
import com.yaoyicloud.entity.ReportGenerationResult;

import java.io.ByteArrayOutputStream;


public interface CsoReportService {

    /**
     * 创建CSO检查报告
     *
     * @param data 报告生成所需的业务数据（JSON格式字符串，包含检查项、结果等核心信息）
     * @param relationId 关联ID，用于标识当前报告所属的业务对象 用于相同id下文件合并
     * @param moduleType 模块类型枚举，指定当前报告对应的业务模块
     * @param mergeflag 是否合并报告标识：true-需要将当前报告与同会话下其他报告合并；false-仅生成单独报告
     * @return 报告生成结果对象，包含单独报告路径、合并报告路径（若合并）及合并状态
     * @throws Exception 当报告生成过程中出现异常（如文件操作失败、数据格式错误等）时抛出
     */
    ReportGenerationResult createCsoCheckReport(
            String data,
            Long relationId,
            ModuleType moduleType,
            Boolean mergeflag
    ) throws Exception;


    ByteArrayOutputStream saveToTempFile(byte[] fileBytes);
}
