namespace Hrynco.RabbitMq;
using System.Collections.Generic;
///
/// Transport metadata supplied by RabbitMQ for a delivered message.
/// Application-specific consumers can use this context for validation,
/// correlation, and diagnostics without taking ownership of acknowledgements.
///
public sealed record RabbitMqMessageContext
{
public required string QueueName { get; init; }
public required string Exchange { get; init; }
public required string RoutingKey { get; init; }
public string? MessageId { get; init; }
public string? MessageType { get; init; }
public string? CorrelationId { get; init; }
public string? ReplyTo { get; init; }
public string? ContentType { get; init; }
public bool Redelivered { get; init; }
public IReadOnlyDictionary Headers { get; init; }
= new Dictionary();
}