namespace KArtSell.Host.Consumers;

/// <summary>
/// Generic consumer interface for idempotent event handling.
/// Implementations must be stateless and safe to retry.
/// </summary>
public interface IInboxConsumer<in TEvent>
{
    /// <summary>
    /// Handle event idempotently. Same event → same result, safe to retry.
    /// </summary>
    Task HandleAsync(TEvent message, CancellationToken cancellationToken = default);
}
