namespace ZB.MOM.WW.MxGateway.Server.Galaxy;
///
/// Abstraction over consumed by
/// . Exists so the cache can be unit-tested
/// against an in-memory fake that throws a
/// from (the unavailable-backend code
/// path) without standing up a real Microsoft.Data.SqlClient
/// SqlConnection against a bogus host/port. The production gateway
/// wires the concrete ; the SQL surface itself
/// stays covered by ZB.MOM.WW.MxGateway.IntegrationTests.Galaxy.GalaxyRepositoryLiveTests.
///
public interface IGalaxyRepository
{
/// Tests the connection to the Galaxy Repository database.
/// Token to cancel the asynchronous operation.
Task TestConnectionAsync(CancellationToken ct = default);
/// Retrieves the last deployment time from the Galaxy Repository.
/// Token to cancel the asynchronous operation.
Task GetLastDeployTimeAsync(CancellationToken ct = default);
/// Retrieves the complete hierarchy of Galaxy objects from the repository.
/// Token to cancel the asynchronous operation.
Task> GetHierarchyAsync(CancellationToken ct = default);
/// Retrieves all attributes for Galaxy objects from the repository.
/// Token to cancel the asynchronous operation.
Task> GetAttributesAsync(CancellationToken ct = default);
}