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