using ErsatzTV.Application.Scheduling;

namespace ErsatzTV.Controllers.Api.Requests;

public record ReplaceDecoTemplateRequest(string Name, List<DecoTemplateItemRequest> Items)
{
    public ReplaceDecoTemplateItems ToCommand(
        int decoTemplateGroupId,
        int decoTemplateId,
        Option<Seq<int>> expectedVersions = default) =>
        new(
            decoTemplateId,
            decoTemplateGroupId,
            Name,
            (Items ?? []).Select(item => item.ToReplaceItem()).ToList(),
            expectedVersions);
}
