namespace LctMonolith.Domain.Entities;
///
/// Linear rank in progression ladder. User must meet XP, key mission and competency requirements.
///
public class Rank
{
public Guid Id { get; set; } = Guid.NewGuid();
/// Display name (e.g., "Искатель", "Пилот-кандидат").
public string Name { get; set; } = null!;
/// Ordering position. Lower value = earlier rank.
public int Order { get; set; }
/// Required cumulative experience to attain this rank.
public int RequiredExperience { get; set; }
public ICollection RequiredMissions { get; set; } = new List();
public ICollection RequiredCompetencies { get; set; } = new List();
public ICollection Users { get; set; } = new List();
}
/// Mapping of rank to required mission.
public class RankRequiredMission
{
public Guid RankId { get; set; }
public Rank Rank { get; set; } = null!;
public Guid MissionId { get; set; }
public Mission Mission { get; set; } = null!;
}
/// Mapping of rank to required competency minimum level.
public class RankRequiredCompetency
{
public Guid RankId { get; set; }
public Rank Rank { get; set; } = null!;
public Guid CompetencyId { get; set; }
public Competency Competency { get; set; } = null!;
/// Minimum level required for the competency.
public int MinLevel { get; set; }
}