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

namespace OmsorgCore.Engine.Handlers;

/// <summary>
/// Reagiert auf <see cref="ContractCreatedEvent"/>. Protokolliert bislang nur — weitere Aktionen
/// (z. B. Vertragsende-Erinnerung, Dashboard-Hinweis) folgen mit FR-MA-4/Abschnitt 4.10.
/// </summary>
public class ContractCreatedHandler : IDomainEventHandler<ContractCreatedEvent>
{
    private readonly ILogger<ContractCreatedHandler> _logger;

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

    public Task HandleAsync(ContractCreatedEvent domainEvent, CancellationToken cancellationToken = default)
    {
        _logger.LogInformation(
            "Engine: Vertrag {ContractId} wurde angelegt ({OccurredAt}).",
            domainEvent.ContractId,
            domainEvent.OccurredAt);

        return Task.CompletedTask;
    }
}
