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

namespace TeleWave.Application.Programming.Groups.ExcludeGroupElement;

/// <summary>
/// Исключить элемент из динамической группы (<paramref name="Excluded"/> = true) либо вернуть его
/// правилу. Удалить найденное правилом «насовсем» нельзя — на следующем обращении оно вернулось бы;
/// именно поэтому поправка хранится, а не применяется разово.
/// </summary>
public sealed record ExcludeGroupElementCommand(
    Guid GroupId,
    GroupElementKind ElementKind,
    Guid ElementId,
    bool Excluded
) : ICommand<Result>;
