32 lines
1.2 KiB
C#
32 lines
1.2 KiB
C#
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);
|
||
}
|
||
}
|