using FluentValidation;

namespace NetinaShop.Repository.Handlers.Discounts.Validators;

public class UpdateDiscountCommandValidator : AbstractValidator<CreateDiscountCommand>
{
    public UpdateDiscountCommandValidator()
    {
        RuleFor(d => d.Type)
            .Must((command, type) =>
            {
                if (type == DiscountType.Category)
                {
                    if (command.CategoryId == default)
                        return false;
                    else
                        return true;
                }

                return true;
            })
            .WithMessage("برای تخفیف برروی دسته ها باید دسته مورد نظر را وارد کنید");

        RuleFor(d => d.Type)
            .Must((command, type) =>
            {
                if (type == DiscountType.Product)
                {
                    if (command.ProductId == default)
                        return false;
                    else
                        return true;
                }

                return true;
            })
            .WithMessage("برای تخفیف برروی کالای خاص باید کالای مورد نظر را وارد کنید");
    }
}