using FluentValidation; using SchotzIadKmTracker.Api.Models.DTOs; namespace SchotzIadKmTracker.Api.Validators; // Validation de l'inscription (Requirements 1.3, 1.4, 8.2). public class RegisterDtoValidator : AbstractValidator { public RegisterDtoValidator() { RuleFor(x => x.Email) .NotEmpty().WithMessage("L'adresse email est obligatoire.") .EmailAddress().WithMessage("Adresse email invalide."); RuleFor(x => x.MotDePasse) .NotEmpty().WithMessage("Le mot de passe est obligatoire.") .MinimumLength(8).WithMessage("Le mot de passe doit comporter au moins 8 caractères."); } } // Validation de la connexion (Requirements 1.4, 2.2). public class LoginDtoValidator : AbstractValidator { public LoginDtoValidator() { RuleFor(x => x.Email) .NotEmpty().WithMessage("L'adresse email est obligatoire.") .EmailAddress().WithMessage("Adresse email invalide."); RuleFor(x => x.MotDePasse) .NotEmpty().WithMessage("Le mot de passe est obligatoire."); } } // Validation de la demande de réinitialisation (Requirements 1.4, 6). public class ForgotPasswordDtoValidator : AbstractValidator { public ForgotPasswordDtoValidator() { RuleFor(x => x.Email) .NotEmpty().WithMessage("L'adresse email est obligatoire.") .EmailAddress().WithMessage("Adresse email invalide."); } } // Validation de la réinitialisation du mot de passe (Requirements 7.4, 7.5). public class ResetPasswordDtoValidator : AbstractValidator { public ResetPasswordDtoValidator() { RuleFor(x => x.Token) .NotEmpty().WithMessage("Le jeton de réinitialisation est obligatoire."); RuleFor(x => x.NouveauMotDePasse) .NotEmpty().WithMessage("Le mot de passe est obligatoire.") .MinimumLength(8).WithMessage("Le mot de passe doit comporter au moins 8 caractères."); } }