using FluentValidation;

namespace SIGCM2.Application.TiposDeIva.NuevaVersion;

public sealed class NuevaVersionTipoDeIvaCommandValidator : AbstractValidator<NuevaVersionTipoDeIvaCommand>
{
    public NuevaVersionTipoDeIvaCommandValidator()
    {
        RuleFor(x => x.PredecesoraId)
            .GreaterThan(0).WithMessage("El id de la predecesora debe ser mayor a 0.");

        RuleFor(x => x.NuevoPorcentaje)
            .InclusiveBetween(0m, 100m)
            .WithMessage("El nuevo porcentaje debe estar entre 0 y 100.");

        RuleFor(x => x.VigenciaDesde)
            .NotEqual(default(DateOnly))
            .WithMessage("La fecha de vigencia desde es requerida.");
    }
}
