namespace CMSMicroservice.Application.NetworkMembershipCQ.Commands.JoinNetwork;

/// <summary>
/// Command برای افزودن کاربر به شبکه دوتایی (Binary Network)
/// </summary>
public record JoinNetworkCommand : IRequest<long>
{
    /// <summary>
    /// شناسه کاربر که می‌خواهد به شبکه بپیوندد
    /// </summary>
    public long UserId { get; init; }

    /// <summary>
    /// شناسه والد در شبکه (Sponsor/Parent)
    /// </summary>
    public long ParentId { get; init; }

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

    /// <summary>
    /// دلیل/یادداشت (اختیاری)
    /// </summary>
    public string? Reason { get; init; }
}
