using System.ComponentModel.DataAnnotations.Schema;

namespace MealPlan.Api.Models;

[Table("RefreshTokens")]
public class RefreshTokenEntity
{
    [Column("Token")]
    public string Token { get; set; } = string.Empty;

    [Column("UserId")]
    public Guid UserId { get; set; }

    [Column("ExpiresAtUtc")]
    public DateTime ExpiresAtUtc { get; set; }

    [Column("CreatedAtUtc")]
    public DateTime CreatedAtUtc { get; set; }

    [Column("IsRevoked")]
    public bool IsRevoked { get; set; }

    public bool IsActive => !IsRevoked && DateTime.UtcNow < ExpiresAtUtc;

    public ApplicationUser? User { get; set; }
}
