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