namespace MemberCenter.Domain.Entities;

public sealed class FileAccessDownloadToken
{
    public Guid Id { get; set; }
    public string TokenHash { get; set; } = string.Empty;
    public Guid TenantId { get; set; }
    public Guid UserId { get; set; }
    public string? FileId { get; set; }
    public string? ObjectKey { get; set; }
    public string Method { get; set; } = "GET";
    public string Scope { get; set; } = "files:download.read";
    public string? IssuedByClientId { get; set; }
    public DateTimeOffset ExpiresAt { get; set; }
    public DateTimeOffset? RevokedAt { get; set; }
    public DateTimeOffset? LastValidatedAt { get; set; }
    public DateTimeOffset CreatedAt { get; set; } = DateTimeOffset.UtcNow;
}
