using FluentValidation;

namespace SIGCM2.Application.IngresosBrutos.NuevaVersion;

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

        RuleFor(x => x.NuevaAlicuota)
            .InclusiveBetween(0m, 100m)
            .WithMessage("La nueva alícuota debe estar entre 0 y 100.");

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