namespace GermanApp.Domain.Entities; /// /// Represents a CEFR level in the DeutschLernen system (A1, A2, B1, B2, C1). /// public class Level { public int Id { get; private set; } public string Name { get; private set; } = string.Empty; public string Code { get; private set; } = string.Empty; public int Order { get; private set; } /// /// Constructor for EF Core deserialization. /// private Level() { } /// /// Factory method to create a new level. /// /// Display name of the level (e.g., "Beginner A1") /// Short code for the level (e.g., "A1") /// Sort order of the level public static Level Create(string name, string code, int order) { return new Level { Name = name, Code = code.ToUpperInvariant(), Order = order }; } /// /// Updates the level's display name. /// public void UpdateName(string newName) { Name = newName; } /// /// Updates the level's code. /// public void UpdateCode(string newCode) { Code = newCode.ToUpperInvariant(); } /// /// Updates the level's sort order. /// public void UpdateOrder(int newOrder) { Order = newOrder; } // Navigation properties public virtual ICollection Lessons { get; private set; } = new List(); public virtual ICollection StorySegments { get; private set; } = new List(); }