using AnalyticsDAL.DTO.DataSource; using GB5Shared.DTO.Framework.Login; namespace AnalyticsDAL.CustomCode.DataSource { public interface IDataSourceDAL { Task GetDataSource(int dataSourceId, LoginDTO login, CancellationToken ct); Task GetSelectListDataSource(LoginDTO login, CancellationToken ct); Task SaveDataSource(DataSourceDTO dto, LoginDTO login, CancellationToken ct); Task UpdateDataSource(DataSourceDTO dto, LoginDTO login, CancellationToken ct); Task UpdateValidationStatus(int dataSourceId, byte isValidated, LoginDTO login, CancellationToken ct); Task DeleteDataSource(int dataSourceId, LoginDTO login, CancellationToken ct); Task IsDuplicateCode(string code, int excludeId, LoginDTO login, CancellationToken ct); /// Unscoped by TenantId — returns null if the data source doesn't exist. Used only by the ownership visibility guard. Task GetDataSourceTenantId(int dataSourceId, LoginDTO login, CancellationToken ct); /// Unscoped by TenantId — resolves the shared "GB5_SELF_HOST" MDATASOURCE row /// by code (see DataSourceQB.GET_DATASOURCE_ID_BY_CODE). Returns null if not seeded yet. Task GetDataSourceIdByCode(string dataSourceCode, LoginDTO login, CancellationToken ct); } }