using System; using API.Entities.Enums.User; using Microsoft.EntityFrameworkCore; namespace API.Entities.User; [Index(nameof(Key), IsUnique = true)] [Index(nameof(ExpiresAtUtc), IsUnique = false)] public class AppUserAuthKey { public int Id { get; set; } /// /// Actual key /// /// This is a variable string length from [6-32] alphanumeric characters public required string Key { get; set; } /// /// Name of the key /// public required string Name { get; set; } public DateTime CreatedAtUtc { get; set; } /// /// An Optional time which the Key expires /// public DateTime? ExpiresAtUtc { get; set; } public DateTime? LastAccessedAt { get; set; } /// /// Kavita will have a short-lived key /// public AuthKeyProvider Provider { get; set; } = AuthKeyProvider.User; public int AppUserId { get; set; } public virtual AppUser AppUser { get; set; } }