namespace ChronoFlow.Model { /// /// Datenmodell für einen Zeiteintrag / ein Projekt. /// Wird z.B. zur Speicherung in SQLite verwendet. /// public class Zeiteintrag { /// /// Eindeutige ID des Eintrags in der Datenbank. /// public int Id { get; set; } /// /// Name des zugewiesenen Mitarbeiters. /// public string Mitarbeiter { get; set; } /// /// Name des Projektleiters (neu hinzugefügt). /// public string Projektleiter { get; set; } = ""; /// /// Zeitpunkt, wann das Projekt beginnt. /// public DateTime Startzeit { get; set; } /// /// Zeitpunkt, wann das Projekt endet. /// public DateTime Endzeit { get; set; } /// /// Name oder Titel des Projekts. /// public string Projekt { get; set; } /// /// Beschreibung oder Kommentar durch den Admin. /// public string Kommentar { get; set; } /// /// Gibt an, ob das Projekt als erledigt markiert wurde. /// public bool Erledigt { get; set; } /// /// Kommentar vom Mitarbeiter (z.B. Rückmeldung zum Projekt). /// public string MitarbeiterKommentar { get; set; } /// /// Zeitpunkt der letzten Änderung an diesem Eintrag. /// public DateTime LetzteBearbeitung { get; set; } /// /// Kennzeichnet, ob es sich um einen neu erzeugten Eintrag handelt (z.B. seit dem letzten Login). /// public bool IstNeu { get; set; } /// /// True, wenn der Eintrag seit dem letzten Login verändert wurde. /// public bool WurdeSeitLoginBearbeitet { get; set; } /// /// Konstruktor – Initialisiert alle Felder mit Standardwerten. /// public Zeiteintrag() { Id = 0; Mitarbeiter = ""; Projektleiter = ""; // <<< NEU Startzeit = DateTime.Now; Endzeit = DateTime.Now; Projekt = ""; Kommentar = ""; Erledigt = false; MitarbeiterKommentar = ""; Projektleiter = ""; LetzteBearbeitung = DateTime.Now; IstNeu = false; WurdeSeitLoginBearbeitet = false; } /// /// Gibt die Prioritätsfarbe basierend auf der verbleibenden Zeit bis zur Deadline zurück. /// Rot = < 3 Tage, Orange = 3–7 Tage, Grün = > 7 Tage. /// public string PrioritaetsFarbe { get { var tageBisEnde = (Endzeit - DateTime.Now).TotalDays; if (tageBisEnde <= 3) return "Red"; else if (tageBisEnde <= 7) return "DarkOrange"; else return "Green"; } } } }