using AipsCore.Domain.Common.ValueObjects; namespace AipsCore.Domain.Abstract; public abstract class DomainEntity where TId : DomainId { private readonly List _domainEvents = []; public TId Id { get; init; } protected DomainEntity() { } protected DomainEntity(TId id) { Id = id; } public IReadOnlyList GetDomainEvents() => _domainEvents.ToList(); public void ClearDomainEvents() => _domainEvents.Clear(); protected void RaiseDomainEvent(IDomainEvent domainEvent) => _domainEvents.Add(domainEvent); }