2026-05-20 17:59:06 +10:00
|
|
|
|
using PARR.Domain.Common.Rabbit.Messages.TemplateMatching;
|
2026-04-13 16:58:30 +10:00
|
|
|
|
using PARR.Domain.Entities.Base.History;
|
2026-07-03 11:17:48 +10:00
|
|
|
|
using PARR.Domain.Entities.JobEntities;
|
2026-05-20 17:59:06 +10:00
|
|
|
|
using PARR.Domain.Entities.Unit;
|
2025-12-23 18:27:31 +10:00
|
|
|
|
|
|
|
|
|
|
namespace PARR.TemplateMatcher.Services.Interfaces
|
|
|
|
|
|
{
|
2026-05-20 17:59:06 +10:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Отвечает за полный цикл переиспользования Unused-шаблона:
|
|
|
|
|
|
/// 1. Атомарный захват в БД (с retry).
|
|
|
|
|
|
/// 2. Нормализация имени.
|
|
|
|
|
|
/// 3. Отправка команды на обновление (активацию) в MQ.
|
|
|
|
|
|
/// </summary>
|
2025-12-23 18:27:31 +10:00
|
|
|
|
public interface ITemplateReuser
|
|
|
|
|
|
{
|
2026-03-26 18:08:13 +10:00
|
|
|
|
/// <summary>
|
2026-05-20 17:59:06 +10:00
|
|
|
|
/// Пытается переиспользовать шаблон. Возвращает true, если успешно захвачен и отправлена команда.
|
2026-03-26 18:08:13 +10:00
|
|
|
|
/// </summary>
|
2026-05-20 17:59:06 +10:00
|
|
|
|
Task<bool> TryReuseAsync(
|
|
|
|
|
|
Job targetJob,
|
|
|
|
|
|
Guid targetUnitId,
|
|
|
|
|
|
Unit? targetUnit,
|
|
|
|
|
|
int? index,
|
|
|
|
|
|
List<UnitInTemplateMessage> unitsInTemplate,
|
|
|
|
|
|
bool isActiveTemplate,
|
|
|
|
|
|
bool isActiveSchedule,
|
2025-12-23 18:27:31 +10:00
|
|
|
|
HistoryInitiator initiator,
|
2026-05-20 17:59:06 +10:00
|
|
|
|
CancellationToken ct = default);
|
2025-12-23 18:27:31 +10:00
|
|
|
|
}
|
|
|
|
|
|
}
|