using CMSMicroservice.Application.Common.Models;
using MediatR;

namespace CMSMicroservice.Application.ClubMembershipCQ.Commands.ActivateClubMembership;

/// <summary>
/// Command برای فعال‌سازی عضویت باشگاه مشتریان یک کاربر
/// </summary>
public record ActivateClubMembershipCommand : IRequest<bool>
{
    /// <summary>
    /// شناسه کاربر
    /// </summary>
    public long UserId { get; init; }

    /// <summary>
    /// فعال‌سازی اجباری توسط ادمین — بدون بررسی سفارش و کیف‌پول
    /// </summary>
    public bool ForceActivation { get; init; }

    /// <summary>
    /// شناسه پکیج — فقط در ForceActivation استفاده می‌شود.
    /// اگر 0 باشد، پکیج پایه (IsBasePackage) استفاده می‌شود.
    /// </summary>
    public long PackageId { get; init; }
}
