using Microsoft.AspNetCore.Identity;
namespace LctMonolith.Domain.Entities;
///
/// Application user (candidate or employee) participating in gamification.
/// Extends IdentityUser with Guid primary key.
///
public class AppUser : IdentityUser
{
/// User given (first) name.
public string? FirstName { get; set; }
/// User family (last) name.
public string? LastName { get; set; }
/// Date of birth.
public DateOnly? BirthDate { get; set; }
/// Current accumulated experience points.
public int Experience { get; set; }
/// Current mana (in-game currency).
public int Mana { get; set; }
/// Current rank reference.
public Guid? RankId { get; set; }
public Rank? Rank { get; set; }
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
public ICollection Competencies { get; set; } = new List();
public ICollection Missions { get; set; } = new List();
public ICollection Inventory { get; set; } = new List();
public ICollection Transactions { get; set; } = new List();
public ICollection RefreshTokens { get; set; } = new List();
public ICollection Events { get; set; } = new List();
public ICollection Notifications { get; set; } = new List();
}