Implements outbox pattern for reliable message delivery Adds email verification flow with Postmark integration Enhances account registration with secure token generation Introduces background processing for asynchronous email sending Implements database-level notification mechanism for message processing
27 lines
702 B
C#
27 lines
702 B
C#
#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; }
|
|
}
|