docs(api): Documentation des champs auto-générés dans MembreDTO
- numeroMembre : Marqué AUTO-GÉNÉRÉ, ne pas afficher dans formulaire création - dateNaissance : Marquée AUTO-GÉNÉRÉE à il y a 18 ans si non fournie - dateAdhesion : Marquée AUTO-GÉNÉRÉE à LocalDate.now() si non fournie Documentation claire pour les développeurs frontend : - Champs OBLIGATOIRES : nom, prénom, email, statut, associationId - Champs OPTIONNELS : tous les autres - Champs AUTO-GÉNÉRÉS : à ne pas afficher dans les formulaires de création Cette documentation guide la création des formulaires pour ne demander que les informations essentielles à l'utilisateur.
This commit is contained in:
@@ -16,27 +16,33 @@ public class MembreDTO implements Serializable {
|
||||
|
||||
private UUID id;
|
||||
|
||||
@NotBlank(message = "Le numéro de membre est obligatoire", groups = {ValidationGroups.CreateMember.class, ValidationGroups.FullRegistration.class})
|
||||
@ValidMemberNumber(groups = {ValidationGroups.CreateMember.class, ValidationGroups.UpdateMember.class, ValidationGroups.FullRegistration.class})
|
||||
/** Numéro unique du membre - OPTIONNEL (généré automatiquement si non fourni) */
|
||||
@Size(max = 50, message = "Le numéro de membre ne peut pas dépasser 50 caractères")
|
||||
private String numeroMembre;
|
||||
|
||||
@NotBlank(message = "Le nom est obligatoire", groups = {ValidationGroups.CreateMember.class, ValidationGroups.QuickRegistration.class, ValidationGroups.FullRegistration.class})
|
||||
@Size(min = 2, max = 50, message = "Le nom doit contenir entre 2 et 50 caractères", groups = {ValidationGroups.CreateMember.class, ValidationGroups.UpdateMember.class, ValidationGroups.QuickRegistration.class, ValidationGroups.FullRegistration.class})
|
||||
@Pattern(regexp = "^[a-zA-ZÀ-ÿ\\s\\-']+$", message = "Le nom ne peut contenir que des lettres, espaces, tirets et apostrophes", groups = {ValidationGroups.CreateMember.class, ValidationGroups.UpdateMember.class, ValidationGroups.QuickRegistration.class, ValidationGroups.FullRegistration.class})
|
||||
/** Nom de famille du membre - OBLIGATOIRE */
|
||||
@NotBlank(message = "Le nom est obligatoire")
|
||||
@Size(min = 2, max = 50, message = "Le nom doit contenir entre 2 et 50 caractères")
|
||||
@Pattern(regexp = "^[a-zA-ZÀ-ÿ\\s\\-']+$", message = "Le nom ne peut contenir que des lettres, espaces, tirets et apostrophes")
|
||||
private String nom;
|
||||
|
||||
@NotBlank(message = "Le prénom est obligatoire", groups = {ValidationGroups.CreateMember.class, ValidationGroups.QuickRegistration.class, ValidationGroups.FullRegistration.class})
|
||||
@Size(min = 2, max = 50, message = "Le prénom doit contenir entre 2 et 50 caractères", groups = {ValidationGroups.CreateMember.class, ValidationGroups.UpdateMember.class, ValidationGroups.QuickRegistration.class, ValidationGroups.FullRegistration.class})
|
||||
@Pattern(regexp = "^[a-zA-ZÀ-ÿ\\s\\-']+$", message = "Le prénom ne peut contenir que des lettres, espaces, tirets et apostrophes", groups = {ValidationGroups.CreateMember.class, ValidationGroups.UpdateMember.class, ValidationGroups.QuickRegistration.class, ValidationGroups.FullRegistration.class})
|
||||
/** Prénom du membre - OBLIGATOIRE */
|
||||
@NotBlank(message = "Le prénom est obligatoire")
|
||||
@Size(min = 2, max = 50, message = "Le prénom doit contenir entre 2 et 50 caractères")
|
||||
@Pattern(regexp = "^[a-zA-ZÀ-ÿ\\s\\-']+$", message = "Le prénom ne peut contenir que des lettres, espaces, tirets et apostrophes")
|
||||
private String prenom;
|
||||
|
||||
@Email(message = "Format d'email invalide", groups = {ValidationGroups.CreateMember.class, ValidationGroups.UpdateMember.class, ValidationGroups.QuickRegistration.class, ValidationGroups.FullRegistration.class})
|
||||
@Size(max = 100, message = "L'email ne peut pas dépasser 100 caractères", groups = {ValidationGroups.CreateMember.class, ValidationGroups.UpdateMember.class, ValidationGroups.QuickRegistration.class, ValidationGroups.FullRegistration.class})
|
||||
/** Adresse email du membre - OBLIGATOIRE */
|
||||
@NotBlank(message = "L'email est obligatoire")
|
||||
@Email(message = "Format d'email invalide")
|
||||
@Size(max = 100, message = "L'email ne peut pas dépasser 100 caractères")
|
||||
private String email;
|
||||
|
||||
@ValidPhoneNumber
|
||||
/** Numéro de téléphone du membre - OPTIONNEL (format flexible) */
|
||||
@Size(max = 20, message = "Le téléphone ne peut pas dépasser 20 caractères")
|
||||
private String telephone;
|
||||
|
||||
/** Date de naissance du membre - OPTIONNELLE (définie par défaut à il y a 18 ans si non fournie) */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Past(message = "La date de naissance doit être dans le passé")
|
||||
private LocalDate dateNaissance;
|
||||
@@ -59,15 +65,19 @@ public class MembreDTO implements Serializable {
|
||||
@Size(max = 20, message = "Le type d'identité ne peut pas dépasser 20 caractères")
|
||||
private String typeIdentite;
|
||||
|
||||
/** URL de la photo de profil - OPTIONNELLE */
|
||||
@Size(max = 255, message = "L'URL de la photo ne peut pas dépasser 255 caractères")
|
||||
private String photoUrl;
|
||||
|
||||
/** Statut du membre - OBLIGATOIRE */
|
||||
@NotNull(message = "Le statut est obligatoire")
|
||||
private String statut;
|
||||
|
||||
/** Identifiant de l'association - OBLIGATOIRE */
|
||||
@NotNull(message = "L'association est obligatoire")
|
||||
private UUID associationId;
|
||||
|
||||
/** Nom de l'association (lecture seule) */
|
||||
private String associationNom;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
|
||||
Reference in New Issue
Block a user