using FluentValidation; using SIGCM2.Domain.Entities; namespace SIGCM2.Application.Secciones.Update; public sealed class UpdateSeccionCommandValidator : AbstractValidator { private const int NombreMaxLength = 100; public UpdateSeccionCommandValidator() { RuleFor(x => x.Id) .GreaterThan(0).WithMessage("El id debe ser mayor a 0."); RuleFor(x => x.Nombre) .NotEmpty().WithMessage("El nombre es requerido.") .MaximumLength(NombreMaxLength).WithMessage($"El nombre no puede superar los {NombreMaxLength} caracteres."); RuleFor(x => x.Tipo) .NotEmpty().WithMessage("El tipo es requerido.") .Must(t => TipoSeccion.AllowedTipos.Contains(t)) .WithMessage($"El tipo debe ser uno de: {string.Join(", ", TipoSeccion.AllowedTipos)}."); } }