using Microsoft.Extensions.Logging;
using TarninaHub.Application.Abstractions;
namespace TarninaHub.Infrastructure.Events;
///
/// Placeholder publisher: logs domain events. Will be replaced/wired to
/// matchmaking (steps 14-15) and notifications (step 17).
///
public sealed class LoggingSubmissionEventPublisher : ISubmissionEventPublisher
{
private readonly ILogger _logger;
public LoggingSubmissionEventPublisher(ILogger logger)
{
_logger = logger;
}
public Task PublishAsync(SubmissionEvent submissionEvent, CancellationToken cancellationToken)
{
_logger.LogInformation(
"Domain event {EventType} for {SubmissionId} (status: {Status}, actor: {ActorId})",
submissionEvent.Type,
submissionEvent.SubmissionId,
submissionEvent.Status,
submissionEvent.ActorId ?? "system");
return Task.CompletedTask;
}
}