using FluentValidation; using SIGCM2.Domain.Entities; namespace SIGCM2.Application.Medios.Create; public sealed class CreateMedioCommandValidator : AbstractValidator { private const int CodigoMaxLength = 30; private const int NombreMaxLength = 100; public CreateMedioCommandValidator() { RuleFor(x => x.Codigo) .NotEmpty().WithMessage("El código es requerido.") .MaximumLength(CodigoMaxLength).WithMessage($"El código no puede superar los {CodigoMaxLength} caracteres.") .Matches(@"^[A-Za-z0-9_]+$").WithMessage("El código solo puede contener letras, dígitos y guiones bajos."); 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) .IsInEnum().WithMessage("El tipo de medio no es válido."); } }