using NodePipeline.Abstractions.Exceptions;

namespace NodePipeline.Engine.Exceptions.PipelineRegistry.Registration;

public sealed class DuplicateNodeIdsException(string pipelineId, IEnumerable<string> duplicateNodeIds)
    : PipelineException(pipelineId, Constants.Exceptions.PipelineRegistry.Registration.DuplicateNodeIdsException)
{
    private readonly HashSet<string> _duplicateNodeIds = duplicateNodeIds.Distinct()
        .ToHashSet(StringComparer.InvariantCulture);

    // public void a()
    // {
    //     var d = new Dictionary<string, string>();
    //     
    //     var @string = string.Format(d[base.Message], PipelineId, string.Join(\"\r\n", DuplicateNodeIds));
    // }

    public IReadOnlySet<string> DuplicateNodeIds => _duplicateNodeIds;
}