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

namespace TeleWave.Application.Programming.Groups.UpdateGroup;

/// <summary>
/// Имя, описание, правило набора и режим. <paramref name="Filter"/> = null снимает правило;
/// состав группы при этом не меняется. <paramref name="Mode"/> = null оставляет режим как есть.
/// </summary>
public sealed record UpdateGroupCommand(
    Guid GroupId,
    string Name,
    string? Description,
    GroupFilter? Filter,
    GroupMode? Mode = null
) : ICommand<Result>;
