Files
parr_api/PARR.TemplateMatcher/Services/Interfaces/ITemplateReuser.cs

32 lines
1.2 KiB
C#
Raw Permalink Normal View History

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
{
/// <summary>
/// Отвечает за полный цикл переиспользования Unused-шаблона:
/// 1. Атомарный захват в БД (с retry).
/// 2. Нормализация имени.
/// 3. Отправка команды на обновление (активацию) в MQ.
/// </summary>
public interface ITemplateReuser
{
/// <summary>
/// Пытается переиспользовать шаблон. Возвращает true, если успешно захвачен и отправлена команда.
/// </summary>
Task<bool> TryReuseAsync(
Job targetJob,
Guid targetUnitId,
Unit? targetUnit,
int? index,
List<UnitInTemplateMessage> unitsInTemplate,
bool isActiveTemplate,
bool isActiveSchedule,
HistoryInitiator initiator,
CancellationToken ct = default);
}
}