using System.Text.Json.Serialization; namespace Azaion.Common.Entities; public class User { public Guid Id { get; set; } public string Email { get; set; } = null!; [JsonIgnore] public string PasswordHash { get; set; } = null!; public string? Hardware { get; set; } public RoleEnum Role { get; set; } public DateTime CreatedAt { get; set; } public DateTime? LastLogin { get; set; } public UserConfig? UserConfig { get; set; } = null!; public bool IsEnabled { get; set; } public static string GetCacheKey(string email) => string.IsNullOrEmpty(email) ? "" : $"{nameof(User)}.{email}"; } public class UserConfig { public UserQueueOffsets? QueueOffsets { get; set; } = new(); } public class UserQueueOffsets { public ulong AnnotationsOffset { get; set; } public ulong AnnotationsConfirmOffset { get; set; } public ulong AnnotationsCommandsOffset { get; set; } }