using AnalyticsDAL.DTO.BICatalog; using AnalyticsDAL.DTO.BIFieldMapping; using AnalyticsDAL.DTO.Warehouse; using GB5Shared.DTO.Framework.Login; namespace AnalyticsBLL.BICatalog { /// Read-only catalog-browsing surface for the config-UI dataset/dimension/measure /// pickers — the "future FE dataset picker" IDatasetResolver's own doc comment anticipated. /// Deliberately separate from IDatasetResolver (which resolves ONE known id for execution); /// this BLL is about listing/browsing for a human picking a dataset, not running a query. public interface IBICatalogBLL { /// Warehouse-kind catalog entries visible to this tenant (own + shared + /// workspace-visible). AnalysisQuery/ApiService-kind entries are excluded — the config /// UI only targets the new dimensional-warehouse engine, not the separate, pre-existing /// ad-hoc AnalysisQuery system. Task> GetCatalogList(LoginDTO login, CancellationToken ct); /// Selectable dimension fields for a given dataset. Empty list (not an error) /// for a non-Warehouse-kind or unresolvable dataset — this is a picker, not an executor. Task> GetDimensionsForDataset(int biCatalogId, LoginDTO login, CancellationToken ct); /// Selectable, visible (IsVisible=1) measure fields for a given dataset. Empty /// list for a non-Warehouse-kind or unresolvable dataset. Task> GetMeasuresForDataset(int biCatalogId, LoginDTO login, CancellationToken ct); /// Selectable, visible (IsVisible=1) computed fields (MAPPEDAS=2) for a given /// dataset — resolved identically across all 3 DatasetKinds. Task> GetComputedFieldsForDataset(int biCatalogId, LoginDTO login, CancellationToken ct); /// Phase 2: creates a new ApiService-kind BICatalog row backed by an existing /// report's own calling URI — the generalization of the disposable ApiService pilot to /// any real report. Rejects a ReportViewId whose ISDATAPIVOT=1 outright: a DAL-side /// pivoted report's output columns are computed at run time and have no stable field /// list a BICatalog could ever register field mappings against. Task CreateFromReportView(CreateBICatalogFromReportViewDTO request, LoginDTO login, CancellationToken ct); } }