Initial
This commit is contained in:
70
LehrerApp.Core/Models/Workload.cs
Normal file
70
LehrerApp.Core/Models/Workload.cs
Normal file
@@ -0,0 +1,70 @@
|
||||
namespace LehrerApp.Core.Models;
|
||||
|
||||
// ── Schülerdokumentation ──────────────────────────────────────────────────────
|
||||
|
||||
public class Documentation
|
||||
{
|
||||
public Guid Id { get; set; } = Guid.NewGuid();
|
||||
public Guid StudentId { get; set; }
|
||||
public Guid? GroupId { get; set; } // optional – nicht immer kursbezogen
|
||||
public DocumentationType Type { get; set; }
|
||||
public DateOnly Date { get; set; }
|
||||
public string Title { get; set; } = "";
|
||||
public string Content { get; set; } = "";
|
||||
public List<string> Participants { get; set; } = []; // für Gesprächsnotizen
|
||||
public AbsenceData? AbsenceData { get; set; }
|
||||
public SupportData? SupportData { get; set; }
|
||||
public bool IsConfidential { get; set; } // DSGVO: besonders schützenswert
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
public class AbsenceData
|
||||
{
|
||||
public int LessonCount { get; set; }
|
||||
public bool Excused { get; set; }
|
||||
public string? Reason { get; set; }
|
||||
}
|
||||
|
||||
public class SupportData
|
||||
{
|
||||
public List<string> Measures { get; set; } = [];
|
||||
public DateOnly? ReviewDate { get; set; }
|
||||
public SupportStatus Status { get; set; } = SupportStatus.Active;
|
||||
}
|
||||
|
||||
public enum DocumentationType { Conversation, Incident, SupportPlan, Absence }
|
||||
public enum SupportStatus { Active, Completed, Paused }
|
||||
|
||||
// ── Arbeitszeit & Aufgaben ────────────────────────────────────────────────────
|
||||
|
||||
public class WorkTask
|
||||
{
|
||||
public Guid Id { get; set; } = Guid.NewGuid();
|
||||
public string Title { get; set; } = "";
|
||||
public TaskCategory Category { get; set; }
|
||||
public Guid? GroupId { get; set; }
|
||||
public DateOnly? DueDate { get; set; }
|
||||
public int? EstimatedMinutes { get; set; }
|
||||
public WorkTaskStatus Status { get; set; } = WorkTaskStatus.Open;
|
||||
public string? Notes { get; set; }
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
public class TimeEntry
|
||||
{
|
||||
public Guid Id { get; set; } = Guid.NewGuid();
|
||||
public Guid? TaskId { get; set; }
|
||||
public string Category { get; set; } = "";
|
||||
public Guid? GroupId { get; set; }
|
||||
public DateOnly Date { get; set; }
|
||||
public TimeOnly? StartTime { get; set; }
|
||||
public TimeOnly? EndTime { get; set; }
|
||||
public int DurationMinutes { get; set; }
|
||||
public string? Description { get; set; }
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
public enum TaskCategory { Correction, Preparation, Admin, Meeting, Other }
|
||||
public enum WorkTaskStatus { Open, InProgress, Done }
|
||||
Reference in New Issue
Block a user