using FluentValidation; using SchotzIadKmTracker.Api.Models.DTOs; namespace SchotzIadKmTracker.Api.Validators; // Validation de la création d'un trajet (Requirements 1.4, 1.5, 1.6, 1.7, 1.12, 6.3). public class CreateTrajetDtoValidator : AbstractValidator { public CreateTrajetDtoValidator() { RuleFor(x => x.Date) .NotEmpty().WithMessage("La date est obligatoire.") .Matches(DateValidation.FormatJjMmAAAA).WithMessage("Format de date invalide (JJ/MM/AAAA).") .Must(DateValidation.BeAValidDate).WithMessage("La date n'est pas une date existante."); RuleFor(x => x.AdresseDepart) .NotEmpty().WithMessage("L'adresse de départ est obligatoire.") .MaximumLength(255).WithMessage("L'adresse de départ ne peut dépasser 255 caractères."); RuleFor(x => x.AdresseArrivee) .NotEmpty().WithMessage("L'adresse d'arrivée est obligatoire.") .MaximumLength(255).WithMessage("L'adresse d'arrivée ne peut dépasser 255 caractères."); RuleFor(x => x.Commentaire) .MaximumLength(500).WithMessage("Le commentaire ne peut dépasser 500 caractères."); } }