using System; using Svrnty.CQRS.Events.Abstractions.Models; using Svrnty.CQRS.Events.Abstractions.EventStore; namespace Svrnty.CQRS.Events.Abstractions.Models; /// /// Represents a stored event with its metadata. /// Used for event persistence and catch-up delivery. /// public sealed class StoredEvent { /// /// Unique identifier for this event. /// public required string EventId { get; init; } /// /// Correlation ID linking this event to a command. /// public required string CorrelationId { get; init; } /// /// Type name of the event (e.g., "UserInvitationSentEvent"). /// public required string EventType { get; init; } /// /// Global sequence number for ordering. /// public required long Sequence { get; init; } /// /// The actual event instance. /// public required ICorrelatedEvent Event { get; init; } /// /// When this event occurred. /// public required DateTimeOffset OccurredAt { get; init; } /// /// When this event was stored. /// public required DateTimeOffset StoredAt { get; init; } }