using FluentValidation;

namespace CMSMicroservice.Application.PackageCQ.Commands.PurchaseGoldenPackage;

public class PurchaseGoldenPackageCommandValidator : AbstractValidator<PurchaseGoldenPackageCommand>
{
    public PurchaseGoldenPackageCommandValidator()
    {
        RuleFor(x => x.UserId)
            .GreaterThan(0)
            .WithMessage("شناسه کاربر باید بزرگتر از 0 باشد");

        RuleFor(x => x.PackageId)
            .GreaterThan(0)
            .WithMessage("شناسه پکیج باید بزرگتر از 0 باشد");

        RuleFor(x => x.ReturnUrl)
            .NotEmpty()
            .WithMessage("آدرس بازگشت الزامی است")
            .Must(url => Uri.TryCreate(url, UriKind.Absolute, out _))
            .WithMessage("آدرس بازگشت معتبر نیست");
    }
}
