using PARR.Domain.Common.Rabbit.Messages.TemplateMatching; using PARR.Domain.Entities.Base.History; using PARR.Domain.Entities.JobEntities; using PARR.Domain.Entities.Unit; namespace PARR.TemplateMatcher.Services.Interfaces { /// /// Отвечает за полный цикл переиспользования Unused-шаблона: /// 1. Атомарный захват в БД (с retry). /// 2. Нормализация имени. /// 3. Отправка команды на обновление (активацию) в MQ. /// public interface ITemplateReuser { /// /// Пытается переиспользовать шаблон. Возвращает true, если успешно захвачен и отправлена команда. /// Task TryReuseAsync( Job targetJob, Guid targetUnitId, Unit? targetUnit, int? index, List unitsInTemplate, bool isActiveTemplate, bool isActiveSchedule, HistoryInitiator initiator, CancellationToken ct = default); } }