namespace LumaTunnel.Shared.Models; public sealed record NodeProfile { public Guid Id { get; init; } = Guid.NewGuid(); public required string Name { get; init; } public required Uri ApiUri { get; init; } public required Uri TunnelUri { get; init; } public string? DeviceId { get; init; } public string? SecretReference { get; init; } public int Priority { get; init; } public bool Enabled { get; init; } = true; public double? LastLatencyMilliseconds { get; init; } public DateTimeOffset? LastHealthCheckUtc { get; init; } } public sealed record NodeHealthDto( string NodeId, string NodeName, string ServerVersion, byte ProtocolVersion, DateTimeOffset UtcTime, bool Healthy); public sealed record NodeStatusDto( string NodeId, string NodeName, string ServerVersion, DateTimeOffset UtcTime, int ActiveConnections, int DeviceConnections, long UploadBytes, long DownloadBytes, int MaxConnections, IReadOnlyList Features);