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 string? Subject { 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 DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; } public class Enrollment { public Guid Id { get; set; } = Guid.NewGuid(); public Guid StudentId { get; set; } public Guid GroupId { get; set; } public string SchoolYear { get; set; } = ""; public DateOnly EnrolledAt { get; set; } = DateOnly.FromDateTime(DateTime.Today); public EnrollmentPeriod Period { get; set; } = EnrollmentPeriod.FullYear; public DateOnly? JoinedAt { get; set; } public DateOnly? LeftAt { get; set; } } public enum EnrollmentPeriod { FullYear, H1Only, H2Only, Custom } public enum GroupType { Class, Course } public enum GradingSystem { Grades1To6, Points0To15 }