using AnalyticsDAL.DTO.AnalysisAggregation.V1; using GB5Shared.DTO.Framework.Login; namespace AnalyticsBLL.AnalysisAggregation { /// The single stateless entry point every analytics consumer (pivot, chart, /// export, snapshot, and — later — NLQ) calls: resolve the dataset, validate the /// requested aggregations against measure additivity, execute, shape, cache. public interface IAnalysisAggregationService { Task ExecuteAsync(AnalysisQueryDefinition definition, LoginDTO login, CancellationToken ct); /// Resolves the dataset and runs the same additivity/aggregation trust checks /// ExecuteAsync applies before running a query — without executing or caching anything. /// Used by BIViewBLL.Save (Phase 1) to reject a saved view whose Dimensions/Measures /// would be rejected at run time anyway, e.g. a SUM request against a measure the /// server-side registry (MWAREHOUSEMEASURE/MBIFIELDMAPPING) actually classifies /// NonAdditive — never trust whatever Additivity the definition being saved claims. Task ValidateDefinitionAsync(AnalysisQueryDefinition definition, LoginDTO login, CancellationToken ct); } }