using IWS5.Core.DTO.IAdmin.Reports;
using IWS5.Core.Models;

namespace IWS5.Core.Services.IAdmin;

public interface IReportsService
{
    Task<CodeResponse<List<ReportDetailsDTO>>> GetReportsAsync();
    Task<CodeResponse<ReportDetailsDTO>> GetReportDetailsAsync(int reportId);
    Task<CodeResponse<RunReportResultDTO>> RunReportAsync(int reportId);
    Task<CodeResponse<MakeActiveReportResponseDTO>> UpdateStatusAsync(int reportId);
    Task<CodeResponse<ReportDetailsDTO>> UpdateReportAsync(int reportId, UpdateReportRequestDTO request);
    Task<CodeResponse<ReportDetailsDTO>> CreateReportAsync(CreateReportRequestDTO request);
    Task<bool> DeleteReportAsync(int reportId);
}
