using ZB.MOM.WW.OtOpcUa.Configuration.Enums; namespace ZB.MOM.WW.OtOpcUa.Configuration.Entities; /// /// Top-level deployment unit. 1 or 2 members. /// Per config-db-schema.md ServerCluster table. /// public sealed class ServerCluster { /// Stable logical ID, e.g. "LINE3-OPCUA". public required string ClusterId { get; set; } /// Gets or sets the display name for the server cluster. public required string Name { get; set; } /// UNS level 1. Canonical org value: "zb". public required string Enterprise { get; set; } /// UNS level 2, e.g. "warsaw-west". public required string Site { get; set; } /// Gets or sets the number of nodes in the cluster. public byte NodeCount { get; set; } /// Gets or sets the redundancy mode for the cluster. public required RedundancyMode RedundancyMode { get; set; } /// Gets or sets a value indicating whether the cluster is enabled. public bool Enabled { get; set; } = true; /// Gets or sets optional notes about the cluster. public string? Notes { get; set; } /// Gets or sets the UTC timestamp when the cluster was created. public DateTime CreatedAt { get; set; } = DateTime.UtcNow; /// Gets or sets the user who created the cluster. public required string CreatedBy { get; set; } /// Gets or sets the UTC timestamp when the cluster was last modified. public DateTime? ModifiedAt { get; set; } /// Gets or sets the user who last modified the cluster. public string? ModifiedBy { get; set; } // Navigation /// Gets or sets the collection of cluster nodes. public ICollection Nodes { get; set; } = []; /// Gets or sets the collection of root-level Raw-tree folders in the cluster. public ICollection RawFolders { get; set; } = []; }