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")
|
||||
|
||||
@@ -29,11 +29,14 @@ public class MembreDTO extends BaseDTO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** Numéro unique du membre (format: UF-YYYY-XXXXXXXX) - Optionnel, peut être généré automatiquement */
|
||||
/**
|
||||
* Numéro unique du membre (format: UF-YYYY-XXXXXXXX)
|
||||
* AUTO-GÉNÉRÉ si non fourni - Ne pas afficher dans le formulaire de création
|
||||
*/
|
||||
@Size(max = 50, message = "Le numéro de membre ne peut pas dépasser 50 caractères")
|
||||
private String numeroMembre;
|
||||
|
||||
/** Nom de famille du membre */
|
||||
/** Nom de famille du membre - OBLIGATOIRE */
|
||||
@NotBlank(message = "Le nom" + ValidationConstants.OBLIGATOIRE_MESSAGE)
|
||||
@Size(
|
||||
min = ValidationConstants.NOM_PRENOM_MIN_LENGTH,
|
||||
@@ -44,7 +47,7 @@ public class MembreDTO extends BaseDTO {
|
||||
message = "Le nom ne peut contenir que des lettres, espaces, tirets et apostrophes")
|
||||
private String nom;
|
||||
|
||||
/** Prénom du membre */
|
||||
/** Prénom du membre - OBLIGATOIRE */
|
||||
@NotBlank(message = "Le prénom" + ValidationConstants.OBLIGATOIRE_MESSAGE)
|
||||
@Size(
|
||||
min = ValidationConstants.NOM_PRENOM_MIN_LENGTH,
|
||||
@@ -55,18 +58,22 @@ public class MembreDTO extends BaseDTO {
|
||||
message = "Le prénom ne peut contenir que des lettres, espaces, tirets et apostrophes")
|
||||
private String prenom;
|
||||
|
||||
/** Adresse email du membre */
|
||||
/** Adresse email du membre - OBLIGATOIRE */
|
||||
@NotBlank(message = "L'email" + ValidationConstants.OBLIGATOIRE_MESSAGE)
|
||||
@Email(message = ValidationConstants.EMAIL_FORMAT_MESSAGE)
|
||||
@Size(
|
||||
max = ValidationConstants.EMAIL_MAX_LENGTH,
|
||||
message = ValidationConstants.EMAIL_SIZE_MESSAGE)
|
||||
private String email;
|
||||
|
||||
/** Numéro de téléphone du membre - Format flexible */
|
||||
/** 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 */
|
||||
/**
|
||||
* Date de naissance du membre - OPTIONNELLE
|
||||
* AUTO-GÉNÉRÉE à il y a 18 ans si non fournie - Peut être laissée vide dans le formulaire
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Past(message = "La date de naissance doit être dans le passé")
|
||||
private LocalDate dateNaissance;
|
||||
@@ -95,18 +102,21 @@ public class MembreDTO extends BaseDTO {
|
||||
@Size(max = 20, message = "Le type d'identité ne peut pas dépasser 20 caractères")
|
||||
private String typeIdentite;
|
||||
|
||||
/** Statut du membre */
|
||||
/** Statut du membre - OBLIGATOIRE */
|
||||
@NotNull(message = "Le statut est obligatoire")
|
||||
private StatutMembre statut;
|
||||
|
||||
/** Identifiant de l'association à laquelle appartient le membre */
|
||||
/** Identifiant de l'association à laquelle appartient le membre - OBLIGATOIRE */
|
||||
@NotNull(message = "L'association est obligatoire")
|
||||
private UUID associationId;
|
||||
|
||||
/** Nom de l'association (lecture seule) */
|
||||
private String associationNom;
|
||||
|
||||
/** Date d'adhésion du membre */
|
||||
/**
|
||||
* Date d'adhésion du membre - OPTIONNELLE
|
||||
* AUTO-GÉNÉRÉE à LocalDate.now() si non fournie - Ne pas afficher dans le formulaire de création
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate dateAdhesion;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user