using Core.Blueprint.Common.Runtime;
using Thalos.DAL.Contracts;
namespace Thalos.DAL.Health;
///
/// Default DAL dependency health check implementation.
///
public sealed class DalDependencyHealthCheck(IBlueprintSystemClock clock) : IDalDependencyHealthCheck
{
///
public Task CheckAsync(CancellationToken cancellationToken = default)
{
var envelope = new IdentityContractEnvelope("1.0.0", $"corr-{clock.UtcNow:yyyyMMddHHmmssfff}");
IReadOnlyList dependencyNames =
[
"IUserDataProvider",
"IRoleDataProvider",
"IPermissionDataProvider",
"IModuleDataProvider",
"ITenantDataProvider"
];
var status = new DalDependencyHealthStatus(envelope, true, dependencyNames);
return Task.FromResult(status);
}
}