using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using FrameworkDAL.CustomCode.GOP; using FrameworkDAL.CustomCode.GOP.DTOs; using GB5Shared.DTO.Framework.Login; namespace FrameworkBLL.GOP { // ============================================================ // GopReportBLL — Read-only report aggregation. // // All methods are thin delegations to GopReportDAL. // No transactions, no AutoNumber, no cache invalidation. // Results are NOT_REQUIRED for caching — endpoints return null // from GetCacheKey so BaseEndpoint skips cache entirely. // ============================================================ public class GopReportBLL : IGopReportBLL { private readonly IGopReportDAL _GopReportDAL; public GopReportBLL(IGopReportDAL gopReportDAL) => _GopReportDAL = gopReportDAL; public async Task> GetExecutionSummaryReport( DateTime? dateFrom, DateTime? dateTo, LoginDTO loginDTO, CancellationToken ct = default) => await _GopReportDAL.GetExecutionSummaryReport(dateFrom, dateTo, loginDTO, ct); public async Task> GetDlqAgingReport( int? minAgeDays, LoginDTO loginDTO, CancellationToken ct = default) => await _GopReportDAL.GetDlqAgingReport(minAgeDays, loginDTO, ct); public async Task> GetQualifierFindingFrequencyReport( DateTime? dateFrom, DateTime? dateTo, LoginDTO loginDTO, CancellationToken ct = default) => await _GopReportDAL.GetQualifierFindingFrequencyReport(dateFrom, dateTo, loginDTO, ct); public async Task> GetQualifierPerformanceReport( DateTime? dateFrom, DateTime? dateTo, LoginDTO loginDTO, CancellationToken ct = default) => await _GopReportDAL.GetQualifierPerformanceReport(dateFrom, dateTo, loginDTO, ct); public async Task> GetFlowDriftReport( LoginDTO loginDTO, CancellationToken ct = default) => await _GopReportDAL.GetFlowDriftReport(loginDTO, ct); public async Task> GetQualifierCoverageReport( LoginDTO loginDTO, CancellationToken ct = default) => await _GopReportDAL.GetQualifierCoverageReport(loginDTO, ct); } }