using PARR.Domain.Entities;
using PARR.Domain.Entities.Base.History;
using PARR.Domain.Entities.JobEntities;
namespace PARR.TemplateMatcher.Services.SimpleSync
{
///
/// Контекст синхронизации простого шаблона. Передаётся между этапами.
///
public class SimpleSyncContext
{
public Guid JobId { get; init; }
public string JobName { get; set; } = string.Empty;
public HistoryInitiator Initiator { get; init; } = null!;
public Job Job { get; set; } = null!;
public HashSet FilteredUnitIds { get; set; } = new();
///
/// Имена юнитов для логирования. Заполняется на этапе фильтрации.
///
public Dictionary UnitNames { get; set; } = new();
public List ExistingUsedTemplates { get; set; } = new();
public List NewUnitIds { get; set; } = new();
public List UnusedTemplates { get; set; } = new();
public List<(Template Template, string ExpectedName)> TemplatesToRename { get; set; } = new();
///
/// Возвращает строку вида 'Имя' (ID) для логирования.
/// Если имя неизвестно — возвращает только ID.
///
public string FormatUnit(Guid unitId)
{
return UnitNames.TryGetValue(unitId, out var name)
? $"'{name}' ({unitId})"
: $"({unitId})";
}
}
}