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; }
}