30 lines
1.1 KiB
C#
30 lines
1.1 KiB
C#
using FluentValidation;
|
|
|
|
namespace SIGCM2.Application.PuntosDeVenta.Create;
|
|
|
|
public sealed class CreatePuntoDeVentaCommandValidator : AbstractValidator<CreatePuntoDeVentaCommand>
|
|
{
|
|
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);
|
|
}
|
|
}
|