using AnalyticsDAL.DTO.BICatalog;
using GB5Shared.DTO.Framework.Login;
namespace AnalyticsDAL.CustomCode.BICatalog
{
public interface IBICatalogDAL
{
/// Unscoped by TenantId (PK lookup only) — see BICatalogQB.GET_CATALOG_ENTRY_BY_ID
/// for why: DatasetResolver must be able to see a shared (TenantId = -1) entry before
/// comparing it against the caller's tenant in code.
Task GetCatalogEntryById(int biCatalogId, LoginDTO login, CancellationToken ct);
/// Warehouse-kind catalog entries visible to this tenant (own + shared) —
/// see BICatalogQB.GET_CATALOG_LIST. Workspace-level visibility is filtered by the
/// caller (BICatalogBLL), not here.
Task> GetCatalogList(LoginDTO login, CancellationToken ct);
Task Insert(BICatalogDTO dto, LoginDTO login, CancellationToken ct);
/// Phase 2's "create a BI catalog from any existing report" flow — see
/// BICatalogQB.GET_REPORTVIEW_FOR_CATALOG_CREATION. Returns null if the report view
/// doesn't exist.
Task GetReportViewForCatalogCreation(int reportViewId, LoginDTO login, CancellationToken ct);
}
}