using FluentValidation;

namespace TeleWave.Application.Library.Collections.AddShowsToCollection;

public sealed class AddShowsToCollectionCommandValidator
    : AbstractValidator<AddShowsToCollectionCommand>
{
    public AddShowsToCollectionCommandValidator()
    {
        RuleFor(x => x.ShowIds).NotEmpty();
        // Либо кладём в существующую, либо заводим новую — «ни то ни другое» указывает на ошибку UI.
        RuleFor(x => x)
            .Must(x =>
                x.CollectionId is not null || !string.IsNullOrWhiteSpace(x.NewCollectionName)
            )
            .WithMessage("Не указано, в какую коллекцию складывать.");
        RuleFor(x => x.NewCollectionName).MaximumLength(256);
    }
}
