using AccountsDAL.DTO.AccountsReports; using GB5Shared.DTO.Framework.Login; namespace AccountsDAL.CustomCode.AccountReports.RatioAnalysis { public interface IRatioAnalysisReportDAL { // Computes every active MRATIO row for the given period, across ouIds (null/empty = // every OU the user can access). Returns one row per (Ratio, Element) pair — see // RatioAnalysisDashBoardDTO for why. Throws if ouIds is non-empty but doesn't intersect the // user's accessible OUs at all (never silently returns an all-zero dashboard for an OU the // caller can't see). Task> GetRatioAnalysisDashboard( DateTime fromDate, DateTime toDate, List? ouIds, int ouGroupId, LoginDTO loginDTO, CancellationToken ct); } }