24 lines
1.1 KiB
C#
24 lines
1.1 KiB
C#
using PARR.Core.Services.UnitFilterService.Models;
|
|
using PARR.Domain.Entities.JobEntities;
|
|
|
|
namespace PARR.TemplateMatcher.Services.GroupedSync
|
|
{
|
|
/// <summary>
|
|
/// Разрешает конфликты при сопоставлении юнитов к шаблонам и строит итоговую карту связей.
|
|
/// </summary>
|
|
public interface IUnitInTemplateConflictMapper
|
|
{
|
|
/// <summary>
|
|
/// Строит маппинг: UnitId шаблона -> [Список юнитов в UnitsInTemplate].
|
|
/// При наличии нескольких кандидатов для одного юнита выбирается лучший по приоритету:
|
|
/// 1. Наличие в таблице UnitKiiUnit
|
|
/// 2. Наибольшее количество связей
|
|
/// 3. Алфавитный порядок имени юнита
|
|
/// </summary>
|
|
Task<Dictionary<Guid, List<Guid>>> BuildMappingAsync(
|
|
IEnumerable<UnitFilterResultDto> unitFilterResults,
|
|
Job maxJob,
|
|
CancellationToken ct = default);
|
|
}
|
|
}
|