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