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

namespace TeleWave.Application.Library.DeleteShow;

/// <summary>
/// Удаляет шоу. <paramref name="WithMedia"/> — снести заодно его файлы: сами по себе они пережили
/// бы шоу и остались бы в списке медиа осиротевшими, занимая место.
/// </summary>
/// <param name="WithSchedule">
/// Вырезать шоу из будущего эфира вместо отказа. Нужен там, где пересборка канала не спасает:
/// запись уже идёт, канал выключен или шоу стоит на нескольких каналах. На месте вырезанного
/// зритель увидит фон, пока хвост не пересоберут.
/// </param>
public sealed record DeleteShowCommand(
    Guid ShowId,
    bool WithMedia = false,
    bool WithSchedule = false
) : ICommand<Result>;
