using LiteCqrs;
using TeleWave.Application.Common.Models;

namespace TeleWave.Application.Metadata.EnrichShows;

/// <summary>
/// Массовое обогащение: найти метаданные по названию и применить — для шоу, у которых источник ещё
/// не привязан. Список шоу приходит явно (отмеченные галочками), а не «все подряд»: автоподбор по
/// названию иногда промахивается, и цена ошибки — чужой постер и чужой рейтинг у шоу в эфире.
/// </summary>
public sealed record EnrichShowsMetadataCommand(IReadOnlyList<Guid> ShowIds, string Provider)
    : ICommand<Result<EnrichShowsResultDto>>;

/// <param name="Applied">Скольким шоу метаданные применены.</param>
/// <param name="Skipped">Что пропущено и почему — по одной строке на шоу.</param>
public sealed record EnrichShowsResultDto(int Applied, IReadOnlyList<EnrichSkipDto> Skipped);

public sealed record EnrichSkipDto(Guid ShowId, string ShowName, string Reason);
