namespace EchoHub.Core.Models; public class RefreshToken { public Guid Id { get; set; } public required string TokenHash { get; set; } public Guid UserId { get; set; } public DateTimeOffset ExpiresAt { get; set; } public DateTimeOffset CreatedAt { get; set; } = DateTimeOffset.UtcNow; public DateTimeOffset? RevokedAt { get; set; } public bool IsExpired => DateTimeOffset.UtcNow >= ExpiresAt; public bool IsRevoked => RevokedAt is not null; public bool IsActive => !IsExpired && !IsRevoked; public User? User { get; set; } }