using Microsoft.Extensions.Logging;
using OmsorgCore.Engine.Events;

namespace OmsorgCore.Engine.Handlers;

/// <summary>
/// Reagiert auf <see cref="OrderCreatedEvent"/>. Protokolliert bislang nur — Dashboard-Sichtbarkeit
/// (FR-EM-2) und weitere Automatisierung folgen als späterer Schritt.
/// </summary>
public class OrderCreatedHandler : IDomainEventHandler<OrderCreatedEvent>
{
    private readonly ILogger<OrderCreatedHandler> _logger;

    public OrderCreatedHandler(ILogger<OrderCreatedHandler> logger)
    {
        _logger = logger;
    }

    public Task HandleAsync(OrderCreatedEvent domainEvent, CancellationToken cancellationToken = default)
    {
        _logger.LogInformation(
            "Engine: Auftrag {OrderId} wurde angelegt ({OccurredAt}).",
            domainEvent.OrderId,
            domainEvent.OccurredAt);

        return Task.CompletedTask;
    }
}
