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; } }