using System;
using Svrnty.CQRS.Events.Abstractions.EventStore;
namespace Svrnty.CQRS.Events.Abstractions.EventStore;
///
/// Base interface for all events that can be correlated to a command execution.
/// Events are emitted during command processing and can be subscribed to by clients.
///
public interface ICorrelatedEvent
{
///
/// Unique identifier for this event occurrence.
///
string EventId { get; }
///
/// Correlation ID linking this event to the command that caused it.
/// Multiple events can share the same correlation ID.
/// Set by the framework after event emission.
///
string CorrelationId { get; set; }
///
/// UTC timestamp when this event occurred.
///
DateTimeOffset OccurredAt { get; }
}