Files
LehrerApp/LehrerApp.Core/Models/LearningGroup.cs
T
2026-08-12 17:45:02 +02:00

39 lines
1.6 KiB
C#

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;
}
/// <summary>
/// Mitgliedschaft eines Schülers in einer Lerngruppe. Das Schuljahr gehört zur
/// Lerngruppe und wird deshalb hier nicht ein zweites Mal gespeichert.
/// </summary>
public class GroupMembership
{
public Guid Id { get; set; } = Guid.NewGuid();
public Guid StudentId { get; set; }
public Guid GroupId { get; set; }
/// <summary>Tag, an dem die Zuordnung in der App angelegt wurde.</summary>
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 }