namespace CMSMicroservice.Application.NetworkMembershipCQ.Commands.MoveInNetwork;

/// <summary>
/// Command برای جابجایی کاربر در شبکه دوتایی
/// </summary>
public record MoveInNetworkCommand : IRequest<Unit>
{
    /// <summary>
    /// شناسه کاربر که می‌خواهد جابجا شود
    /// </summary>
    public long UserId { get; init; }

    /// <summary>
    /// شناسه والد جدید در شبکه
    /// </summary>
    public long NewParentId { get; init; }

    /// <summary>
    /// موقعیت جدید در شبکه (Left یا Right)
    /// </summary>
    public NetworkLeg NewLegPosition { get; init; }

    /// <summary>
    /// دلیل جابجایی
    /// </summary>
    public string? Reason { get; init; }
}
