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

namespace TeleWave.Application.Programming.Templates.Reset;

/// <summary>
/// Полный сброс сетки канала и собранного по ней эфира: слоты и слои снимаются, будущий хвост
/// ленты удаляется. Настройки шаблона (аварийная группа, стык по умолчанию, правила) остаются —
/// они переживают перекройку сетки, и терять их вместе со слотами админ не просит.
/// </summary>
public sealed record ResetTemplateCommand(Guid ChannelId)
    : ICommand<Result<ResetTemplateResultDto>>;

/// <param name="Slots">Сколько слотов снято.</param>
/// <param name="Layers">Сколько слоёв удалено — фоновый в счёт не идёт, он остаётся всегда.</param>
/// <param name="Entries">Сколько будущих записей эфира удалено.</param>
public sealed record ResetTemplateResultDto(int Slots, int Layers, int Entries);
