using System.ComponentModel.DataAnnotations.Schema; using Prefab.Base; namespace Prefab.Domain.Common; /// /// Base type for domain events captured during aggregate processing. /// [NotMapped] public abstract record Event : IEvent { /// /// Gets a value indicating whether the event has been dispatched to external transports. /// public bool IsPublished { get; internal set; } /// /// Gets the timestamp for when the event occurred. /// public DateTimeOffset DateOccurred { get; protected set; } = DateTimeOffset.UtcNow; }