using Entities.Interfaces; namespace Entities.Models; /// /// Represents a one-time admin registration key /// public class AdminKey : IDbEntity { /// /// Unique identifier for the admin key /// public int Id { get; set; } /// /// The actual key code that user must provide during registration /// public string KeyCode { get; set; } = string.Empty; /// /// When the key was created /// public DateTime CreatedAt { get; set; } /// /// When the key expires (optional, can be null for no expiration) /// public DateTime? ExpiresAt { get; set; } /// /// Whether the key has been used /// public bool IsUsed { get; set; } /// /// When the key was used /// public DateTime? UsedAt { get; set; } /// /// The user who used this key (null if not yet used) /// public int? UsedByUserId { get; set; } /// /// Navigation property to the user who used this key /// public User? UsedByUser { get; set; } /// /// The admin who created this key /// public int CreatedByAdminId { get; set; } /// /// Navigation property to the admin who created this key /// public User CreatedByAdmin { get; set; } = null!; /// /// Optional description or note about this key /// public string? Description { get; set; } }