Refactoring

This commit is contained in:
dahoud
2026-03-01 22:00:28 +00:00
parent c0e2c4da45
commit 6b28cf751e
469 changed files with 26866 additions and 14768 deletions

View File

@@ -1,6 +1,7 @@
package dev.lions.unionflow.client.service;
import dev.lions.unionflow.client.dto.MembreDTO;
import dev.lions.unionflow.server.api.dto.membre.response.MembreResponse;
import org.eclipse.microprofile.rest.client.annotation.RegisterClientHeaders;
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
import jakarta.ws.rs.*;
import jakarta.ws.rs.core.MediaType;
@@ -8,112 +9,120 @@ import java.util.List;
import java.util.UUID;
@RegisterRestClient(configKey = "unionflow-api")
@RegisterClientHeaders(dev.lions.unionflow.client.security.AuthHeaderFactory.class)
@Path("/api/membres")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public interface MembreService {
@GET
List<MembreDTO> listerTous();
List<MembreResponse> listerTous();
@GET
@Path("/{id}")
MembreDTO obtenirParId(@PathParam("id") UUID id);
MembreResponse obtenirParId(@PathParam("id") UUID id);
@GET
@Path("/numero/{numeroMembre}")
MembreDTO obtenirParNumero(@PathParam("numeroMembre") String numeroMembre);
MembreResponse obtenirParNumero(@PathParam("numeroMembre") String numeroMembre);
@GET
@Path("/search")
List<MembreDTO> rechercher(
@QueryParam("nom") String nom,
@QueryParam("prenom") String prenom,
@QueryParam("email") String email,
@QueryParam("telephone") String telephone,
@QueryParam("statut") String statut,
@QueryParam("associationId") UUID associationId,
@QueryParam("page") @DefaultValue("0") int page,
@QueryParam("size") @DefaultValue("20") int size
);
List<MembreResponse> rechercher(
@QueryParam("nom") String nom,
@QueryParam("prenom") String prenom,
@QueryParam("email") String email,
@QueryParam("telephone") String telephone,
@QueryParam("statut") String statut,
@QueryParam("associationId") UUID associationId,
@QueryParam("page") @DefaultValue("0") int page,
@QueryParam("size") @DefaultValue("20") int size);
@POST
@Path("/search/advanced")
dev.lions.unionflow.server.api.dto.membre.MembreSearchResultDTO rechercherAvance(
dev.lions.unionflow.server.api.dto.membre.MembreSearchCriteria criteria,
@QueryParam("page") @DefaultValue("0") int page,
@QueryParam("size") @DefaultValue("20") int size,
@QueryParam("sort") @DefaultValue("nom") String sortField,
@QueryParam("direction") @DefaultValue("asc") String sortDirection);
@GET
@Path("/association/{associationId}")
List<MembreDTO> listerParAssociation(@PathParam("associationId") UUID associationId);
List<MembreResponse> listerParAssociation(@PathParam("associationId") UUID associationId);
@GET
@Path("/actifs")
List<MembreDTO> listerActifs();
List<MembreResponse> listerActifs();
@GET
@Path("/inactifs")
List<MembreDTO> listerInactifs();
List<MembreResponse> listerInactifs();
@POST
MembreDTO creer(MembreDTO membre);
MembreResponse creer(MembreResponse membre);
@PUT
@Path("/{id}")
MembreDTO modifier(@PathParam("id") UUID id, MembreDTO membre);
MembreResponse modifier(@PathParam("id") UUID id, MembreResponse membre);
@DELETE
@Path("/{id}")
void supprimer(@PathParam("id") UUID id);
@PUT
@Path("/{id}/activer")
MembreDTO activer(@PathParam("id") UUID id);
MembreResponse activer(@PathParam("id") UUID id);
@PUT
@Path("/{id}/desactiver")
MembreDTO desactiver(@PathParam("id") UUID id);
MembreResponse desactiver(@PathParam("id") UUID id);
@PUT
@Path("/{id}/suspendre")
MembreDTO suspendre(@PathParam("id") UUID id);
MembreResponse suspendre(@PathParam("id") UUID id);
@PUT
@Path("/{id}/radier")
MembreDTO radier(@PathParam("id") UUID id);
MembreResponse radier(@PathParam("id") UUID id);
@GET
@Path("/statistiques")
@Path("/stats")
StatistiquesMembreDTO obtenirStatistiques();
@GET
@Path("/export")
@Produces({"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "text/csv", "application/pdf", "application/json"})
@Produces({ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "text/csv", "application/pdf",
"application/json" })
byte[] exporterExcel(
@QueryParam("format") @DefaultValue("EXCEL") String format,
@QueryParam("associationId") UUID associationId,
@QueryParam("statut") String statut,
@QueryParam("type") String type,
@QueryParam("dateAdhesionDebut") String dateAdhesionDebut,
@QueryParam("dateAdhesionFin") String dateAdhesionFin,
@QueryParam("colonnes") List<String> colonnesExport,
@QueryParam("inclureHeaders") @DefaultValue("true") boolean inclureHeaders,
@QueryParam("formaterDates") @DefaultValue("true") boolean formaterDates,
@QueryParam("inclureStatistiques") @DefaultValue("false") boolean inclureStatistiques,
@QueryParam("motDePasse") String motDePasse
);
@QueryParam("format") @DefaultValue("EXCEL") String format,
@QueryParam("associationId") UUID associationId,
@QueryParam("statut") String statut,
@QueryParam("type") String type,
@QueryParam("dateAdhesionDebut") String dateAdhesionDebut,
@QueryParam("dateAdhesionFin") String dateAdhesionFin,
@QueryParam("colonnes") List<String> colonnesExport,
@QueryParam("inclureHeaders") @DefaultValue("true") boolean inclureHeaders,
@QueryParam("formaterDates") @DefaultValue("true") boolean formaterDates,
@QueryParam("inclureStatistiques") @DefaultValue("false") boolean inclureStatistiques,
@QueryParam("motDePasse") String motDePasse);
@GET
@Path("/export/count")
@Produces(MediaType.APPLICATION_JSON)
Long compterMembresPourExport(
@QueryParam("associationId") UUID associationId,
@QueryParam("statut") String statut,
@QueryParam("type") String type,
@QueryParam("dateAdhesionDebut") String dateAdhesionDebut,
@QueryParam("dateAdhesionFin") String dateAdhesionFin
);
@QueryParam("associationId") UUID associationId,
@QueryParam("statut") String statut,
@QueryParam("type") String type,
@QueryParam("dateAdhesionDebut") String dateAdhesionDebut,
@QueryParam("dateAdhesionFin") String dateAdhesionFin);
@POST
@Path("/import")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
ResultatImportDTO importerDonnees(MembreImportMultipartForm form);
@GET
@Path("/import/modele")
@Produces("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
@@ -132,9 +141,9 @@ public interface MembreService {
@Consumes(MediaType.APPLICATION_JSON)
@Produces("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
byte[] exporterSelection(
List<UUID> membreIds,
@QueryParam("format") @DefaultValue("EXCEL") String format);
List<UUID> membreIds,
@QueryParam("format") @DefaultValue("EXCEL") String format);
// Classes DTO internes pour les réponses spécialisées
class StatistiquesMembreDTO {
public Long totalMembres;
@@ -145,60 +154,127 @@ public interface MembreService {
public Long nouveauxMembres30Jours;
public Double tauxActivite;
public Double tauxCroissance;
// Constructeurs
public StatistiquesMembreDTO() {}
public StatistiquesMembreDTO() {
}
// Getters et setters
public Long getTotalMembres() { return totalMembres; }
public void setTotalMembres(Long totalMembres) { this.totalMembres = totalMembres; }
public Long getMembresActifs() { return membresActifs; }
public void setMembresActifs(Long membresActifs) { this.membresActifs = membresActifs; }
public Long getMembresInactifs() { return membresInactifs; }
public void setMembresInactifs(Long membresInactifs) { this.membresInactifs = membresInactifs; }
public Long getMembresSuspendus() { return membresSuspendus; }
public void setMembresSuspendus(Long membresSuspendus) { this.membresSuspendus = membresSuspendus; }
public Long getMembresRadies() { return membresRadies; }
public void setMembresRadies(Long membresRadies) { this.membresRadies = membresRadies; }
public Long getNouveauxMembres30Jours() { return nouveauxMembres30Jours; }
public void setNouveauxMembres30Jours(Long nouveauxMembres30Jours) { this.nouveauxMembres30Jours = nouveauxMembres30Jours; }
public Double getTauxActivite() { return tauxActivite; }
public void setTauxActivite(Double tauxActivite) { this.tauxActivite = tauxActivite; }
public Double getTauxCroissance() { return tauxCroissance; }
public void setTauxCroissance(Double tauxCroissance) { this.tauxCroissance = tauxCroissance; }
public Long getTotalMembres() {
return totalMembres;
}
public void setTotalMembres(Long totalMembres) {
this.totalMembres = totalMembres;
}
public Long getMembresActifs() {
return membresActifs;
}
public void setMembresActifs(Long membresActifs) {
this.membresActifs = membresActifs;
}
public Long getMembresInactifs() {
return membresInactifs;
}
public void setMembresInactifs(Long membresInactifs) {
this.membresInactifs = membresInactifs;
}
public Long getMembresSuspendus() {
return membresSuspendus;
}
public void setMembresSuspendus(Long membresSuspendus) {
this.membresSuspendus = membresSuspendus;
}
public Long getMembresRadies() {
return membresRadies;
}
public void setMembresRadies(Long membresRadies) {
this.membresRadies = membresRadies;
}
public Long getNouveauxMembres30Jours() {
return nouveauxMembres30Jours;
}
public void setNouveauxMembres30Jours(Long nouveauxMembres30Jours) {
this.nouveauxMembres30Jours = nouveauxMembres30Jours;
}
public Double getTauxActivite() {
return tauxActivite;
}
public void setTauxActivite(Double tauxActivite) {
this.tauxActivite = tauxActivite;
}
public Double getTauxCroissance() {
return tauxCroissance;
}
public void setTauxCroissance(Double tauxCroissance) {
this.tauxCroissance = tauxCroissance;
}
}
class ResultatImportDTO {
public Integer totalLignes;
public Integer lignesTraitees;
public Integer lignesErreur;
public List<String> erreurs;
public List<MembreDTO> membresImportes;
public List<MembreResponse> membresImportes;
// Constructeurs
public ResultatImportDTO() {}
public ResultatImportDTO() {
}
// Getters et setters
public Integer getTotalLignes() { return totalLignes; }
public void setTotalLignes(Integer totalLignes) { this.totalLignes = totalLignes; }
public Integer getLignesTraitees() { return lignesTraitees; }
public void setLignesTraitees(Integer lignesTraitees) { this.lignesTraitees = lignesTraitees; }
public Integer getLignesErreur() { return lignesErreur; }
public void setLignesErreur(Integer lignesErreur) { this.lignesErreur = lignesErreur; }
public List<String> getErreurs() { return erreurs; }
public void setErreurs(List<String> erreurs) { this.erreurs = erreurs; }
public List<MembreDTO> getMembresImportes() { return membresImportes; }
public void setMembresImportes(List<MembreDTO> membresImportes) { this.membresImportes = membresImportes; }
public Integer getTotalLignes() {
return totalLignes;
}
public void setTotalLignes(Integer totalLignes) {
this.totalLignes = totalLignes;
}
public Integer getLignesTraitees() {
return lignesTraitees;
}
public void setLignesTraitees(Integer lignesTraitees) {
this.lignesTraitees = lignesTraitees;
}
public Integer getLignesErreur() {
return lignesErreur;
}
public void setLignesErreur(Integer lignesErreur) {
this.lignesErreur = lignesErreur;
}
public List<String> getErreurs() {
return erreurs;
}
public void setErreurs(List<String> erreurs) {
this.erreurs = erreurs;
}
public List<MembreResponse> getMembresImportes() {
return membresImportes;
}
public void setMembresImportes(List<MembreResponse> membresImportes) {
this.membresImportes = membresImportes;
}
}
}
}