using System.Threading.Channels; using UniVerse.Application.Interfaces; namespace UniVerse.Api.BackgroundServices; public sealed class ReviewAnalysisQueue : IReviewAnalysisQueue { private readonly Channel _channel = Channel.CreateUnbounded(new UnboundedChannelOptions { SingleReader = false, SingleWriter = false }); public async Task EnqueueAsync(int reviewId, CancellationToken cancellationToken = default) { await _channel.Writer.WriteAsync(reviewId, cancellationToken); } public IAsyncEnumerable ReadAllAsync(CancellationToken cancellationToken) => _channel.Reader.ReadAllAsync(cancellationToken); }