2026-05-14 16:47:27 +10:00
|
|
|
|
using PARR.Domain.Entities.Base.History;
|
2026-07-03 11:17:48 +10:00
|
|
|
|
using PARR.Domain.Entities.JobEntities;
|
2026-05-14 16:47:27 +10:00
|
|
|
|
using PARR.TemplateMatcher.Models;
|
|
|
|
|
|
|
2026-06-11 15:09:46 +10:00
|
|
|
|
namespace PARR.TemplateMatcher.Services.GroupedSync;
|
2026-05-14 16:47:27 +10:00
|
|
|
|
|
|
|
|
|
|
public interface IGroupedTemplateProcessor
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Обрабатывает построенные группы шаблонов:
|
|
|
|
|
|
/// 1. Ищет существующие шаблоны.
|
|
|
|
|
|
/// 2. Сравнивает состав юнитов.
|
|
|
|
|
|
/// 3. Обновляет, переиспользует или создает новые шаблоны.
|
|
|
|
|
|
/// 4. Возвращает набор ключей ожидаемых шаблонов для последующей деактивации лишних.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
Task<HashSet<(Guid JobId, Guid UnitId, int Index)>> ProcessAsync(
|
|
|
|
|
|
List<GroupedTemplateGroup> groups,
|
|
|
|
|
|
List<Job> jobsInGroup,
|
|
|
|
|
|
Job maxJob,
|
|
|
|
|
|
HistoryInitiator initiator,
|
|
|
|
|
|
CancellationToken ct = default);
|
|
|
|
|
|
}
|