Kavita/Kavita.Models/Entities/User/AppUserAuthKey.cs
Fesaa c62b20f54b
BE Tech Debt (#4497)
Co-authored-by: Joseph Milazzo <joseph.v.milazzo@gmail.com>
Co-authored-by: Joe Milazzo <josephmajora@gmail.com>
2026-03-07 10:04:08 -08:00

37 lines
1.0 KiB
C#

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