using FluentValidation;

namespace CMSMicroservice.Application.DiscountShopCQ.Commands.UpdateOrderStatus;

public class UpdateOrderStatusCommandValidator : AbstractValidator<UpdateOrderStatusCommand>
{
    public UpdateOrderStatusCommandValidator()
    {
        RuleFor(x => x.OrderId)
            .GreaterThan(0).WithMessage("شناسه سفارش باید مثبت باشد");

        RuleFor(x => x.DeliveryStatus)
            .IsInEnum().WithMessage("وضعیت ارسال نامعتبر است");

        RuleFor(x => x.TrackingCode)
            .MaximumLength(50).WithMessage("کد رهگیری نباید بیشتر از 50 کاراکتر باشد")
            .When(x => !string.IsNullOrEmpty(x.TrackingCode));
    }
}
