namespace CMSMicroservice.Application.InventoryItemCQ.Commands.UpdateInventoryItem;

public class UpdateInventoryItemCommandValidator : AbstractValidator<UpdateInventoryItemCommand>
{
    public UpdateInventoryItemCommandValidator()
    {
        RuleFor(x => x.Id)
            .GreaterThan(0).WithMessage("شناسه آیتم موجودی معتبر نیست");

        RuleFor(x => x.MinimumStock)
            .GreaterThanOrEqualTo(0).When(x => x.MinimumStock.HasValue)
            .WithMessage("حداقل موجودی نمی‌تواند منفی باشد");

        RuleFor(x => x.MaximumStock)
            .GreaterThanOrEqualTo(0).When(x => x.MaximumStock.HasValue)
            .WithMessage("حداکثر موجودی نمی‌تواند منفی باشد");

        RuleFor(x => x.ReorderPoint)
            .GreaterThanOrEqualTo(0).When(x => x.ReorderPoint.HasValue)
            .WithMessage("نقطه سفارش مجدد نمی‌تواند منفی باشد");
    }
}
