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; } }