package cd.casic.ci.process.process.service.report;

import cd.casic.ci.process.dto.req.report.ReportAssetTaskReq;
import cd.casic.ci.process.dto.req.report.ReportDeleteReq;
import cd.casic.ci.process.dto.req.report.ReportInfoQueryReq;
import cd.casic.ci.process.dto.resp.report.*;
import cd.casic.ci.process.process.dataObject.base.BaseIdPageReq;
import cd.casic.ci.process.process.dataObject.base.BaseIdReq;
import cd.casic.framework.commons.pojo.PageResult;
import jakarta.validation.Valid;
import org.springframework.http.ResponseEntity;

import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.util.List;

/**
 * @author HopeLi
 * @version v1.0
 * @ClassName TargetVersionService
 * @Date: 2025/5/17 10:20
 * @Description:
 */
public interface ReportService{
    PageResult<ReportResp> findReportList(@Valid BaseIdPageReq req) throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException;

    ReportResp deleteReport(@Valid ReportDeleteReq req) throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException;

    ResponseEntity<String> downLoadReport(@Valid BaseIdReq req) throws Exception;

    ReportResp assetReportTask(@Valid ReportAssetTaskReq req) throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException;

    ReportTaskResp findByScaTaskId(String taskId) throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException;

    void createVulListByScaTaskId(@Valid BaseIdReq req) throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException;

    ReportInfoConsoleSumResp findInfoConsoleSum();

    List<ReportInfoConsoleResp> findInfoConsole(@Valid ReportInfoQueryReq query);

    PageResult<ReportInfoResp> findReportInfo(@Valid ReportInfoQueryReq query);
}
