namespace StellaOps.Messaging; /// /// Result of an enqueue operation. /// public readonly struct EnqueueResult { /// /// Gets the message ID assigned by the queue. /// public string MessageId { get; init; } /// /// Gets whether the message was enqueued successfully. /// public bool Success { get; init; } /// /// Gets whether this was a duplicate message (idempotency). /// public bool WasDuplicate { get; init; } /// /// Gets the error message if the operation failed. /// public string? Error { get; init; } /// /// Creates a successful result. /// public static EnqueueResult Succeeded(string messageId, bool wasDuplicate = false) => new() { MessageId = messageId, Success = true, WasDuplicate = wasDuplicate }; /// /// Creates a failed result. /// public static EnqueueResult Failed(string error) => new() { Success = false, Error = error, MessageId = string.Empty }; /// /// Creates a duplicate result. /// public static EnqueueResult Duplicate(string messageId) => new() { MessageId = messageId, Success = true, WasDuplicate = true }; }