using CMSMicroservice.Domain.Common; using FluentValidation; namespace CMSMicroservice.Application.ManualPaymentCQ.Commands.CreateManualPayment; public class CreateManualPaymentCommandValidator : AbstractValidator { public CreateManualPaymentCommandValidator() { RuleFor(x => x.UserId) .GreaterThan(0) .WithMessage("شناسه کاربر باید بزرگتر از صفر باشد"); // حصار ایمنی — مبلغ واقعی از پکیج کاربر خوانده می‌شود RuleFor(x => x.Amount) .GreaterThan(0) .WithMessage("مبلغ باید بزرگتر از صفر باشد") .LessThanOrEqualTo(SystemConstants.WalletMaxSafeAmount) .WithMessage("مبلغ وارد شده بیش از حد مجاز است"); RuleFor(x => x.Type) .IsInEnum() .WithMessage("نوع تراکنش نامعتبر است"); RuleFor(x => x.Description) .NotEmpty() .WithMessage("توضیحات الزامی است") .MaximumLength(1000) .WithMessage("توضیحات نمی‌تواند بیشتر از 1000 کاراکتر باشد"); RuleFor(x => x.ReferenceNumber) .MaximumLength(100) .WithMessage("شماره مرجع نمی‌تواند بیشتر از 100 کاراکتر باشد") .When(x => !string.IsNullOrEmpty(x.ReferenceNumber)); } }