using PARR.Core.Services.TaskServices.Handlers;
using PARR.Domain.Enums;

namespace PARR.Core.Services.TaskServices.Handlers.Factory
{
    /// <summary>
    /// Фабрика обработчиков
    /// </summary>
    public interface ITaskHandlerFactory
    {
        /// <summary>
        /// Получить обработчик для типа задачи
        /// </summary>
        /// <param name="taskType"></param>
        /// <returns></returns>
        BaseTaskHandler GetHandler(TaskTypeEnum taskType);

        /// <summary>
        /// Все зарегистрированные типы.
        /// </summary>
        /// <returns></returns>
        IEnumerable<TaskTypeEnum> GetSupportedTypes();
    }
}
