using static System.Security.Cryptography.RandomNumberGenerator; namespace Femto.Modules.Auth.Models; public class Session(Guid userId, bool isStrong) { public string Id { get; } = Convert.ToBase64String(GetBytes(32)); public Guid UserId { get; } = userId; public DateTimeOffset Expires { get; } = DateTimeOffset.UtcNow + TimeSpan.FromMinutes(15); public bool ExpiresSoon => this.Expires < DateTimeOffset.UtcNow + TimeSpan.FromMinutes(5); public bool IsStronglyAuthenticated { get; } = isStrong; public bool IsExpired => this.Expires < DateTimeOffset.UtcNow; }