ChronoFlow/ChronoFlow.Model/User.cs
2025-06-29 17:50:02 +02:00

79 lines
2.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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