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;
}