using System.Threading;
using System.Threading.Tasks;

namespace AsbCloudApp.IntegrationEvents.Interfaces;

/// <summary>
/// Обработчик событий
/// </summary>
/// <typeparam name="T"></typeparam>
public interface IIntegrationEventHandler<in T> where T: IIntegrationEvent
{
   /// <summary>
   /// Метод обработки события
   /// </summary>
   /// <param name="integrationEvent"></param>
   /// <param name="cancellationToken"></param>
   /// <returns></returns>
   Task HandleAsync(T integrationEvent, CancellationToken cancellationToken);
}