namespace LehrerApp.Core.Models; public class LearningGroup { public Guid Id { get; set; } = Guid.NewGuid(); public string Name { get; set; } = ""; public GroupType Type { get; set; } public Guid? SubjectId { get; set; } public string SchoolYear { get; set; } = ""; public int GradeLevel { get; set; } public GradingSystem GradingSystem { get; set; } public int? HoursPerWeek { get; set; } public bool IsActive { get; set; } = true; public bool IsOwnClass { get; set; } public bool IsDifferentiated { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; } /// /// Mitgliedschaft eines Schülers in einer Lerngruppe. Das Schuljahr gehört zur /// Lerngruppe und wird deshalb hier nicht ein zweites Mal gespeichert. /// public class GroupMembership { public Guid Id { get; set; } = Guid.NewGuid(); public Guid StudentId { get; set; } public Guid GroupId { get; set; } /// Tag, an dem die Zuordnung in der App angelegt wurde. public DateOnly AddedOn { get; set; } = DateOnly.FromDateTime(DateTime.Today); public MembershipPeriod Period { get; set; } = MembershipPeriod.FullYear; public DateOnly? JoinedAt { get; set; } public DateOnly? LeftAt { get; set; } public Niveau? Niveau { get; set; } } public enum MembershipPeriod { FullYear, H1Only, H2Only, Custom } public enum GroupType { Class, Course } public enum GradingSystem { Grades1To6, Points0To15 } public enum Niveau { E, G, Foerder }