using System; namespace ChronoFlow.Model { /// /// Repräsentiert einen Benutzer im System (Mitarbeiter oder Admin). /// Wird für Authentifizierung, Rechteverwaltung und Zuordnung verwendet. /// public class User { /// /// Der Benutzername, der zur Anmeldung verwendet wird. /// public string Username { get; set; } /// /// Das gehashte Passwort des Benutzers. /// public string Password { get; set; } /// /// Rolle des Benutzers, z.B. "Admin" oder "Mitarbeiter". /// public string Role { get; set; } /// /// Interne Mitarbeiternummer, optional. /// public string Mitarbeiternummer { get; set; } /// /// Abteilung des Mitarbeiters, z.B. „Produktion“, „IT“, etc. /// public string Abteilung { get; set; } /// /// Primärschlüssel in der Datenbank. /// public int Id { get; set; } /// /// Der ursprüngliche Benutzername – wird z.B. für Updates verwendet, /// um Namensänderungen korrekt zu verarbeiten. /// public string OriginalUsername { get; set; } /// /// Gibt an, ob der Benutzer beim nächsten Login sein Passwort ändern muss. /// Wird z.B. bei neu erstellten Konten gesetzt. /// public bool MussPasswortAendern { get; set; } /// /// Letzter erfolgreicher Login des Benutzers. /// Dient z.B. zur Änderungsverfolgung von Projekten seit dem letzten Login. /// public DateTime LetzterLogin { get; set; } = DateTime.MinValue; /// /// Vorheriger Login-Zeitpunkt – wird beim nächsten Login zu LetzterLogin verschoben. /// Ermöglicht die Erkennung von Änderungen zwischen zwei Sessions. /// public DateTime VorletzterLogin { get; set; } /// /// Konstruktor initialisiert leere Zeichenketten zur Vermeidung von Nullwerten. /// public User() { Username = ""; Password = ""; Role = ""; Mitarbeiternummer = ""; Abteilung = ""; OriginalUsername = ""; } } }