using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Koogle.Domain.Entities
{
///
/// Abstrakte Basisklasse für alle Entitäten im System.
/// Stellt gemeinsame Eigenschaften für Identifikation, Soft-Delete und Audit-Felder bereit.
///
public abstract class BaseEntity
{
///
/// Eindeutiger Identifikator der Entität.
///
public Guid Id { get; set; }
///
/// Kennzeichen für Soft-Delete.
/// Wenn true, gilt der Datensatz als gelöscht und wird in Standard-Abfragen ausgeblendet.
///
public bool IsDeleted { get; set; }
///
/// Zeitpunkt der Erstellung des Datensatzes (UTC).
///
public DateTime CreatedAt { get; set; }
///
/// ID des Benutzers, der den Datensatz erstellt hat.
/// Option für null, wenn die Erstellung nicht einem spezifischen Benutzer zugeordnet werden kann. (API, Tests o.ä.)
///
public Guid? CreatedById { get; set; }
///
/// Zeitpunkt der letzten Änderung des Datensatzes (UTC).
/// Null, wenn der Datensatz seit der Erstellung nicht geändert wurde.
///
public DateTime? ModifiedAt { get; set; }
///
/// ID des Benutzers, der den Datensatz zuletzt geändert hat.
/// Null, wenn der Datensatz seit der Erstellung nicht geändert wurde.
///
public Guid? ModifiedById { get; set; }
}
}