using TeleWave.Domain.Library;

namespace TeleWave.Application.Library.Genres;

/// <summary>Сборка набора вариантов написания из пользовательского ввода: к явно заданным всегда
/// добавляются само название и ключ жанра — по ним провайдеры отдают жанр чаще всего.</summary>
public static class GenreAliasInput
{
    public static IReadOnlyList<string> Collect(
        string name,
        string slug,
        IReadOnlyList<string>? aliases
    ) =>
        (aliases ?? [])
            .Append(name)
            .Append(slug)
            .Select(GenreAlias.Normalize)
            .Where(value => value.Length > 0)
            .Distinct(StringComparer.Ordinal)
            .ToList();
}
