using System.Threading;
using System.Threading.Tasks;
using AnalyticsDAL.DTO.Wizard;
using GB5Shared.DTO.Framework.Login;
namespace AnalyticsBLL.Wizard
{
public interface IAnalyticsWizardBLL
{
/// Read-only schema browsing — no DB writes. Returns the flat column/FK lists
/// for the tenant's own DB (SourceKind 0) or a registered external client DB
/// (SourceKind 1, SQL Server only today).
Task DiscoverAsync(WizardDiscoverRequestDTO req, LoginDTO login, CancellationToken ct);
/// Turns discovered schema + user selections into real
/// MANALYSIS/MANALYSISOBJECT/MANALYSISFIELDS/DBJOIN(/MANALYSISQUERY) rows in one
/// transaction. Registers a DBOBJECT (+DBOBJECTFIELDS) per selected table first when one
/// isn't already registered for this source — see class remarks for the one accepted
/// limitation (that registration step is framework-owned and outside this transaction).
Task QuickBuildAsync(AnalyticsWizardBuildRequestDTO req, LoginDTO login, CancellationToken ct);
}
}