namespace LehrerApp.Core.Models; public class Grade { public Guid Id { get; set; } = Guid.NewGuid(); public Guid StudentId { get; set; } public Guid GroupId { get; set; } public GradeCategory Category { get; set; } public string Value { get; set; } = ""; public DateOnly Date { get; set; } public double Weight { get; set; } = 1.0; public string? Note { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; } public enum GradeCategory { Oral, Homework, Participation, Project, Other } public class Unit { public Guid Id { get; set; } = Guid.NewGuid(); public Guid GroupId { get; set; } public string Title { get; set; } = ""; public DateOnly? StartDate { get; set; } public DateOnly? EndDate { get; set; } public List Competencies { get; set; } = []; public UnitStatus Status { get; set; } = UnitStatus.Planned; public string? Notes { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; } public class Lesson { public Guid Id { get; set; } = Guid.NewGuid(); public Guid UnitId { get; set; } public Guid GroupId { get; set; } public DateOnly Date { get; set; } public int? LessonNumber { get; set; } public string Topic { get; set; } = ""; public string? Phase { get; set; } public List Methods { get; set; } = []; public List Materials { get; set; } = []; public string? Homework { get; set; } public string? Reflection { get; set; } public LessonStatus Status { get; set; } = LessonStatus.Planned; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; } public enum UnitStatus { Planned, Active, Completed } public enum LessonStatus { Planned, Conducted }