using FluentValidation; using SchotzIadKmTracker.Api.Models.DTOs; namespace SchotzIadKmTracker.Api.Validators; // Validation de la création d'un véhicule (Requirements 10.11, 6.3). public class CreateVehiculeDtoValidator : AbstractValidator { public CreateVehiculeDtoValidator() { RuleFor(x => x.Denomination) .NotEmpty().WithMessage("La dénomination est obligatoire.") .MaximumLength(100).WithMessage("La dénomination ne peut dépasser 100 caractères."); RuleFor(x => x.Plaque) .NotEmpty().WithMessage("La plaque est obligatoire.") .MaximumLength(15).WithMessage("La plaque ne peut dépasser 15 caractères."); RuleFor(x => x.PuissanceFiscale) .GreaterThan(0).WithMessage("La puissance fiscale doit être strictement positive."); RuleFor(x => x.DateEffet) .NotEmpty().WithMessage("La date d'effet est obligatoire.") .Matches(DateValidation.FormatJjMmAAAA).WithMessage("Format de date invalide (JJ/MM/AAAA).") .Must(DateValidation.BeAValidDateNotInFuture) .WithMessage("La date d'effet doit être une date existante et ne peut être postérieure à aujourd'hui."); } }