using FluentValidation; namespace SIGCM2.Application.PuntosDeVenta.Create; public sealed class CreatePuntoDeVentaCommandValidator : AbstractValidator { private const int NombreMaxLength = 100; private const int DescripcionMaxLength = 255; private const short NumeroAFIPMin = 1; private const short NumeroAFIPMax = 9999; public CreatePuntoDeVentaCommandValidator() { RuleFor(x => x.MedioId) .GreaterThan(0).WithMessage("El medioId debe ser mayor a 0."); RuleFor(x => x.NumeroAFIP) .InclusiveBetween(NumeroAFIPMin, NumeroAFIPMax) .WithMessage($"El número AFIP debe estar entre {NumeroAFIPMin} y {NumeroAFIPMax}."); RuleFor(x => x.Nombre) .NotEmpty().WithMessage("El nombre es requerido.") .MaximumLength(NombreMaxLength).WithMessage($"El nombre no puede superar los {NombreMaxLength} caracteres."); RuleFor(x => x.Descripcion) .MaximumLength(DescripcionMaxLength).WithMessage($"La descripción no puede superar los {DescripcionMaxLength} caracteres.") .When(x => x.Descripcion is not null); } }