#nullable enable namespace PlanTempus.Core.Outbox; public class OutboxMessage { public Guid Id { get; set; } public required string Type { get; set; } public required object Payload { get; set; } public string Status { get; set; } = "pending"; public DateTime CreatedAt { get; set; } public DateTime? ProcessedAt { get; set; } public int RetryCount { get; set; } public string? ErrorMessage { get; set; } } public static class OutboxMessageTypes { public const string VerificationEmail = "verification_email"; } public class VerificationEmailPayload { public required string Email { get; set; } public required string UserName { get; set; } public required string Token { get; set; } }