- SimpleTemplateSynchronizer и GroupedTemplateSynchronizer переведены на паттерн Pipeline с разделением на Read/Write этапы - Выделены контракты этапов (ISimpleSyncStage, IGroupedSyncStage) и контексты (SimpleSyncContext, GroupedSyncContext) - Read-этапы безопасны для тестов (не пишут в БД/MQ), Write-этапы изолированы через отдельные интерфейсы - Добавлено [Perf]-логирование каждого этапа с метриками времени выполнения - Логи приведены к человекочитаемому формату 'Имя' (ID) для Job, JobGroup и Unit - Устранено дублирование данных в контекстах (FilteredUnits перезаписывается, TemplateGroups строго типизирован) - Константы неиспользуемых шаблонов вынесены в UnusedTemplateConstants - Структура проекта реорганизована: SimpleSync, GroupedSync, Implementations, Interfaces
18 lines
722 B
C#
18 lines
722 B
C#
using PARR.Domain.Entities.Job;
|
|
using PARR.TemplateMatcher.Models;
|
|
|
|
namespace PARR.TemplateMatcher.Services.GroupedSync;
|
|
|
|
public interface IGroupedTemplateBuilder
|
|
{
|
|
/// <summary>
|
|
/// Строит структуру групп для создания групповых шаблонов.
|
|
/// Трансформирует связи в пары (UnitId, UnitFieldValueId),
|
|
/// выполняет внутреннюю группировку и разбиение на подгруппы.
|
|
/// </summary>
|
|
Task<List<GroupedTemplateGroup>> BuildAsync(
|
|
Dictionary<Guid, List<Guid>> initialReverseMapping,
|
|
JobGroup jobGroup,
|
|
Job maxJob,
|
|
CancellationToken ct = default);
|
|
} |