using ZB.MOM.WW.OtOpcUa.Configuration.Enums;
namespace ZB.MOM.WW.OtOpcUa.Configuration.Entities;
///
/// Authenticates a to the central config DB.
/// Per decision #83 — credentials bind to NodeId, not ClusterId.
///
public sealed class ClusterNodeCredential
{
/// Gets or sets the credential identifier.
public Guid CredentialId { get; set; }
/// Gets or sets the node identifier this credential binds to.
public required string NodeId { get; set; }
/// Gets or sets the credential kind (login, certificate, etc.).
public required CredentialKind Kind { get; set; }
/// Gets or sets the credential value (login name / cert thumbprint / SID / gMSA name).
public required string Value { get; set; }
/// Gets or sets a value indicating whether the credential is enabled.
public bool Enabled { get; set; } = true;
/// Gets or sets the date/time when the credential was last rotated.
public DateTime? RotatedAt { get; set; }
/// Gets or sets the date/time when the credential was created.
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
/// Gets or sets the user who created the credential.
public required string CreatedBy { get; set; }
/// Gets or sets the related cluster node.
public ClusterNode? Node { get; set; }
}