using Microsoft.Extensions.Logging; using SharpChat.Connections; namespace SharpChat.Sessions; public class Session(long id, string secret, string userId, ILogger logger, Connection conn) { public long Id { get; } = id; public string Secret { get; } = secret; public string UserId { get; } = userId; public ILogger Logger { get; } = logger; public Connection Connection { get; internal set; } = conn; public DateTimeOffset LastHeartbeat { get; private set; } = DateTimeOffset.UtcNow; public bool IsSuspended => NullConnection.IsNull(Connection); public void Heartbeat() { LastHeartbeat = DateTimeOffset.UtcNow; } }