namespace CMSMicroservice.Application.ClubMembershipCQ.Commands.AcceptClubMembershipContract;

/// <summary>
/// Command برای پذیرش قرارداد باشگاه مشتریان
/// </summary>
public record AcceptClubMembershipContractCommand : IRequest<AcceptClubMembershipContractResponseDto>
{
    /// <summary>
    /// شناسه کاربر
    /// </summary>
    public long UserId { get; init; }
    
    /// <summary>
    /// کد OTP برای تایید
    /// </summary>
    public string OtpCode { get; init; }
    
    /// <summary>
    /// شناسه یکتای امضا (GUID)
    /// </summary>
    public string SignGuid { get; init; }
    
    /// <summary>
    /// محتوای HTML قرارداد
    /// </summary>
    public string ContractHtml { get; init; }
}

/// <summary>
/// DTO پاسخ پذیرش قرارداد باشگاه مشتریان
/// </summary>
public class AcceptClubMembershipContractResponseDto
{
    /// <summary>
    /// آیا عملیات موفق بود؟
    /// </summary>
    public bool Success { get; set; }
    
    /// <summary>
    /// پیام نتیجه
    /// </summary>
    public string Message { get; set; }
    
    /// <summary>
    /// شناسه قرارداد ثبت شده
    /// </summary>
    public long ContractId { get; set; }
}
