namespace LctMonolith.Domain.Entities;
///
/// Competency (skill) that can be progressed by completing missions.
///
public class Competency
{
public Guid Id { get; set; } = Guid.NewGuid();
public string Name { get; set; } = null!;
public string? Description { get; set; }
public ICollection UserCompetencies { get; set; } = new List();
public ICollection MissionRewards { get; set; } = new List();
public ICollection RankRequirements { get; set; } = new List();
}
/// Per-user competency level.
public class UserCompetency
{
public Guid UserId { get; set; }
public AppUser User { get; set; } = null!;
public Guid CompetencyId { get; set; }
public Competency Competency { get; set; } = null!;
/// Current level (integer simple scale).
public int Level { get; set; }
/// Optional numeric progress inside level (e.g., partial points).
public int ProgressPoints { get; set; }
}
/// Reward mapping: mission increases competency level points.
public class MissionCompetencyReward
{
public Guid MissionId { get; set; }
public Mission Mission { get; set; } = null!;
public Guid CompetencyId { get; set; }
public Competency Competency { get; set; } = null!;
/// Increment value in levels (could be 0 or 1) or points depending on design.
public int LevelDelta { get; set; }
public int ProgressPointsDelta { get; set; }
}