using Microsoft.Extensions.Logging;
using CMSMicroservice.Domain.Events;

namespace CMSMicroservice.Application.UserOrderCQ.EventHandlers.CancelOrderEventHandlers;

public class CancelOrderEventHandler : INotificationHandler<CancelOrderEvent>
{
    private readonly ILogger<CancelOrderEventHandler> _logger;

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

    public Task Handle(CancelOrderEvent notification, CancellationToken cancellationToken)
    {
        _logger.LogInformation("Order {OrderId} cancelled. Reason: {Reason}", 
            notification.Order.Id,
            notification.CancelReason);
        
        // اینجا می‌تونیم اعلان به کاربر بفرستیم
        // یا موجودی محصولات رو بازگردانیم به انبار
        
        return Task.CompletedTask;
    }
}
