feat: PHASE 1 - Adresses et Rôles/Permissions
PHASE 1.1 - Entité Adresse: - Création entité Adresse avec types (SIEGE_SOCIAL, BUREAU, DOMICILE, AUTRE) - Relations flexibles: Organisation, Membre, Evenement - Enum TypeAdresse dans module API (DRY/WOU) - Repository et Service AdresseService - Relations bidirectionnelles mises à jour PHASE 1.2 - Système Rôles et Permissions: - Entité Role avec types (SYSTEME, ORGANISATION, PERSONNALISE) - Entité Permission avec structure MODULE > RESSOURCE > ACTION - Tables de liaison MembreRole et RolePermission - Repositories pour toutes les entités - Services RoleService et PermissionService - Relations bidirectionnelles dans Membre Respect strict DRY/WOU: - Enums dans module API réutilisables - Patterns de service cohérents - Relations JPA standardisées
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
package dev.lions.unionflow.server.api.dto.adresse;
|
||||
|
||||
import dev.lions.unionflow.server.api.dto.base.BaseDTO;
|
||||
import dev.lions.unionflow.server.api.enums.adresse.TypeAdresse;
|
||||
import jakarta.validation.constraints.DecimalMax;
|
||||
import jakarta.validation.constraints.DecimalMin;
|
||||
import jakarta.validation.constraints.Digits;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.UUID;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* DTO pour la gestion des adresses
|
||||
*
|
||||
* @author UnionFlow Team
|
||||
* @version 3.0
|
||||
* @since 2025-01-29
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
public class AdresseDTO extends BaseDTO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** Type d'adresse */
|
||||
@NotNull(message = "Le type d'adresse est obligatoire")
|
||||
private TypeAdresse typeAdresse;
|
||||
|
||||
/** Adresse complète */
|
||||
private String adresse;
|
||||
|
||||
/** Complément d'adresse */
|
||||
private String complementAdresse;
|
||||
|
||||
/** Code postal */
|
||||
private String codePostal;
|
||||
|
||||
/** Ville */
|
||||
private String ville;
|
||||
|
||||
/** Région */
|
||||
private String region;
|
||||
|
||||
/** Pays */
|
||||
private String pays;
|
||||
|
||||
/** Latitude */
|
||||
@DecimalMin(value = "-90.0", message = "La latitude doit être comprise entre -90 et 90")
|
||||
@DecimalMax(value = "90.0", message = "La latitude doit être comprise entre -90 et 90")
|
||||
@Digits(integer = 3, fraction = 6)
|
||||
private BigDecimal latitude;
|
||||
|
||||
/** Longitude */
|
||||
@DecimalMin(value = "-180.0", message = "La longitude doit être comprise entre -180 et 180")
|
||||
@DecimalMax(value = "180.0", message = "La longitude doit être comprise entre -180 et 180")
|
||||
@Digits(integer = 3, fraction = 6)
|
||||
private BigDecimal longitude;
|
||||
|
||||
/** Adresse principale */
|
||||
private Boolean principale;
|
||||
|
||||
/** Libellé personnalisé */
|
||||
private String libelle;
|
||||
|
||||
/** Notes et commentaires */
|
||||
private String notes;
|
||||
|
||||
/** ID de l'organisation (si adresse d'organisation) */
|
||||
private UUID organisationId;
|
||||
|
||||
/** ID du membre (si adresse de membre) */
|
||||
private UUID membreId;
|
||||
|
||||
/** ID de l'événement (si adresse d'événement) */
|
||||
private UUID evenementId;
|
||||
|
||||
/** Adresse complète formatée (calculée) */
|
||||
private String adresseComplete;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package dev.lions.unionflow.server.api.enums.adresse;
|
||||
|
||||
/**
|
||||
* Énumération des types d'adresse dans UnionFlow
|
||||
*
|
||||
* @author UnionFlow Team
|
||||
* @version 3.0
|
||||
* @since 2025-01-29
|
||||
*/
|
||||
public enum TypeAdresse {
|
||||
SIEGE_SOCIAL("Siège Social"),
|
||||
BUREAU("Bureau"),
|
||||
DOMICILE("Domicile"),
|
||||
AUTRE("Autre");
|
||||
|
||||
private final String libelle;
|
||||
|
||||
TypeAdresse(String libelle) {
|
||||
this.libelle = libelle;
|
||||
}
|
||||
|
||||
public String getLibelle() {
|
||||
return libelle;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user