using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using SwDAL.DTO.ClientDatabase; namespace SwBLL.ClientDatabase; public interface IClientDatabaseBLL { Task GetById(int clientDbId, LoginDTO loginDTO, CancellationToken ct); /// Resolves the ClientDatabase row (if any) for a raw DbServerId+DatabaseName pair. /// Returns null when no ClientDatabase is registered for that pair. Task GetByServerAndDatabaseName(int dbServerId, string databaseName, LoginDTO loginDTO, CancellationToken ct); Task GetList(CriteriaDTO criteria, string? searchText, int pageOffset, int pageSize, LoginDTO loginDTO, CancellationToken ct = default); Task GetSelectListClientDatabase(int firstNumber, int maxResult, CriteriaDTO criteriaDTO, LoginDTO loginDTO); Task Save(ClientDatabaseDTO dto, LoginDTO loginDTO, CancellationToken ct); Task Delete(int clientDbId, LoginDTO loginDTO, CancellationToken ct); Task UpdateStatusAsync(int clientDbId, byte status, LoginDTO loginDTO, CancellationToken ct); /// Switches a client database between Push (0, default, live-connection delivery) /// and Offline (1, Offline Rollout Package delivery, tracker §53) — a genuinely disconnected /// on-prem/BYOC install has no live SQL connection RolloutCampaignBLL.ProcessDueTargetsAsync /// can reach, so it needs this flag set before any campaign includes it as a target. Task SetDeliveryModeAsync(int clientDbId, byte deliveryMode, LoginDTO loginDTO, CancellationToken ct); /// Records where each of the three contained-user credentials was written in Vault /// (never the plaintext password) after ClientDatabaseProvisioner creates them. Task UpdateCredentialVaultPathsAsync( int clientDbId, string dbaVaultPath, string appVaultPath, string readOnlyVaultPath, LoginDTO loginDTO, CancellationToken ct); /// Records which MSERVERCONFIG row this database was registered as. Task UpdateServerConfigIdAsync(int clientDbId, int serverConfigId, LoginDTO loginDTO, CancellationToken ct); /// The sibling Main-role row's ServerConfigId for the same tenant/DbModel, or null /// if it hasn't been registered in MSERVERCONFIG yet. Task GetMainServerConfigIdForModelAsync(int dbModelId, LoginDTO loginDTO, CancellationToken ct); }