From 11f9135f901b4e89e457b2e9fbbbc97149d2fa46 Mon Sep 17 00:00:00 2001
From: dahoud <41957584+DahoudG@users.noreply.github.com>
Date: Sat, 28 Mar 2026 14:22:16 +0000
Subject: [PATCH] Refactoring - Version stable
---
AUDIT_INTEGRAL_UNIONFLOW.md | 466 -
CORRECTIONS_APPLIQUEES.md | 172 -
CORRECTION_KEYCLOAK_APPLIQUEE.md | 156 -
CORRECTION_KEYCLOAK_MAPPER.md | 193 -
CORRECTION_OIDC_PKCE.md | 44 -
DEPLOIEMENT_RAPIDE_PRODUCTION.md | 404 -
DESCRIPTION_METIER_UNIONFLOW.md | 800 --
DIAGRAMME_CLASSES_UNIONFLOW.md | 1979 -----
Dockerfile | 74 -
Dockerfile.client | 70 -
Dockerfile.server | 74 -
ETAT_MODULES.md | 343 -
FONCTIONNALITES_PRETES_PRODUCTION.md | 373 -
MCD_UNIONFLOW.puml | 480 -
MIGRATION_UUID.md | 218 -
MIGRATION_UUID_CLIENT.md | 158 -
NETTOYAGE_CODE_RESUME.md | 103 -
PHASE2_AUDIT_ET_PLAN_ACTION.md | 273 -
PHASE2_REFACTORING_PLAN.md | 232 -
PLAN_IMPLEMENTATION_ARCHITECTURE_V3.md | 324 -
PLAN_LIVRAISON_PRODUCTION.md | 256 -
PROCHAINES_ETAPES.md | 196 -
PROCHAINES_ETAPES_APRES_BEANS.md | 238 -
PROMPT_LIONS_USER_MANAGER_CORRIGE.md | 419 -
RAPPORT_SECURITE_RESOURCES.md | 212 -
REFACTORING_COTISATIONSBEAN_PART1.md | 32 -
RESUME_IMPLEMENTATION_V3.md | 319 -
RESUME_MIGRATION_UUID.md | 148 -
ROADMAP_FINALISATION_UNIONFLOW.md | 394 -
VARIABLES_ENVIRONNEMENT.md | 168 -
docker-compose.yml | 72 -
docker-env.example | 50 -
flutter_01.png | 0
flutter_02.png | Bin 131801 -> 0 bytes
flutter_03.png | Bin 10838 -> 0 bytes
lib/app/router/app_router.dart | 22 +-
.../cache/cached_datasource_decorator.dart | 1 -
.../navigation/main_navigation_layout.dart | 14 -
lib/core/navigation/more_page.dart | 49 +-
lib/core/utils/logger.dart | 1 -
.../repositories/adhesion_repository.dart | 1 -
.../pages/adhesion_detail_page.dart | 1 -
lib/features/admin/bloc/admin_users_bloc.dart | 4 +-
.../repositories/admin_user_repository.dart | 1 -
.../datasources/keycloak_auth_service.dart | 2 -
.../bloc/contributions_bloc.dart | 1 -
.../mes_statistiques_cotisations_page.dart | 2 +-
.../services/dashboard_offline_service.dart | 2 -
.../pages/advanced_dashboard_page.dart | 1 -
.../role_dashboards/moderator_dashboard.dart | 1 -
.../transaction_epargne_repository.dart | 1 -
.../pages/epargne_detail_page.dart | 20 +-
.../widgets/creer_compte_epargne_dialog.dart | 2 +-
.../widgets/depot_epargne_dialog.dart | 2 -
.../widgets/historique_epargne_sheet.dart | 10 +-
.../widgets/retrait_epargne_dialog.dart | 4 +-
.../widgets/transfert_epargne_dialog.dart | 6 +-
lib/features/events/bloc/evenements_bloc.dart | 3 -
.../finance_workflow_remote_datasource.dart | 2 -
.../pages/pending_approvals_page.dart | 1 -
.../pages/advanced_search_page.dart | 6 +-
.../presentation/pages/members_page.dart | 5 -
.../pages/members_page_connected.dart | 1 -
.../pages/notifications_page.dart | 2 -
.../bloc/organizations_bloc.dart | 6 -
.../presentation/bloc/profile_bloc.dart | 12 -
.../presentation/pages/profile_page.dart | 2 -
.../presentation/bloc/reports_bloc.dart | 12 -
.../presentation/pages/reports_page.dart | 2 -
.../repositories/demande_aide_repository.dart | 1 -
.../pages/demande_aide_detail_page.dart | 2 -
.../pages/demandes_aide_page.dart | 1 -
lib/presentation/feed/unified_feed_page.dart | 1 +
.../widgets/shared/profile_drawer.dart | 2 -
.../design_system/tokens/app_typography.dart | 1 -
lib/shared/widgets/core_shimmer.dart | 1 -
pom.xml | 42 -
pubspec.lock | 96 +
scripts/build/build-android-bundle.ps1 | 214 +
scripts/build/build-android-release.ps1 | 172 +
scripts/build/build-ios-release.ps1 | 237 +
test/core/validation/validators_test.dart | 178 +-
.../delete_contribution_test.mocks.dart | 335 +
.../get_contribution_by_id_test.mocks.dart | 335 +
.../get_contribution_history_test.mocks.dart | 335 +
.../get_contribution_stats_test.mocks.dart | 335 +
.../get_contributions_test.mocks.dart | 335 +
.../usecases/pay_contribution_test.mocks.dart | 335 +
.../update_contribution_test.mocks.dart | 335 +
.../usecases/get_dashboard_data_test.dart | 6 -
.../usecases/create_event_test.mocks.dart | 289 +
.../usecases/delete_event_test.mocks.dart | 289 +
.../usecases/get_event_by_id_test.mocks.dart | 289 +
.../get_event_participants_test.mocks.dart | 289 +
.../usecases/get_events_test.mocks.dart | 289 +
.../get_my_registrations_test.mocks.dart | 289 +
.../register_for_event_test.mocks.dart | 289 +
.../usecases/submit_event_feedback_test.dart | 1 -
.../domain/usecases/search_members_test.dart | 2 +-
union-flow.puml | 275 -
.../Dockerfile.prod | 91 -
.../pom.xml | 233 -
.../client/UnionFlowClientApplication.java | 34 -
.../StatutOrganisationConstants.java | 31 -
.../client/converter/MembreConverter.java | 44 -
.../unionflow/client/dto/AdhesionDTO.java | 274 -
.../client/dto/AnalyticsDataDTO.java | 300 -
.../unionflow/client/dto/AssociationDTO.java | 331 -
.../unionflow/client/dto/AuditLogDTO.java | 185 -
.../unionflow/client/dto/CotisationDTO.java | 270 -
.../unionflow/client/dto/DemandeAideDTO.java | 99 -
.../unionflow/client/dto/EvenementDTO.java | 492 --
.../unionflow/client/dto/FormulaireDTO.java | 181 -
.../lions/unionflow/client/dto/MembreDTO.java | 320 -
.../unionflow/client/dto/SouscriptionDTO.java | 242 -
.../client/dto/TypeOrganisationClientDTO.java | 57 -
.../unionflow/client/dto/WaveBalanceDTO.java | 102 -
.../client/dto/WaveCheckoutSessionDTO.java | 148 -
.../client/dto/auth/LoginRequest.java | 60 -
.../client/dto/auth/LoginResponse.java | 224 -
.../ViewExpiredExceptionHandler.java | 85 -
.../ViewExpiredExceptionHandlerFactory.java | 18 -
.../client/security/AuthenticationFilter.java | 118 -
.../security/JwtClientRequestFilter.java | 49 -
.../client/security/JwtTokenManager.java | 129 -
.../client/security/PermissionChecker.java | 239 -
.../client/security/TokenCleanupService.java | 26 -
.../client/security/TokenRefreshService.java | 150 -
.../client/service/AdhesionService.java | 150 -
.../client/service/AnalyticsService.java | 60 -
.../client/service/AssociationService.java | 165 -
.../client/service/AuditService.java | 53 -
.../client/service/AuthenticationService.java | 177 -
.../client/service/CotisationService.java | 132 -
.../client/service/DemandeAideService.java | 55 -
.../client/service/EvenementService.java | 136 -
.../client/service/ExportClientService.java | 50 -
.../client/service/FormulaireService.java | 50 -
.../client/service/MembreService.java | 182 -
.../service/NotificationClientService.java | 53 -
.../client/service/NotificationService.java | 51 -
.../client/service/PreferencesService.java | 34 -
.../service/RestClientExceptionMapper.java | 86 -
.../client/service/SouscriptionService.java | 46 -
.../TypeOrganisationClientService.java | 34 -
.../client/service/ValidationService.java | 102 -
.../unionflow/client/service/WaveService.java | 55 -
.../validation/MemberNumberValidator.java | 51 -
.../validation/PhoneNumberValidator.java | 46 -
.../client/validation/ValidMemberNumber.java | 18 -
.../client/validation/ValidPhoneNumber.java | 18 -
.../client/validation/ValidationGroups.java | 47 -
.../unionflow/client/view/AdhesionsBean.java | 596 --
.../client/view/AdminFormulaireBean.java | 262 -
.../unionflow/client/view/AuditBean.java | 554 --
.../client/view/ConfigurationBean.java | 836 --
.../client/view/CotisationsBean.java | 1038 ---
.../client/view/CotisationsGestionBean.java | 1559 ----
.../unionflow/client/view/DashboardBean.java | 673 --
.../client/view/DemandesAideBean.java | 711 --
.../unionflow/client/view/DemandesBean.java | 466 -
.../unionflow/client/view/DocumentsBean.java | 636 --
.../client/view/EntitesGestionBean.java | 697 --
.../unionflow/client/view/EvenementsBean.java | 879 --
.../unionflow/client/view/FavorisBean.java | 470 -
.../unionflow/client/view/FormulaireBean.java | 193 -
.../client/view/GuestPreferences.java | 146 -
.../unionflow/client/view/GuideBean.java | 241 -
.../unionflow/client/view/HelloView.java | 48 -
.../unionflow/client/view/LoginBean.java | 84 -
.../client/view/MembreCotisationBean.java | 575 --
.../client/view/MembreDashboardBean.java | 416 -
.../client/view/MembreInscriptionBean.java | 496 --
.../client/view/MembreListeBean.java | 699 --
.../client/view/MembreProfilBean.java | 747 --
.../client/view/MembreRechercheBean.java | 738 --
.../unionflow/client/view/NavigationBean.java | 136 -
.../client/view/OrganisationDetailBean.java | 87 -
.../client/view/OrganisationsBean.java | 448 -
.../unionflow/client/view/ParametresBean.java | 446 -
.../unionflow/client/view/PersonnelBean.java | 566 --
.../client/view/PreferencesBean.java | 292 -
.../client/view/RapportDetailsBean.java | 177 -
.../unionflow/client/view/RapportsBean.java | 798 --
.../unionflow/client/view/RolesBean.java | 367 -
.../client/view/SecurityStatusBean.java | 109 -
.../client/view/SouscriptionBean.java | 272 -
.../unionflow/client/view/SuperAdminBean.java | 568 --
.../view/TypeOrganisationsAdminBean.java | 150 -
.../unionflow/client/view/UserSession.java | 535 --
.../client/view/UtilisateursBean.java | 399 -
.../lions/unionflow/client/view/WaveBean.java | 279 -
.../main/resources/META-INF/faces-config.xml | 653 --
.../META-INF/resources/css/layout-dark.css | 4257 ---------
.../META-INF/resources/css/layout-dark.scss | 5 -
.../META-INF/resources/css/layout-light.css | 4257 ---------
.../META-INF/resources/css/layout-light.scss | 5 -
.../resources/css/primeflex-v2.min.css | 1 -
.../META-INF/resources/css/primeflex.min.css | 1 -
.../META-INF/resources/css/primeicons.css | 1017 ---
.../resources/error/viewExpired.xhtml | 77 -
.../freya-layout/css/layout-dark.css | 4257 ---------
.../freya-layout/css/layout-dark.scss | 5 -
.../freya-layout/css/layout-light.css | 4257 ---------
.../freya-layout/css/layout-light.scss | 5 -
.../freya-layout/css/primeflex-v2.min.css | 1 -
.../freya-layout/css/primeflex.min.css | 1 -
.../resources/freya-layout/css/primeicons.css | 1017 ---
.../freya-layout/icons/primeicons.eot | Bin 66820 -> 0 bytes
.../freya-layout/icons/primeicons.svg | 270 -
.../freya-layout/icons/primeicons.ttf | Bin 66644 -> 0 bytes
.../freya-layout/icons/primeicons.woff | Bin 66720 -> 0 bytes
.../images/avatar-profilemenu.png | Bin 1249 -> 0 bytes
.../resources/freya-layout/images/favicon.ico | Bin 15086 -> 0 bytes
.../freya-layout/images/logo-freya-single.svg | 9 -
.../freya-layout/images/logo-freya-white.svg | 14 -
.../freya-layout/images/logo-freya.svg | 40 -
.../freya-layout/images/pages/asset-404.svg | 9 -
.../images/pages/asset-access.svg | 9 -
.../freya-layout/images/pages/asset-error.svg | 9 -
.../images/pages/asset-landing-header.jpg | Bin 844761 -> 0 bytes
.../freya-layout/images/pages/search.png | Bin 788 -> 0 bytes
.../resources/freya-layout/js/layout.js | 879 --
.../resources/freya-layout/js/prism.js | 10 -
.../META-INF/resources/icons/primeicons.eot | Bin 66820 -> 0 bytes
.../META-INF/resources/icons/primeicons.svg | 270 -
.../META-INF/resources/icons/primeicons.ttf | Bin 66644 -> 0 bytes
.../META-INF/resources/icons/primeicons.woff | Bin 66720 -> 0 bytes
.../resources/images/avatar-profilemenu.png | Bin 1249 -> 0 bytes
.../META-INF/resources/images/favicon.ico | Bin 15086 -> 0 bytes
.../resources/images/logo-freya-single.svg | 9 -
.../resources/images/logo-freya-white.svg | 14 -
.../META-INF/resources/images/logo-freya.svg | 40 -
.../META-INF/resources/images/logo-wave.png | Bin 4291 -> 0 bytes
.../resources/images/pages/asset-404.svg | 9 -
.../resources/images/pages/asset-access.svg | 9 -
.../resources/images/pages/asset-error.svg | 9 -
.../images/pages/asset-landing-header.jpg | Bin 844761 -> 0 bytes
.../resources/images/pages/search.png | Bin 788 -> 0 bytes
.../resources/META-INF/resources/index.xhtml | 384 -
.../resources/META-INF/resources/js/layout.js | 879 --
.../resources/META-INF/resources/js/prism.js | 10 -
.../resources/pages/admin/aides/gestion.xhtml | 595 --
.../resources/pages/admin/audit.xhtml | 20 -
.../resources/pages/admin/audit/journal.xhtml | 440 -
.../resources/pages/admin/backup.xhtml | 20 -
.../pages/admin/cotisations/gestion.xhtml | 786 --
.../pages/admin/demandes/aide-sociale.xhtml | 558 --
.../pages/admin/demandes/gestion-old.xhtml | 561 --
.../pages/admin/demandes/gestion.xhtml | 651 --
.../pages/admin/documents/gestion.xhtml | 613 --
.../pages/admin/evenements/creation.xhtml | 541 --
.../pages/admin/evenements/gestion.xhtml | 622 --
.../pages/admin/evenements/liste.xhtml | 430 -
.../pages/admin/evenements/participants.xhtml | 517 --
.../pages/admin/finance/caisse.xhtml | 409 -
.../pages/admin/rapports/finances.xhtml | 445 -
.../pages/admin/rapports/statistiques.xhtml | 574 --
.../resources/pages/admin/settings.xhtml | 20 -
.../resources/pages/admin/users.xhtml | 20 -
.../pages/admin/utilisateurs/gestion.xhtml | 398 -
.../resources/pages/membre/cotisations.xhtml | 575 --
.../resources/pages/membre/dashboard.xhtml | 385 -
.../resources/pages/public/formulaires.xhtml | 294 -
.../resources/pages/public/home.xhtml | 98 -
.../pages/secure/access-denied.xhtml | 61 -
.../pages/secure/adhesion/demande.xhtml | 115 -
.../pages/secure/adhesion/history.xhtml | 259 -
.../pages/secure/adhesion/liste.xhtml | 417 -
.../resources/pages/secure/adhesion/new.xhtml | 115 -
.../pages/secure/adhesion/paiement.xhtml | 261 -
.../pages/secure/adhesion/pending.xhtml | 257 -
.../secure/adhesion/renouvellement.xhtml | 167 -
.../pages/secure/adhesion/validation.xhtml | 254 -
.../resources/pages/secure/admin/audit.xhtml | 32 -
.../pages/secure/admin/parametres.xhtml | 47 -
.../resources/pages/secure/admin/roles.xhtml | 53 -
.../pages/secure/admin/sauvegarde.xhtml | 122 -
.../pages/secure/admin/utilisateurs.xhtml | 53 -
.../pages/secure/aide/approved.xhtml | 73 -
.../resources/pages/secure/aide/apropos.xhtml | 327 -
.../resources/pages/secure/aide/demande.xhtml | 158 -
.../pages/secure/aide/documentation.xhtml | 170 -
.../resources/pages/secure/aide/faq.xhtml | 469 -
.../resources/pages/secure/aide/guide.xhtml | 435 -
.../pages/secure/aide/historique.xhtml | 20 -
.../resources/pages/secure/aide/history.xhtml | 132 -
.../pages/secure/aide/nouveautes.xhtml | 401 -
.../pages/secure/aide/requests.xhtml | 79 -
.../pages/secure/aide/statistiques.xhtml | 120 -
.../pages/secure/aide/suggestions.xhtml | 463 -
.../resources/pages/secure/aide/support.xhtml | 322 -
.../resources/pages/secure/aide/tickets.xhtml | 437 -
.../pages/secure/aide/traitement.xhtml | 161 -
.../pages/secure/aide/tutoriels.xhtml | 368 -
.../pages/secure/cotisation/collect.xhtml | 456 -
.../pages/secure/cotisation/historique.xhtml | 253 -
.../pages/secure/cotisation/paiement.xhtml | 307 -
.../pages/secure/cotisation/rapports.xhtml | 185 -
.../pages/secure/cotisation/relances.xhtml | 229 -
.../pages/secure/cotisation/reminders.xhtml | 108 -
.../pages/secure/cotisation/report.xhtml | 117 -
.../resources/pages/secure/dashboard.xhtml | 583 --
.../pages/secure/evenement/bilan.xhtml | 198 -
.../pages/secure/evenement/calendar.xhtml | 18 -
.../pages/secure/evenement/calendrier.xhtml | 183 -
.../pages/secure/evenement/create.xhtml | 18 -
.../pages/secure/evenement/creation.xhtml | 268 -
.../pages/secure/evenement/gestion.xhtml | 528 --
.../pages/secure/evenement/logistique.xhtml | 180 -
.../pages/secure/evenement/participants.xhtml | 120 -
.../secure/evenement/participation.xhtml | 255 -
.../secure/evenement/planification.xhtml | 179 -
.../pages/secure/evenement/reservations.xhtml | 187 -
.../pages/secure/membre/cotisations.xhtml | 212 -
.../pages/secure/membre/inscription.xhtml | 760 --
.../resources/pages/secure/membre/liste.xhtml | 653 --
.../pages/secure/membre/profil.xhtml | 657 --
.../pages/secure/membre/recherche.xhtml | 701 --
.../pages/secure/organisation/detail.xhtml | 263 -
.../pages/secure/organisation/liste.xhtml | 251 -
.../pages/secure/organisation/nouvelle.xhtml | 64 -
.../pages/secure/personnel/activites.xhtml | 100 -
.../pages/secure/personnel/agenda.xhtml | 87 -
.../pages/secure/personnel/documents.xhtml | 146 -
.../pages/secure/personnel/favoris.xhtml | 374 -
.../secure/personnel/notifications.xhtml | 99 -
.../pages/secure/personnel/parametres.xhtml | 704 --
.../pages/secure/personnel/preferences.xhtml | 510 --
.../pages/secure/personnel/profil.xhtml | 301 -
.../resources/pages/secure/profile.xhtml | 241 -
.../pages/secure/rapport/activites.xhtml | 121 -
.../pages/secure/rapport/details.xhtml | 145 -
.../pages/secure/rapport/export.xhtml | 170 -
.../pages/secure/rapport/finances.xhtml | 214 -
.../pages/secure/rapport/membres.xhtml | 146 -
.../resources/pages/secure/reports.xhtml | 26 -
.../pages/secure/souscription/dashboard.xhtml | 355 -
.../resources/pages/secure/stats.xhtml | 18 -
.../pages/super-admin/configuration.xhtml | 775 --
.../super-admin/configuration/systeme.xhtml | 764 --
.../super-admin/dashboard-enhanced.xhtml | 375 -
.../pages/super-admin/dashboard.xhtml | 535 --
.../entites/gestion-enhanced.xhtml | 641 --
.../pages/super-admin/entites/gestion.xhtml | 468 -
.../pages/super-admin/organisations.xhtml | 212 -
.../pages/super-admin/roles/gestion.xhtml | 381 -
.../super-admin/types/organisations.xhtml | 166 -
.../primefaces-freya-avocado-dark/theme.css | 7711 -----------------
.../primefaces-freya-avocado-dark/theme.scss | 9 -
.../primefaces-freya-avocado-light/theme.css | 7710 ----------------
.../primefaces-freya-avocado-light/theme.scss | 9 -
.../primefaces-freya-blue-dark/theme.css | 7711 -----------------
.../primefaces-freya-blue-dark/theme.scss | 9 -
.../primefaces-freya-blue-light/theme.css | 7710 ----------------
.../primefaces-freya-blue-light/theme.scss | 9 -
.../primefaces-freya-green-dark/theme.css | 7711 -----------------
.../primefaces-freya-green-dark/theme.scss | 9 -
.../primefaces-freya-green-light/theme.css | 7710 ----------------
.../primefaces-freya-green-light/theme.scss | 9 -
.../primefaces-freya-orange-dark/theme.css | 7711 -----------------
.../primefaces-freya-orange-dark/theme.scss | 9 -
.../primefaces-freya-orange-light/theme.css | 7710 ----------------
.../primefaces-freya-orange-light/theme.scss | 9 -
.../primefaces-freya-purple-dark/theme.css | 7711 -----------------
.../primefaces-freya-purple-dark/theme.scss | 9 -
.../primefaces-freya-purple-light/theme.css | 7710 ----------------
.../primefaces-freya-purple-light/theme.scss | 9 -
.../primefaces-freya-red-dark/theme.css | 7711 -----------------
.../primefaces-freya-red-dark/theme.scss | 9 -
.../primefaces-freya-red-light/theme.css | 7710 ----------------
.../primefaces-freya-red-light/theme.scss | 9 -
.../primefaces-freya-turquoise-dark/theme.css | 7711 -----------------
.../theme.scss | 9 -
.../theme.css | 7710 ----------------
.../theme.scss | 9 -
.../primefaces-freya-yellow-dark/theme.css | 7711 -----------------
.../primefaces-freya-yellow-dark/theme.scss | 9 -
.../primefaces-freya-yellow-light/theme.css | 7710 ----------------
.../primefaces-freya-yellow-light/theme.scss | 9 -
.../components/action-button-delete.xhtml | 28 -
.../components/action-button-edit-nav.xhtml | 22 -
.../components/action-button-edit.xhtml | 25 -
.../components/action-button-toggle.xhtml | 29 -
.../components/action-button-view.xhtml | 22 -
.../resources/resources/demo/chartjs/chart.js | 10 -
.../resources/demo/css/_demo_common.scss | 13 -
.../resources/demo/css/demo-dark.css | 734 --
.../resources/demo/css/demo-dark.scss | 3 -
.../resources/demo/css/demo-light.css | 734 --
.../resources/demo/css/demo-light.scss | 2 -
.../resources/demo/css/flags/flags.css | 1 -
.../demo/css/flags/flags_responsive.png | Bin 55194 -> 0 bytes
.../resources/demo/css/pages/_blocks.scss | 133 -
.../resources/demo/css/pages/_chronoline.scss | 33 -
.../resources/demo/css/pages/_common.scss | 122 -
.../resources/demo/css/pages/_crud.scss | 68 -
.../demo/css/pages/_documentation.scss | 3 -
.../resources/demo/css/pages/_floatlabel.scss | 5 -
.../resources/demo/css/pages/_icons.scss | 11 -
.../resources/demo/css/pages/_list.scss | 120 -
.../resources/demo/css/pages/_messages.scss | 9 -
.../resources/demo/css/pages/_misc.scss | 39 -
.../resources/demo/css/pages/_syntax.scss | 244 -
.../resources/demo/css/pages/_table.scss | 21 -
.../demo/images/avatar/amyelsner.png | Bin 5257 -> 0 bytes
.../resources/demo/images/avatar/annafali.png | Bin 5612 -> 0 bytes
.../demo/images/avatar/asiyajavayant.png | Bin 5597 -> 0 bytes
.../demo/images/avatar/bernardodominic.png | Bin 5870 -> 0 bytes
.../demo/images/avatar/elwinsharvill.png | Bin 5588 -> 0 bytes
.../demo/images/avatar/ionibowcher.png | Bin 5731 -> 0 bytes
.../demo/images/avatar/ivanmagalhaes.png | Bin 6088 -> 0 bytes
.../demo/images/avatar/onyamalimba.png | Bin 5422 -> 0 bytes
.../resources/demo/images/avatar/profile.jpg | Bin 8051 -> 0 bytes
.../demo/images/avatar/stephenshaw.png | Bin 5227 -> 0 bytes
.../demo/images/avatar/xuxuefeng.png | Bin 6057 -> 0 bytes
.../demo/images/blocks/hero/hero-1.png | Bin 654997 -> 0 bytes
.../demo/images/blocks/logos/hyper.svg | 3 -
.../resources/demo/images/car/Audi.png | Bin 6685 -> 0 bytes
.../resources/demo/images/car/BMW.png | Bin 8406 -> 0 bytes
.../resources/demo/images/car/Fiat.png | Bin 9903 -> 0 bytes
.../resources/demo/images/car/Ford.png | Bin 8540 -> 0 bytes
.../resources/demo/images/car/Honda.png | Bin 5037 -> 0 bytes
.../resources/demo/images/car/Jaguar.png | Bin 13310 -> 0 bytes
.../resources/demo/images/car/Mercedes.png | Bin 6071 -> 0 bytes
.../resources/demo/images/car/Renault.png | Bin 5694 -> 0 bytes
.../resources/demo/images/car/Volkswagen.png | Bin 10802 -> 0 bytes
.../resources/demo/images/car/Volvo.png | Bin 8198 -> 0 bytes
.../demo/images/dashboard/asset-image.jpg | Bin 87660 -> 0 bytes
.../demo/images/dashboard/asset-map.png | Bin 50643 -> 0 bytes
.../demo/images/dashboard/avatar/avatar-1.png | Bin 2303 -> 0 bytes
.../demo/images/dashboard/avatar/avatar-2.png | Bin 1997 -> 0 bytes
.../demo/images/dashboard/avatar/avatar-3.png | Bin 2549 -> 0 bytes
.../demo/images/dashboard/avatar/avatar-4.png | Bin 1526 -> 0 bytes
.../demo/images/dashboard/avatar/avatar-5.png | Bin 1477 -> 0 bytes
.../demo/images/dashboard/avatar/avatar-6.png | Bin 2313 -> 0 bytes
.../demo/images/dashboard/avatar/avatar-7.png | Bin 2271 -> 0 bytes
.../demo/images/dashboard/mini-graph-1.svg | 10 -
.../demo/images/dashboard/mini-graph-2.svg | 10 -
.../demo/images/dashboard/mini-graph-3.svg | 10 -
.../demo/images/dashboard/mini-graph-4.svg | 10 -
.../demo/images/dashboard/mini-graph-5.svg | 10 -
.../demo/images/dashboard/subtract.svg | 9 -
.../demo/images/galleria/galleria1.jpg | Bin 87135 -> 0 bytes
.../demo/images/galleria/galleria10.jpg | Bin 84662 -> 0 bytes
.../demo/images/galleria/galleria10s.jpg | Bin 2063 -> 0 bytes
.../demo/images/galleria/galleria11.jpg | Bin 64452 -> 0 bytes
.../demo/images/galleria/galleria11s.jpg | Bin 1627 -> 0 bytes
.../demo/images/galleria/galleria12.jpg | Bin 87325 -> 0 bytes
.../demo/images/galleria/galleria12s.jpg | Bin 1570 -> 0 bytes
.../demo/images/galleria/galleria13.jpg | Bin 104784 -> 0 bytes
.../demo/images/galleria/galleria13s.jpg | Bin 2086 -> 0 bytes
.../demo/images/galleria/galleria14.jpg | Bin 125110 -> 0 bytes
.../demo/images/galleria/galleria14s.jpg | Bin 2086 -> 0 bytes
.../demo/images/galleria/galleria15.jpg | Bin 111269 -> 0 bytes
.../demo/images/galleria/galleria15s.jpg | Bin 2661 -> 0 bytes
.../demo/images/galleria/galleria1s.jpg | Bin 2593 -> 0 bytes
.../demo/images/galleria/galleria2.jpg | Bin 95483 -> 0 bytes
.../demo/images/galleria/galleria2s.jpg | Bin 1572 -> 0 bytes
.../demo/images/galleria/galleria3.jpg | Bin 70886 -> 0 bytes
.../demo/images/galleria/galleria3s.jpg | Bin 2128 -> 0 bytes
.../demo/images/galleria/galleria4.jpg | Bin 124223 -> 0 bytes
.../demo/images/galleria/galleria4s.jpg | Bin 2266 -> 0 bytes
.../demo/images/galleria/galleria5.jpg | Bin 107127 -> 0 bytes
.../demo/images/galleria/galleria5s.jpg | Bin 2131 -> 0 bytes
.../demo/images/galleria/galleria6.jpg | Bin 28732 -> 0 bytes
.../demo/images/galleria/galleria6s.jpg | Bin 1009 -> 0 bytes
.../demo/images/galleria/galleria7.jpg | Bin 49048 -> 0 bytes
.../demo/images/galleria/galleria7s.jpg | Bin 1395 -> 0 bytes
.../demo/images/galleria/galleria8.jpg | Bin 119967 -> 0 bytes
.../demo/images/galleria/galleria8s.jpg | Bin 2421 -> 0 bytes
.../demo/images/galleria/galleria9.jpg | Bin 95881 -> 0 bytes
.../demo/images/galleria/galleria9s.jpg | Bin 2331 -> 0 bytes
.../resources/demo/images/nature/nature.jpg | Bin 95677 -> 0 bytes
.../demo/images/product/bamboo-watch.jpg | Bin 10104 -> 0 bytes
.../demo/images/product/black-watch.jpg | Bin 9942 -> 0 bytes
.../demo/images/product/blue-band.jpg | Bin 3199 -> 0 bytes
.../demo/images/product/blue-t-shirt.jpg | Bin 7577 -> 0 bytes
.../demo/images/product/bracelet.jpg | Bin 4741 -> 0 bytes
.../demo/images/product/brown-purse.jpg | Bin 5720 -> 0 bytes
.../demo/images/product/chakra-bracelet.jpg | Bin 4587 -> 0 bytes
.../demo/images/product/galaxy-earrings.jpg | Bin 3208 -> 0 bytes
.../demo/images/product/game-controller.jpg | Bin 3982 -> 0 bytes
.../demo/images/product/gaming-set.jpg | Bin 9530 -> 0 bytes
.../demo/images/product/gold-phone-case.jpg | Bin 7818 -> 0 bytes
.../demo/images/product/green-earbuds.jpg | Bin 6996 -> 0 bytes
.../demo/images/product/green-t-shirt.jpg | Bin 7263 -> 0 bytes
.../demo/images/product/grey-t-shirt.jpg | Bin 7330 -> 0 bytes
.../demo/images/product/headphones.jpg | Bin 4497 -> 0 bytes
.../images/product/light-green-t-shirt.jpg | Bin 7347 -> 0 bytes
.../demo/images/product/lime-band.jpg | Bin 3212 -> 0 bytes
.../demo/images/product/mini-speakers.jpg | Bin 3684 -> 0 bytes
.../images/product/painted-phone-case.jpg | Bin 9455 -> 0 bytes
.../demo/images/product/pink-band.jpg | Bin 3093 -> 0 bytes
.../demo/images/product/pink-purse.jpg | Bin 4668 -> 0 bytes
.../demo/images/product/purple-band.jpg | Bin 3336 -> 0 bytes
.../product/purple-gemstone-necklace.jpg | Bin 3084 -> 0 bytes
.../demo/images/product/purple-t-shirt.jpg | Bin 7522 -> 0 bytes
.../resources/demo/images/product/shoes.jpg | Bin 6855 -> 0 bytes
.../demo/images/product/sneakers.jpg | Bin 7067 -> 0 bytes
.../demo/images/product/teal-t-shirt.jpg | Bin 7498 -> 0 bytes
.../demo/images/product/yellow-earbuds.jpg | Bin 7173 -> 0 bytes
.../demo/images/product/yoga-mat.jpg | Bin 6918 -> 0 bytes
.../demo/images/product/yoga-set.jpg | Bin 5133 -> 0 bytes
.../demo/images/rightpanel/asset-weather.png | Bin 40190 -> 0 bytes
.../resources/demo/images/rightpanel/aws.svg | 11 -
.../demo/images/rightpanel/github.svg | 9 -
.../demo/images/rightpanel/icon-sun.svg | 3 -
.../demo/images/rightpanel/jenkins.svg | 9 -
.../resources/demo/images/rightpanel/jira.svg | 9 -
.../demo/images/rightpanel/profile-1.png | Bin 5412 -> 0 bytes
.../demo/images/rightpanel/profile-2.png | Bin 6057 -> 0 bytes
.../demo/images/rightpanel/profile-3.png | Bin 7887 -> 0 bytes
.../demo/images/rightpanel/profile-4.png | Bin 3514 -> 0 bytes
.../demo/images/rightpanel/slack.svg | 9 -
.../freya-layout/css/layout-dark.css | 4257 ---------
.../freya-layout/css/layout-dark.scss | 5 -
.../freya-layout/css/layout-light.css | 4257 ---------
.../freya-layout/css/layout-light.scss | 5 -
.../freya-layout/css/primeflex-v2.min.css | 1 -
.../freya-layout/css/primeflex.min.css | 1 -
.../resources/freya-layout/css/primeicons.css | 1017 ---
.../freya-layout/icons/primeicons.eot | Bin 66820 -> 0 bytes
.../freya-layout/icons/primeicons.svg | 270 -
.../freya-layout/icons/primeicons.ttf | Bin 66644 -> 0 bytes
.../freya-layout/icons/primeicons.woff | Bin 66720 -> 0 bytes
.../images/avatar-profilemenu.png | Bin 1249 -> 0 bytes
.../resources/freya-layout/images/favicon.ico | Bin 15086 -> 0 bytes
.../freya-layout/images/logo-freya-single.svg | 9 -
.../freya-layout/images/logo-freya-white.svg | 14 -
.../freya-layout/images/logo-freya.svg | 40 -
.../freya-layout/images/pages/asset-404.svg | 9 -
.../images/pages/asset-access.svg | 9 -
.../freya-layout/images/pages/asset-error.svg | 9 -
.../images/pages/asset-landing-header.jpg | Bin 844761 -> 0 bytes
.../freya-layout/images/pages/search.png | Bin 788 -> 0 bytes
.../resources/freya-layout/js/layout.js | 879 --
.../resources/freya-layout/js/prism.js | 10 -
.../buttons/action-button-view.xhtml | 22 -
.../buttons/button-form-submit.xhtml | 33 -
.../components/buttons/button-icon.xhtml | 31 -
.../components/buttons/button-info.xhtml | 33 -
.../components/buttons/button-primary.xhtml | 43 -
.../components/buttons/button-secondary.xhtml | 44 -
.../components/buttons/button-success.xhtml | 32 -
.../components/buttons/button-warning.xhtml | 33 -
.../components/cards/card-header.xhtml | 47 -
.../components/cards/card-simple.xhtml | 29 -
.../components/cards/filter-bar.xhtml | 38 -
.../components/cards/stat-card.xhtml | 40 -
.../components/columns/column-actions.xhtml | 25 -
.../components/columns/column-logo.xhtml | 25 -
.../columns/column-name-with-subtitle.xhtml | 28 -
.../components/columns/column-tag.xhtml | 28 -
.../columns/column-text-with-icon.xhtml | 25 -
.../components/dialogs/confirm-dialog.xhtml | 53 -
.../components/dialogs/form-dialog.xhtml | 87 -
.../components/forms/detail-field.xhtml | 32 -
.../forms/form-field-autocomplete.xhtml | 31 -
.../components/forms/form-field-boolean.xhtml | 24 -
.../forms/form-field-calendar.xhtml | 33 -
.../forms/form-field-checkbox-menu.xhtml | 32 -
.../components/forms/form-field-group.xhtml | 21 -
.../components/forms/form-field-number.xhtml | 34 -
.../forms/form-field-search-text.xhtml | 31 -
.../components/forms/form-field-select.xhtml | 51 -
.../components/forms/form-field-text.xhtml | 28 -
.../forms/form-field-textarea.xhtml | 28 -
.../components/forms/form-field-wrapper.xhtml | 24 -
.../components/forms/form-section.xhtml | 31 -
.../templates/components/layout/config.xhtml | 93 -
.../templates/components/layout/footer.xhtml | 57 -
.../templates/components/layout/menu.xhtml | 191 -
.../components/layout/organisation-logo.xhtml | 29 -
.../components/layout/page-header.xhtml | 38 -
.../components/layout/rightpanel.xhtml | 192 -
.../templates/components/layout/topbar.xhtml | 107 -
.../components/tables/data-table.xhtml | 53 -
.../resources/templates/main-template.xhtml | 55 -
.../resources/templates/public-template.xhtml | 46 -
.../resources/ui/includes/membre-form.xhtml | 174 -
.../ui/includes/organisation-form.xhtml | 456 -
.../resources/unionflow/calendar.xhtml | 47 -
.../resources/unionflow/inputText.xhtml | 40 -
.../resources/unionflow/inputTextarea.xhtml | 43 -
.../resources/META-INF/unionflow.taglib.xml | 9 -
.../resources/ValidationMessages.properties | 37 -
.../main/resources/application-dev.properties | 29 -
.../resources/application-prod.properties | 14 -
.../src/main/resources/application.properties | 117 -
.../src/main/webapp/WEB-INF/beans.xml | 7 -
.../src/main/webapp/WEB-INF/faces-config.xml | 21 -
.../WEB-INF/primefaces-freya.taglib.xml | 65 -
.../src/main/webapp/WEB-INF/web.xml | 104 -
.../main/webapp/resources/css/layout-dark.css | 4257 ---------
.../webapp/resources/css/layout-dark.scss | 5 -
.../webapp/resources/css/layout-light.css | 4257 ---------
.../webapp/resources/css/layout-light.scss | 5 -
.../webapp/resources/css/primeflex-v2.min.css | 1 -
.../webapp/resources/css/primeflex.min.css | 1 -
.../main/webapp/resources/css/primeicons.css | 1017 ---
.../webapp/resources/icons/primeicons.eot | Bin 66820 -> 0 bytes
.../webapp/resources/icons/primeicons.svg | 270 -
.../webapp/resources/icons/primeicons.ttf | Bin 66644 -> 0 bytes
.../webapp/resources/icons/primeicons.woff | Bin 66720 -> 0 bytes
.../resources/images/avatar-profilemenu.png | Bin 1249 -> 0 bytes
.../main/webapp/resources/images/favicon.ico | Bin 15086 -> 0 bytes
.../resources/images/logo-freya-single.svg | 9 -
.../resources/images/logo-freya-white.svg | 14 -
.../webapp/resources/images/logo-freya.svg | 40 -
.../resources/images/pages/asset-404.svg | 9 -
.../resources/images/pages/asset-access.svg | 9 -
.../resources/images/pages/asset-error.svg | 9 -
.../images/pages/asset-landing-header.jpg | Bin 844761 -> 0 bytes
.../webapp/resources/images/pages/search.png | Bin 788 -> 0 bytes
.../src/main/webapp/resources/js/layout.js | 879 --
.../src/main/webapp/resources/js/prism.js | 10 -
.../primefaces-freya-blue-light/theme.css | 7710 ----------------
.../primefaces-freya-blue-light/theme.scss | 9 -
unionflow-mobile-apps/.gitignore | 43 -
unionflow-mobile-apps/.metadata | 30 -
unionflow-mobile-apps/CLEANUP_SUMMARY.md | 164 -
unionflow-mobile-apps/README.md | 35 -
unionflow-mobile-apps/analysis_options.yaml | 28 -
unionflow-mobile-apps/android/.gitignore | 13 -
.../android/app/build.gradle | 50 -
.../android/app/src/debug/AndroidManifest.xml | 7 -
.../android/app/src/main/AndroidManifest.xml | 75 -
.../unionflow_mobile_apps/MainActivity.kt | 29 -
.../res/drawable-v21/launch_background.xml | 12 -
.../main/res/drawable/launch_background.xml | 12 -
.../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 544 -> 0 bytes
.../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 442 -> 0 bytes
.../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 721 -> 0 bytes
.../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 1031 -> 0 bytes
.../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 1443 -> 0 bytes
.../app/src/main/res/values-night/styles.xml | 18 -
.../app/src/main/res/values/styles.xml | 18 -
.../main/res/xml/network_security_config.xml | 14 -
.../app/src/profile/AndroidManifest.xml | 7 -
unionflow-mobile-apps/android/build.gradle | 39 -
.../android/gradle.properties | 15 -
.../gradle/wrapper/gradle-wrapper.properties | 5 -
unionflow-mobile-apps/android/settings.gradle | 25 -
unionflow-mobile-apps/devtools_options.yaml | 3 -
unionflow-mobile-apps/ios/.gitignore | 34 -
.../ios/Flutter/AppFrameworkInfo.plist | 26 -
.../ios/Flutter/Debug.xcconfig | 1 -
.../ios/Flutter/Release.xcconfig | 1 -
.../ios/Runner.xcodeproj/project.pbxproj | 616 --
.../contents.xcworkspacedata | 7 -
.../xcshareddata/IDEWorkspaceChecks.plist | 8 -
.../xcshareddata/WorkspaceSettings.xcsettings | 8 -
.../xcshareddata/xcschemes/Runner.xcscheme | 98 -
.../contents.xcworkspacedata | 7 -
.../xcshareddata/IDEWorkspaceChecks.plist | 8 -
.../xcshareddata/WorkspaceSettings.xcsettings | 8 -
.../ios/Runner/AppDelegate.swift | 13 -
.../AppIcon.appiconset/Contents.json | 122 -
.../Icon-App-1024x1024@1x.png | Bin 10932 -> 0 bytes
.../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 295 -> 0 bytes
.../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 406 -> 0 bytes
.../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 450 -> 0 bytes
.../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 282 -> 0 bytes
.../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 462 -> 0 bytes
.../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 704 -> 0 bytes
.../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 406 -> 0 bytes
.../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 586 -> 0 bytes
.../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 862 -> 0 bytes
.../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 862 -> 0 bytes
.../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 1674 -> 0 bytes
.../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 762 -> 0 bytes
.../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 1226 -> 0 bytes
.../Icon-App-83.5x83.5@2x.png | Bin 1418 -> 0 bytes
.../LaunchImage.imageset/Contents.json | 23 -
.../LaunchImage.imageset/LaunchImage.png | Bin 68 -> 0 bytes
.../LaunchImage.imageset/LaunchImage@2x.png | Bin 68 -> 0 bytes
.../LaunchImage.imageset/LaunchImage@3x.png | Bin 68 -> 0 bytes
.../LaunchImage.imageset/README.md | 5 -
.../Runner/Base.lproj/LaunchScreen.storyboard | 37 -
.../ios/Runner/Base.lproj/Main.storyboard | 26 -
unionflow-mobile-apps/ios/Runner/Info.plist | 56 -
.../ios/Runner/Runner-Bridging-Header.h | 1 -
.../ios/RunnerTests/RunnerTests.swift | 12 -
unionflow-mobile-apps/l10n.yaml | 4 -
unionflow-mobile-apps/lib/app/app.dart | 72 -
.../lib/app/router/app_router.dart | 37 -
.../lib/core/constants/app_constants.dart | 312 -
unionflow-mobile-apps/lib/core/di/app_di.dart | 100 -
.../lib/core/di/injection_container.dart | 15 -
.../lib/core/error/error_handler.dart | 192 -
.../lib/core/error/exceptions.dart | 50 -
.../lib/core/error/failures.dart | 71 -
.../lib/core/l10n/locale_provider.dart | 102 -
.../core/navigation/adaptive_navigation.dart | 561 --
.../lib/core/navigation/app_router.dart | 42 -
.../navigation/main_navigation_layout.dart | 498 --
.../lib/core/network/dio_client.dart | 216 -
.../lib/core/network/network_info.dart | 19 -
.../core/storage/dashboard_cache_manager.dart | 418 -
.../lib/core/usecases/usecase.dart | 17 -
.../lib/core/utils/logger.dart | 301 -
.../about/presentation/pages/about_page.dart | 873 --
.../datasources/dashboard_cache_manager.dart | 71 -
.../datasources/keycloak_auth_service.dart | 418 -
.../datasources/keycloak_role_mapper.dart | 344 -
.../keycloak_webview_auth_service.dart | 671 --
.../data/datasources/permission_engine.dart | 375 -
.../data/models/permission_matrix.dart | 212 -
.../authentication/data/models/user.dart | 359 -
.../authentication/data/models/user_role.dart | 319 -
.../presentation/bloc/auth_bloc.dart | 468 -
.../pages/keycloak_webview_auth_page.dart | 583 --
.../presentation/pages/login_page.dart | 738 --
.../presentation/pages/backup_page.dart | 568 --
.../bloc/contributions_bloc.dart | 597 --
.../bloc/contributions_event.dart | 225 -
.../bloc/contributions_state.dart | 172 -
.../data/models/contribution_model.dart | 316 -
.../data/models/contribution_model.g.dart | 111 -
.../contributions/di/contributions_di.dart | 19 -
.../pages/contributions_page.dart | 512 --
.../pages/contributions_page_wrapper.dart | 30 -
.../widgets/create_contribution_dialog.dart | 256 -
.../presentation/widgets/payment_dialog.dart | 396 -
.../features/dashboard/REFACTORING_GUIDE.md | 253 -
.../dashboard/config/dashboard_config.dart | 307 -
.../data/cache/dashboard_cache_manager.dart | 400 -
.../dashboard_remote_datasource.dart | 121 -
.../data/models/dashboard_stats_model.dart | 216 -
.../data/models/dashboard_stats_model.g.dart | 123 -
.../dashboard_repository_impl.dart | 162 -
.../services/dashboard_export_service.dart | 507 --
.../dashboard_notification_service.dart | 391 -
.../services/dashboard_offline_service.dart | 471 -
.../dashboard_performance_monitor.dart | 526 --
.../features/dashboard/di/dashboard_di.dart | 58 -
.../domain/entities/dashboard_entity.dart | 230 -
.../repositories/dashboard_repository.dart | 27 -
.../domain/usecases/get_dashboard_data.dart | 120 -
.../presentation/bloc/dashboard_bloc.dart | 174 -
.../presentation/bloc/dashboard_event.dart | 77 -
.../presentation/bloc/dashboard_state.dart | 39 -
.../pages/advanced_dashboard_page.dart | 483 --
.../pages/connected_dashboard_page.dart | 158 -
.../active_member_dashboard.dart | 275 -
.../role_dashboards/consultant_dashboard.dart | 725 --
.../role_dashboards/hr_manager_dashboard.dart | 914 --
.../role_dashboards/moderator_dashboard.dart | 230 -
.../role_dashboards/org_admin_dashboard.dart | 937 --
.../role_dashboards/role_dashboards.dart | 11 -
.../simple_member_dashboard.dart | 360 -
.../super_admin_dashboard.dart | 890 --
.../role_dashboards/visitor_dashboard.dart | 554 --
.../charts/dashboard_chart_widget.dart | 410 -
.../widgets/common/activity_item.dart | 463 -
.../widgets/common/section_header.dart | 302 -
.../widgets/common/stat_card.dart | 292 -
.../components/cards/performance_card.dart | 260 -
.../connected_recent_activities.dart | 342 -
.../connected/connected_stats_card.dart | 203 -
.../connected/connected_upcoming_events.dart | 420 -
.../widgets/dashboard_drawer.dart | 191 -
.../widgets/dashboard_widgets.dart | 255 -
.../metrics/real_time_metrics_widget.dart | 439 -
.../performance_monitor_widget.dart | 509 --
.../navigation/dashboard_navigation.dart | 412 -
.../dashboard_notifications_widget.dart | 443 -
.../search/dashboard_search_widget.dart | 321 -
.../settings/theme_selector_widget.dart | 337 -
.../shortcuts/dashboard_shortcuts_widget.dart | 228 -
.../presentation/widgets/widgets.dart | 28 -
.../features/events/bloc/evenements_bloc.dart | 445 -
.../events/bloc/evenements_event.dart | 150 -
.../events/bloc/evenements_state.dart | 194 -
.../events/data/models/evenement_model.dart | 348 -
.../events/data/models/evenement_model.g.dart | 111 -
.../evenement_repository_impl.dart | 358 -
.../lib/features/events/di/evenements_di.dart | 36 -
.../presentation/pages/event_detail_page.dart | 411 -
.../presentation/pages/events_page.dart | 1259 ---
.../pages/events_page_connected.dart | 600 --
.../pages/events_page_wrapper.dart | 275 -
.../widgets/create_event_dialog.dart | 428 -
.../widgets/edit_event_dialog.dart | 511 --
.../widgets/inscription_event_dialog.dart | 320 -
.../presentation/pages/help_support_page.dart | 1064 ---
.../features/members/bloc/membres_bloc.dart | 419 -
.../features/members/bloc/membres_event.dart | 143 -
.../features/members/bloc/membres_state.dart | 180 -
.../data/models/membre_complete_model.dart | 329 -
.../data/models/membre_complete_model.g.dart | 106 -
.../members/data/models/membre_model.dart | 69 -
.../repositories/membre_repository_impl.dart | 320 -
.../data/services/membre_search_service.dart | 278 -
.../lib/features/members/di/membres_di.dart | 36 -
.../pages/advanced_search_page.dart | 575 --
.../presentation/pages/members_page.dart | 1962 -----
.../pages/members_page_connected.dart | 956 --
.../pages/members_page_wrapper.dart | 267 -
.../widgets/add_member_dialog.dart | 403 -
.../widgets/edit_member_dialog.dart | 441 -
.../widgets/membre_search_form.dart | 433 -
.../widgets/membre_search_results.dart | 386 -
.../widgets/search_statistics_card.dart | 416 -
.../pages/notifications_page.dart | 1100 ---
.../bloc/organizations_bloc.dart | 488 --
.../bloc/organizations_event.dart | 176 -
.../bloc/organizations_state.dart | 281 -
.../data/models/organization_model.dart | 434 -
.../data/models/organization_model.g.dart | 110 -
.../repositories/organization_repository.dart | 413 -
.../data/services/organization_service.dart | 316 -
.../organizations/di/organizations_di.dart | 59 -
.../pages/create_organization_page.dart | 533 --
.../pages/edit_organization_page.dart | 705 --
.../pages/organization_detail_page.dart | 790 --
.../pages/organizations_page.dart | 736 --
.../pages/organizations_page_wrapper.dart | 21 -
.../widgets/create_organization_dialog.dart | 403 -
.../widgets/edit_organization_dialog.dart | 485 --
.../widgets/organization_card.dart | 306 -
.../widgets/organization_filter_widget.dart | 301 -
.../widgets/organization_search_bar.dart | 113 -
.../widgets/organization_stats_widget.dart | 160 -
.../presentation/pages/profile_page.dart | 1686 ----
.../presentation/pages/reports_page.dart | 659 --
.../pages/system_settings_page.dart | 1478 ----
unionflow-mobile-apps/lib/l10n/app_en.arb | 292 -
unionflow-mobile-apps/lib/l10n/app_fr.arb | 292 -
unionflow-mobile-apps/lib/main.dart | 56 -
.../design_system/DESIGN_SYSTEM_GUIDE.md | 349 -
.../components/buttons/uf_primary_button.dart | 103 -
.../buttons/uf_secondary_button.dart | 82 -
.../components/cards/uf_card.dart | 158 -
.../components/cards/uf_info_card.dart | 92 -
.../components/cards/uf_metric_card.dart | 76 -
.../components/cards/uf_stat_card.dart | 143 -
.../design_system/components/components.dart | 43 -
.../components/inputs/uf_dropdown_tile.dart | 99 -
.../components/inputs/uf_switch_tile.dart | 90 -
.../design_system/components/uf_app_bar.dart | 60 -
.../components/uf_container.dart | 138 -
.../design_system/components/uf_header.dart | 127 -
.../components/uf_page_header.dart | 248 -
.../shared/design_system/dashboard_theme.dart | 246 -
.../dashboard_theme_manager.dart | 337 -
.../theme/app_theme_sophisticated.dart | 457 -
.../design_system/tokens/color_tokens.dart | 197 -
.../design_system/tokens/radius_tokens.dart | 23 -
.../design_system/tokens/shadow_tokens.dart | 150 -
.../design_system/tokens/spacing_tokens.dart | 194 -
.../tokens/typography_tokens.dart | 296 -
.../unionflow_design_system.dart | 57 -
.../shared/models/membre_search_criteria.dart | 328 -
.../shared/models/membre_search_result.dart | 269 -
.../lib/shared/widgets/adaptive_widget.dart | 396 -
.../shared/widgets/confirmation_dialog.dart | 292 -
.../lib/shared/widgets/error_widget.dart | 168 -
.../lib/shared/widgets/loading_widget.dart | 244 -
unionflow-mobile-apps/pubspec.lock | 1587 ----
unionflow-mobile-apps/pubspec.yaml | 85 -
.../features/dashboard/dashboard_test.dart | 268 -
.../unit/core/error/error_handler_test.dart | 345 -
unionflow-mobile-apps/test_app.bat | 37 -
unionflow-mobile-apps/web/favicon.png | Bin 917 -> 0 bytes
unionflow-mobile-apps/web/icons/Icon-192.png | Bin 5292 -> 0 bytes
unionflow-mobile-apps/web/icons/Icon-512.png | Bin 8252 -> 0 bytes
.../web/icons/Icon-maskable-192.png | Bin 5594 -> 0 bytes
.../web/icons/Icon-maskable-512.png | Bin 20998 -> 0 bytes
unionflow-mobile-apps/web/index.html | 39 -
unionflow-mobile-apps/web/manifest.json | 35 -
unionflow-realm-production.json | 185 -
unionflow-server-api/.gitignore | 143 -
unionflow-server-api/checkstyle-unionflow.xml | 359 -
unionflow-server-api/pom.xml | 236 -
.../api/dto/abonnement/AbonnementDTO.java | 622 --
.../server/api/dto/admin/AuditLogDTO.java | 68 -
.../server/api/dto/adresse/AdresseDTO.java | 82 -
.../api/dto/analytics/AnalyticsDataDTO.java | 259 -
.../api/dto/analytics/DashboardWidgetDTO.java | 338 -
.../server/api/dto/analytics/KPITrendDTO.java | 309 -
.../api/dto/analytics/ReportConfigDTO.java | 327 -
.../server/api/dto/base/BaseDTO.java | 161 -
.../dto/comptabilite/CompteComptableDTO.java | 57 -
.../comptabilite/EcritureComptableDTO.java | 72 -
.../dto/comptabilite/JournalComptableDTO.java | 48 -
.../dto/comptabilite/LigneEcritureDTO.java | 52 -
.../api/dto/dashboard/DashboardDataDTO.java | 122 -
.../api/dto/dashboard/DashboardStatsDTO.java | 98 -
.../api/dto/dashboard/RecentActivityDTO.java | 130 -
.../api/dto/dashboard/UpcomingEventDTO.java | 174 -
.../server/api/dto/document/DocumentDTO.java | 59 -
.../api/dto/document/PieceJointeDTO.java | 55 -
.../api/dto/evenement/EvenementDTO.java | 793 --
.../server/api/dto/finance/AdhesionDTO.java | 250 -
.../server/api/dto/finance/CotisationDTO.java | 574 --
.../FormuleAbonnementDTO.java | 704 --
.../server/api/dto/membre/MembreDTO.java | 462 -
.../api/dto/membre/MembreSearchCriteria.java | 226 -
.../api/dto/membre/MembreSearchResultDTO.java | 199 -
.../notification/ActionNotificationDTO.java | 477 -
.../api/dto/notification/NotificationDTO.java | 68 -
.../PreferenceCanalNotificationDTO.java | 119 -
.../PreferenceTypeNotificationDTO.java | 132 -
.../PreferencesNotificationDTO.java | 636 --
.../notification/TemplateNotificationDTO.java | 46 -
.../api/dto/organisation/OrganisationDTO.java | 518 --
.../dto/organisation/TypeOrganisationDTO.java | 46 -
.../server/api/dto/paiement/PaiementDTO.java | 80 -
.../api/dto/paiement/WaveBalanceDTO.java | 363 -
.../dto/paiement/WaveCheckoutSessionDTO.java | 168 -
.../api/dto/paiement/WaveWebhookDTO.java | 464 -
.../dto/solidarite/BeneficiaireAideDTO.java | 71 -
.../dto/solidarite/CommentaireAideDTO.java | 86 -
.../dto/solidarite/ContactProposantDTO.java | 77 -
.../api/dto/solidarite/ContactUrgenceDTO.java | 64 -
.../solidarite/CreneauDisponibiliteDTO.java | 137 -
.../dto/solidarite/CritereSelectionDTO.java | 54 -
.../api/dto/solidarite/DemandeAideDTO.java | 468 -
.../api/dto/solidarite/EvaluationAideDTO.java | 256 -
.../dto/solidarite/HistoriqueStatutDTO.java | 62 -
.../api/dto/solidarite/LocalisationDTO.java | 58 -
.../dto/solidarite/PieceJustificativeDTO.java | 68 -
.../dto/solidarite/PropositionAideDTO.java | 290 -
.../server/api/dto/wave/CompteWaveDTO.java | 53 -
.../api/dto/wave/TransactionWaveDTO.java | 87 -
.../enums/abonnement/StatutAbonnement.java | 26 -
.../api/enums/abonnement/StatutFormule.java | 25 -
.../api/enums/abonnement/TypeFormule.java | 25 -
.../server/api/enums/adresse/TypeAdresse.java | 26 -
.../api/enums/analytics/FormatExport.java | 257 -
.../api/enums/analytics/PeriodeAnalyse.java | 226 -
.../api/enums/analytics/TypeMetrique.java | 187 -
.../comptabilite/TypeCompteComptable.java | 28 -
.../comptabilite/TypeJournalComptable.java | 27 -
.../api/enums/document/TypeDocument.java | 30 -
.../enums/evenement/PrioriteEvenement.java | 159 -
.../api/enums/evenement/StatutEvenement.java | 233 -
.../enums/evenement/TypeEvenementMetier.java | 30 -
.../api/enums/finance/StatutCotisation.java | 27 -
.../server/api/enums/membre/StatutMembre.java | 25 -
.../enums/notification/CanalNotification.java | 465 -
.../notification/PrioriteNotification.java | 26 -
.../notification/StatutNotification.java | 459 -
.../enums/notification/TypeNotification.java | 32 -
.../organisation/StatutOrganisation.java | 26 -
.../enums/organisation/TypeOrganisation.java | 29 -
.../api/enums/paiement/MethodePaiement.java | 39 -
.../api/enums/paiement/StatutPaiement.java | 38 -
.../api/enums/paiement/StatutSession.java | 26 -
.../api/enums/paiement/StatutTraitement.java | 26 -
.../api/enums/paiement/TypeEvenement.java | 44 -
.../api/enums/solidarite/PrioriteAide.java | 268 -
.../api/enums/solidarite/StatutAide.java | 296 -
.../server/api/enums/solidarite/TypeAide.java | 515 --
.../api/enums/wave/StatutCompteWave.java | 26 -
.../api/enums/wave/StatutTransactionWave.java | 34 -
.../server/api/enums/wave/StatutWebhook.java | 27 -
.../api/enums/wave/TypeEvenementWebhook.java | 29 -
.../api/enums/wave/TypeTransactionWave.java | 27 -
.../service/dashboard/DashboardService.java | 59 -
.../api/validation/ValidationConstants.java | 233 -
.../unionflow/server/api/CompilationTest.java | 144 -
.../unionflow/server/api/TestDataFactory.java | 243 -
.../abonnement/AbonnementDTOBasicTest.java | 267 -
.../dto/analytics/AnalyticsDataDTOTest.java | 570 --
.../dto/analytics/DashboardWidgetDTOTest.java | 634 --
.../api/dto/analytics/KPITrendDTOTest.java | 561 --
.../dto/analytics/ReportConfigDTOTest.java | 683 --
.../server/api/dto/base/BaseDTOTest.java | 326 -
.../dto/dashboard/DashboardDataDTOTest.java | 360 -
.../dto/dashboard/DashboardStatsDTOTest.java | 301 -
.../dto/dashboard/RecentActivityDTOTest.java | 327 -
.../dto/dashboard/UpcomingEventDTOTest.java | 439 -
.../dto/evenement/EvenementDTOSimpleTest.java | 144 -
.../api/dto/evenement/EvenementDTOTest.java | 705 --
.../dto/finance/CotisationDTOBasicTest.java | 519 --
.../FormuleAbonnementDTOBasicTest.java | 615 --
.../server/api/dto/membre/MembreDTOTest.java | 370 -
.../dto/membre/MembreSearchCriteriaTest.java | 429 -
.../dto/membre/MembreSearchResultDTOTest.java | 363 -
.../ActionNotificationDTOTest.java | 459 -
.../PreferenceCanalNotificationDTOTest.java | 125 -
.../PreferenceTypeNotificationDTOTest.java | 127 -
.../OrganisationDTOSimpleTest.java | 96 -
.../dto/organisation/OrganisationDTOTest.java | 755 --
.../dto/paiement/WaveBalanceDTOBasicTest.java | 359 -
.../WaveCheckoutSessionDTOBasicTest.java | 228 -
.../paiement/WaveCheckoutSessionDTOTest.java | 746 --
.../paiement/WaveMoneyIntegrationTest.java | 328 -
.../dto/paiement/WaveWebhookDTOBasicTest.java | 327 -
.../solidarite/BeneficiaireAideDTOTest.java | 325 -
.../solidarite/CommentaireAideDTOTest.java | 512 --
.../solidarite/ContactProposantDTOTest.java | 477 -
.../dto/solidarite/ContactUrgenceDTOTest.java | 322 -
.../CreneauDisponibiliteDTOTest.java | 699 --
.../solidarite/CritereSelectionDTOTest.java | 294 -
.../dto/solidarite/DemandeAideDTOTest.java | 1084 ---
.../dto/solidarite/EvaluationAideDTOTest.java | 1154 ---
.../solidarite/HistoriqueStatutDTOTest.java | 331 -
.../dto/solidarite/LocalisationDTOTest.java | 309 -
.../solidarite/PieceJustificativeDTOTest.java | 423 -
.../solidarite/PropositionAideDTOTest.java | 1625 ----
.../api/enums/EnumsRefactoringTest.java | 306 -
.../abonnement/StatutAbonnementTest.java | 73 -
.../enums/abonnement/StatutFormuleTest.java | 70 -
.../api/enums/abonnement/TypeFormuleTest.java | 70 -
.../api/enums/analytics/FormatExportTest.java | 277 -
.../enums/analytics/PeriodeAnalyseTest.java | 481 -
.../api/enums/analytics/TypeMetriqueTest.java | 246 -
.../evenement/PrioriteEvenementTest.java | 207 -
.../enums/evenement/StatutEvenementTest.java | 411 -
.../evenement/TypeEvenementMetierTest.java | 68 -
.../enums/finance/StatutCotisationTest.java | 76 -
.../api/enums/membre/StatutMembreTest.java | 84 -
.../notification/CanalNotificationTest.java | 410 -
.../notification/StatutNotificationTest.java | 394 -
.../organisation/StatutOrganisationTest.java | 89 -
.../organisation/TypeOrganisationTest.java | 95 -
.../api/enums/paiement/StatutSessionTest.java | 54 -
.../enums/paiement/StatutTraitementTest.java | 54 -
.../api/enums/paiement/TypeEvenementTest.java | 93 -
.../enums/solidarite/PrioriteAideTest.java | 537 --
.../api/enums/solidarite/StatutAideTest.java | 359 -
.../api/enums/solidarite/TypeAideTest.java | 512 --
.../validation/ValidationConstantsTest.java | 207 -
unionflow-server-impl-quarkus/Dockerfile.prod | 91 -
.../docker-compose.dev.yml | 43 -
unionflow-server-impl-quarkus/pom.xml | 315 -
.../setup-postgres.sql | 27 -
.../server/auth/AuthCallbackResource.java | 136 -
.../server/UnionFlowServerApplication.java | 35 -
.../server/dto/EvenementMobileDTO.java | 143 -
.../unionflow/server/entity/Adhesion.java | 132 -
.../unionflow/server/entity/Adresse.java | 154 -
.../unionflow/server/entity/AuditLog.java | 81 -
.../unionflow/server/entity/BaseEntity.java | 141 -
.../server/entity/CompteComptable.java | 120 -
.../unionflow/server/entity/CompteWave.java | 107 -
.../server/entity/ConfigurationWave.java | 69 -
.../unionflow/server/entity/Cotisation.java | 184 -
.../unionflow/server/entity/DemandeAide.java | 130 -
.../unionflow/server/entity/Document.java | 128 -
.../server/entity/EcritureComptable.java | 172 -
.../unionflow/server/entity/Evenement.java | 267 -
.../server/entity/InscriptionEvenement.java | 156 -
.../server/entity/JournalComptable.java | 98 -
.../server/entity/LigneEcriture.java | 100 -
.../lions/unionflow/server/entity/Membre.java | 106 -
.../unionflow/server/entity/MembreRole.java | 88 -
.../unionflow/server/entity/Notification.java | 132 -
.../unionflow/server/entity/Organisation.java | 308 -
.../unionflow/server/entity/Paiement.java | 169 -
.../server/entity/PaiementAdhesion.java | 75 -
.../unionflow/server/entity/PaiementAide.java | 75 -
.../server/entity/PaiementCotisation.java | 76 -
.../server/entity/PaiementEvenement.java | 75 -
.../unionflow/server/entity/Permission.java | 90 -
.../unionflow/server/entity/PieceJointe.java | 103 -
.../lions/unionflow/server/entity/Role.java | 105 -
.../server/entity/RolePermission.java | 54 -
.../server/entity/TemplateNotification.java | 81 -
.../server/entity/TransactionWave.java | 161 -
.../server/entity/TypeOrganisationEntity.java | 73 -
.../unionflow/server/entity/WebhookWave.java | 118 -
.../server/repository/AdhesionRepository.java | 102 -
.../server/repository/AdresseRepository.java | 111 -
.../server/repository/AuditLogRepository.java | 26 -
.../server/repository/BaseRepository.java | 140 -
.../repository/CompteComptableRepository.java | 80 -
.../repository/CompteWaveRepository.java | 98 -
.../ConfigurationWaveRepository.java | 59 -
.../repository/CotisationRepository.java | 392 -
.../repository/DemandeAideRepository.java | 275 -
.../server/repository/DocumentRepository.java | 70 -
.../EcritureComptableRepository.java | 109 -
.../repository/EvenementRepository.java | 463 -
.../JournalComptableRepository.java | 83 -
.../repository/LigneEcritureRepository.java | 51 -
.../server/repository/MembreRepository.java | 238 -
.../repository/MembreRoleRepository.java | 77 -
.../repository/NotificationRepository.java | 127 -
.../repository/OrganisationRepository.java | 424 -
.../server/repository/PaiementRepository.java | 110 -
.../repository/PermissionRepository.java | 87 -
.../repository/PieceJointeRepository.java | 100 -
.../repository/RolePermissionRepository.java | 61 -
.../server/repository/RoleRepository.java | 83 -
.../TemplateNotificationRepository.java | 59 -
.../repository/TransactionWaveRepository.java | 109 -
.../TypeOrganisationRepository.java | 43 -
.../repository/WebhookWaveRepository.java | 104 -
.../server/resource/AdhesionResource.java | 705 --
.../server/resource/AnalyticsResource.java | 345 -
.../server/resource/AuditResource.java | 112 -
.../server/resource/ComptabiliteResource.java | 278 -
.../server/resource/CotisationResource.java | 674 --
.../server/resource/DashboardResource.java | 251 -
.../server/resource/DocumentResource.java | 158 -
.../server/resource/EvenementResource.java | 452 -
.../server/resource/ExportResource.java | 119 -
.../server/resource/HealthResource.java | 33 -
.../server/resource/MembreResource.java | 643 --
.../server/resource/NotificationResource.java | 246 -
.../server/resource/OrganisationResource.java | 423 -
.../server/resource/PaiementResource.java | 213 -
.../server/resource/PreferencesResource.java | 75 -
.../resource/TypeOrganisationResource.java | 165 -
.../server/resource/WaveResource.java | 269 -
.../server/security/SecurityConfig.java | 214 -
.../server/service/AdhesionService.java | 559 --
.../server/service/AdresseService.java | 353 -
.../server/service/AnalyticsService.java | 478 -
.../server/service/AuditService.java | 229 -
.../server/service/ComptabiliteService.java | 479 -
.../server/service/CotisationService.java | 493 --
.../server/service/DashboardServiceImpl.java | 254 -
.../server/service/DemandeAideService.java | 400 -
.../server/service/DocumentService.java | 311 -
.../server/service/EvenementService.java | 340 -
.../server/service/ExportService.java | 237 -
.../server/service/KPICalculatorService.java | 363 -
.../server/service/KeycloakService.java | 311 -
.../server/service/MatchingService.java | 428 -
.../service/MembreImportExportService.java | 842 --
.../server/service/MembreService.java | 737 --
.../service/NotificationHistoryService.java | 322 -
.../server/service/NotificationService.java | 352 -
.../server/service/OrganisationService.java | 443 -
.../server/service/PaiementService.java | 309 -
.../server/service/PermissionService.java | 165 -
.../PreferencesNotificationService.java | 140 -
.../service/PropositionAideService.java | 442 -
.../unionflow/server/service/RoleService.java | 171 -
.../server/service/TrendAnalysisService.java | 412 -
.../service/TypeOrganisationService.java | 146 -
.../unionflow/server/service/WaveService.java | 393 -
.../unionflow/server/util/IdConverter.java | 150 -
.../src/main/resources/META-INF/beans.xml | 8 -
.../resources/application-minimal.properties | 56 -
.../resources/application-prod.properties | 77 -
.../resources/application-test.properties | 23 -
.../src/main/resources/application.properties | 103 -
.../V1.2__Create_Organisation_Table.sql | 143 -
.../migration/V1.3__Convert_Ids_To_UUID.sql | 419 -
.../src/main/resources/import.sql | 10 -
.../resources/keycloak/unionflow-realm.json | 307 -
.../UnionFlowServerApplicationTest.java | 155 -
.../server/entity/MembreSimpleTest.java | 237 -
.../MembreRepositoryIntegrationTest.java | 184 -
.../repository/MembreRepositoryTest.java | 105 -
.../server/resource/AideResourceTest.java | 394 -
.../resource/CotisationResourceTest.java | 325 -
.../resource/EvenementResourceTest.java | 448 -
.../server/resource/HealthResourceTest.java | 69 -
...MembreResourceCompleteIntegrationTest.java | 318 -
.../MembreResourceSimpleIntegrationTest.java | 259 -
.../server/resource/MembreResourceTest.java | 275 -
.../resource/OrganisationResourceTest.java | 345 -
.../server/service/AideServiceTest.java | 327 -
.../server/service/EvenementServiceTest.java | 403 -
.../server/service/MembreServiceTest.java | 344 -
.../service/OrganisationServiceTest.java | 356 -
.../MembreResourceAdvancedSearchTest.java | 329 -
.../MembreServiceAdvancedSearchTest.java | 392 -
unionflow.md | 1297 ---
1167 files changed, 5266 insertions(+), 384530 deletions(-)
delete mode 100644 AUDIT_INTEGRAL_UNIONFLOW.md
delete mode 100644 CORRECTIONS_APPLIQUEES.md
delete mode 100644 CORRECTION_KEYCLOAK_APPLIQUEE.md
delete mode 100644 CORRECTION_KEYCLOAK_MAPPER.md
delete mode 100644 CORRECTION_OIDC_PKCE.md
delete mode 100644 DEPLOIEMENT_RAPIDE_PRODUCTION.md
delete mode 100644 DESCRIPTION_METIER_UNIONFLOW.md
delete mode 100644 DIAGRAMME_CLASSES_UNIONFLOW.md
delete mode 100644 Dockerfile
delete mode 100644 Dockerfile.client
delete mode 100644 Dockerfile.server
delete mode 100644 ETAT_MODULES.md
delete mode 100644 FONCTIONNALITES_PRETES_PRODUCTION.md
delete mode 100644 MCD_UNIONFLOW.puml
delete mode 100644 MIGRATION_UUID.md
delete mode 100644 MIGRATION_UUID_CLIENT.md
delete mode 100644 NETTOYAGE_CODE_RESUME.md
delete mode 100644 PHASE2_AUDIT_ET_PLAN_ACTION.md
delete mode 100644 PHASE2_REFACTORING_PLAN.md
delete mode 100644 PLAN_IMPLEMENTATION_ARCHITECTURE_V3.md
delete mode 100644 PLAN_LIVRAISON_PRODUCTION.md
delete mode 100644 PROCHAINES_ETAPES.md
delete mode 100644 PROCHAINES_ETAPES_APRES_BEANS.md
delete mode 100644 PROMPT_LIONS_USER_MANAGER_CORRIGE.md
delete mode 100644 RAPPORT_SECURITE_RESOURCES.md
delete mode 100644 REFACTORING_COTISATIONSBEAN_PART1.md
delete mode 100644 RESUME_IMPLEMENTATION_V3.md
delete mode 100644 RESUME_MIGRATION_UUID.md
delete mode 100644 ROADMAP_FINALISATION_UNIONFLOW.md
delete mode 100644 VARIABLES_ENVIRONNEMENT.md
delete mode 100644 docker-compose.yml
delete mode 100644 docker-env.example
delete mode 100644 flutter_01.png
delete mode 100644 flutter_02.png
delete mode 100644 flutter_03.png
delete mode 100644 pom.xml
create mode 100644 scripts/build/build-android-bundle.ps1
create mode 100644 scripts/build/build-android-release.ps1
create mode 100644 scripts/build/build-ios-release.ps1
create mode 100644 test/features/contributions/domain/usecases/delete_contribution_test.mocks.dart
create mode 100644 test/features/contributions/domain/usecases/get_contribution_by_id_test.mocks.dart
create mode 100644 test/features/contributions/domain/usecases/get_contribution_history_test.mocks.dart
create mode 100644 test/features/contributions/domain/usecases/get_contribution_stats_test.mocks.dart
create mode 100644 test/features/contributions/domain/usecases/get_contributions_test.mocks.dart
create mode 100644 test/features/contributions/domain/usecases/pay_contribution_test.mocks.dart
create mode 100644 test/features/contributions/domain/usecases/update_contribution_test.mocks.dart
create mode 100644 test/features/events/domain/usecases/create_event_test.mocks.dart
create mode 100644 test/features/events/domain/usecases/delete_event_test.mocks.dart
create mode 100644 test/features/events/domain/usecases/get_event_by_id_test.mocks.dart
create mode 100644 test/features/events/domain/usecases/get_event_participants_test.mocks.dart
create mode 100644 test/features/events/domain/usecases/get_events_test.mocks.dart
create mode 100644 test/features/events/domain/usecases/get_my_registrations_test.mocks.dart
create mode 100644 test/features/events/domain/usecases/register_for_event_test.mocks.dart
delete mode 100644 union-flow.puml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/Dockerfile.prod
delete mode 100644 unionflow-client-quarkus-primefaces-freya/pom.xml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/UnionFlowClientApplication.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/constants/StatutOrganisationConstants.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/converter/MembreConverter.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/dto/AdhesionDTO.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/dto/AnalyticsDataDTO.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/dto/AssociationDTO.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/dto/AuditLogDTO.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/dto/CotisationDTO.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/dto/DemandeAideDTO.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/dto/EvenementDTO.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/dto/FormulaireDTO.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/dto/MembreDTO.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/dto/SouscriptionDTO.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/dto/TypeOrganisationClientDTO.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/dto/WaveBalanceDTO.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/dto/WaveCheckoutSessionDTO.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/dto/auth/LoginRequest.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/dto/auth/LoginResponse.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/exception/ViewExpiredExceptionHandler.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/exception/ViewExpiredExceptionHandlerFactory.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/security/AuthenticationFilter.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/security/JwtClientRequestFilter.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/security/JwtTokenManager.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/security/PermissionChecker.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/security/TokenCleanupService.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/security/TokenRefreshService.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/service/AdhesionService.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/service/AnalyticsService.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/service/AssociationService.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/service/AuditService.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/service/AuthenticationService.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/service/CotisationService.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/service/DemandeAideService.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/service/EvenementService.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/service/ExportClientService.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/service/FormulaireService.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/service/MembreService.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/service/NotificationClientService.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/service/NotificationService.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/service/PreferencesService.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/service/RestClientExceptionMapper.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/service/SouscriptionService.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/service/TypeOrganisationClientService.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/service/ValidationService.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/service/WaveService.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/validation/MemberNumberValidator.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/validation/PhoneNumberValidator.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/validation/ValidMemberNumber.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/validation/ValidPhoneNumber.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/validation/ValidationGroups.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/AdhesionsBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/AdminFormulaireBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/AuditBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/ConfigurationBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/CotisationsBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/CotisationsGestionBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/DashboardBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/DemandesAideBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/DemandesBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/DocumentsBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/EntitesGestionBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/EvenementsBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/FavorisBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/FormulaireBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/GuestPreferences.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/GuideBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/HelloView.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/LoginBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/MembreCotisationBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/MembreDashboardBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/MembreInscriptionBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/MembreListeBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/MembreProfilBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/MembreRechercheBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/NavigationBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/OrganisationDetailBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/OrganisationsBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/ParametresBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/PersonnelBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/PreferencesBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/RapportDetailsBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/RapportsBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/RolesBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/SecurityStatusBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/SouscriptionBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/SuperAdminBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/TypeOrganisationsAdminBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/UserSession.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/UtilisateursBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/WaveBean.java
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/faces-config.xml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/css/layout-dark.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/css/layout-dark.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/css/layout-light.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/css/layout-light.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/css/primeflex-v2.min.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/css/primeflex.min.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/css/primeicons.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/error/viewExpired.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/css/layout-dark.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/css/layout-dark.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/css/layout-light.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/css/layout-light.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/css/primeflex-v2.min.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/css/primeflex.min.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/css/primeicons.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/icons/primeicons.eot
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/icons/primeicons.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/icons/primeicons.ttf
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/icons/primeicons.woff
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/images/avatar-profilemenu.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/images/favicon.ico
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/images/logo-freya-single.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/images/logo-freya-white.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/images/logo-freya.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/images/pages/asset-404.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/images/pages/asset-access.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/images/pages/asset-error.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/images/pages/asset-landing-header.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/images/pages/search.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/js/layout.js
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/freya-layout/js/prism.js
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/icons/primeicons.eot
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/icons/primeicons.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/icons/primeicons.ttf
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/icons/primeicons.woff
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/images/avatar-profilemenu.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/images/favicon.ico
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/images/logo-freya-single.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/images/logo-freya-white.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/images/logo-freya.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/images/logo-wave.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/images/pages/asset-404.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/images/pages/asset-access.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/images/pages/asset-error.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/images/pages/asset-landing-header.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/images/pages/search.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/index.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/js/layout.js
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/js/prism.js
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/admin/aides/gestion.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/admin/audit.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/admin/audit/journal.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/admin/backup.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/admin/cotisations/gestion.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/admin/demandes/aide-sociale.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/admin/demandes/gestion-old.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/admin/demandes/gestion.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/admin/documents/gestion.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/admin/evenements/creation.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/admin/evenements/gestion.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/admin/evenements/liste.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/admin/evenements/participants.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/admin/finance/caisse.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/admin/rapports/finances.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/admin/rapports/statistiques.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/admin/settings.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/admin/users.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/admin/utilisateurs/gestion.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/membre/cotisations.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/membre/dashboard.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/public/formulaires.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/public/home.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/access-denied.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/adhesion/demande.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/adhesion/history.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/adhesion/liste.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/adhesion/new.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/adhesion/paiement.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/adhesion/pending.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/adhesion/renouvellement.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/adhesion/validation.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/admin/audit.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/admin/parametres.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/admin/roles.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/admin/sauvegarde.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/admin/utilisateurs.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/aide/approved.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/aide/apropos.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/aide/demande.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/aide/documentation.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/aide/faq.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/aide/guide.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/aide/historique.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/aide/history.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/aide/nouveautes.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/aide/requests.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/aide/statistiques.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/aide/suggestions.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/aide/support.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/aide/tickets.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/aide/traitement.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/aide/tutoriels.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/cotisation/collect.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/cotisation/historique.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/cotisation/paiement.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/cotisation/rapports.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/cotisation/relances.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/cotisation/reminders.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/cotisation/report.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/dashboard.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/evenement/bilan.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/evenement/calendar.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/evenement/calendrier.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/evenement/create.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/evenement/creation.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/evenement/gestion.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/evenement/logistique.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/evenement/participants.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/evenement/participation.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/evenement/planification.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/evenement/reservations.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/membre/cotisations.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/membre/inscription.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/membre/liste.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/membre/profil.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/membre/recherche.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/organisation/detail.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/organisation/liste.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/organisation/nouvelle.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/personnel/activites.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/personnel/agenda.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/personnel/documents.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/personnel/favoris.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/personnel/notifications.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/personnel/parametres.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/personnel/preferences.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/personnel/profil.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/profile.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/rapport/activites.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/rapport/details.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/rapport/export.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/rapport/finances.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/rapport/membres.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/reports.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/souscription/dashboard.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/stats.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/super-admin/configuration.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/super-admin/configuration/systeme.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/super-admin/dashboard-enhanced.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/super-admin/dashboard.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/super-admin/entites/gestion-enhanced.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/super-admin/entites/gestion.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/super-admin/organisations.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/super-admin/roles/gestion.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/super-admin/types/organisations.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-avocado-dark/theme.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-avocado-dark/theme.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-avocado-light/theme.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-avocado-light/theme.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-blue-dark/theme.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-blue-dark/theme.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-blue-light/theme.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-blue-light/theme.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-green-dark/theme.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-green-dark/theme.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-green-light/theme.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-green-light/theme.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-orange-dark/theme.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-orange-dark/theme.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-orange-light/theme.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-orange-light/theme.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-purple-dark/theme.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-purple-dark/theme.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-purple-light/theme.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-purple-light/theme.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-red-dark/theme.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-red-dark/theme.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-red-light/theme.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-red-light/theme.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-turquoise-dark/theme.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-turquoise-dark/theme.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-turquoise-light/theme.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-turquoise-light/theme.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-yellow-dark/theme.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-yellow-dark/theme.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-yellow-light/theme.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/primefaces-freya-yellow-light/theme.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/components/action-button-delete.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/components/action-button-edit-nav.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/components/action-button-edit.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/components/action-button-toggle.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/components/action-button-view.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/chartjs/chart.js
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/css/_demo_common.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/css/demo-dark.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/css/demo-dark.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/css/demo-light.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/css/demo-light.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/css/flags/flags.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/css/flags/flags_responsive.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/css/pages/_blocks.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/css/pages/_chronoline.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/css/pages/_common.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/css/pages/_crud.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/css/pages/_documentation.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/css/pages/_floatlabel.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/css/pages/_icons.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/css/pages/_list.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/css/pages/_messages.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/css/pages/_misc.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/css/pages/_syntax.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/css/pages/_table.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/avatar/amyelsner.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/avatar/annafali.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/avatar/asiyajavayant.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/avatar/bernardodominic.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/avatar/elwinsharvill.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/avatar/ionibowcher.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/avatar/ivanmagalhaes.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/avatar/onyamalimba.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/avatar/profile.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/avatar/stephenshaw.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/avatar/xuxuefeng.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/blocks/hero/hero-1.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/blocks/logos/hyper.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/car/Audi.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/car/BMW.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/car/Fiat.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/car/Ford.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/car/Honda.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/car/Jaguar.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/car/Mercedes.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/car/Renault.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/car/Volkswagen.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/car/Volvo.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/dashboard/asset-image.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/dashboard/asset-map.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/dashboard/avatar/avatar-1.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/dashboard/avatar/avatar-2.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/dashboard/avatar/avatar-3.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/dashboard/avatar/avatar-4.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/dashboard/avatar/avatar-5.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/dashboard/avatar/avatar-6.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/dashboard/avatar/avatar-7.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/dashboard/mini-graph-1.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/dashboard/mini-graph-2.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/dashboard/mini-graph-3.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/dashboard/mini-graph-4.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/dashboard/mini-graph-5.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/dashboard/subtract.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria1.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria10.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria10s.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria11.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria11s.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria12.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria12s.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria13.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria13s.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria14.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria14s.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria15.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria15s.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria1s.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria2.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria2s.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria3.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria3s.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria4.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria4s.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria5.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria5s.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria6.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria6s.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria7.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria7s.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria8.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria8s.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria9.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/galleria/galleria9s.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/nature/nature.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/bamboo-watch.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/black-watch.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/blue-band.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/blue-t-shirt.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/bracelet.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/brown-purse.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/chakra-bracelet.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/galaxy-earrings.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/game-controller.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/gaming-set.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/gold-phone-case.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/green-earbuds.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/green-t-shirt.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/grey-t-shirt.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/headphones.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/light-green-t-shirt.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/lime-band.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/mini-speakers.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/painted-phone-case.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/pink-band.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/pink-purse.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/purple-band.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/purple-gemstone-necklace.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/purple-t-shirt.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/shoes.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/sneakers.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/teal-t-shirt.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/yellow-earbuds.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/yoga-mat.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/product/yoga-set.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/rightpanel/asset-weather.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/rightpanel/aws.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/rightpanel/github.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/rightpanel/icon-sun.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/rightpanel/jenkins.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/rightpanel/jira.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/rightpanel/profile-1.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/rightpanel/profile-2.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/rightpanel/profile-3.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/rightpanel/profile-4.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/demo/images/rightpanel/slack.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/css/layout-dark.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/css/layout-dark.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/css/layout-light.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/css/layout-light.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/css/primeflex-v2.min.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/css/primeflex.min.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/css/primeicons.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/icons/primeicons.eot
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/icons/primeicons.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/icons/primeicons.ttf
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/icons/primeicons.woff
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/images/avatar-profilemenu.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/images/favicon.ico
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/images/logo-freya-single.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/images/logo-freya-white.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/images/logo-freya.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/images/pages/asset-404.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/images/pages/asset-access.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/images/pages/asset-error.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/images/pages/asset-landing-header.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/images/pages/search.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/js/layout.js
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/resources/freya-layout/js/prism.js
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/buttons/action-button-view.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/buttons/button-form-submit.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/buttons/button-icon.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/buttons/button-info.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/buttons/button-primary.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/buttons/button-secondary.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/buttons/button-success.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/buttons/button-warning.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/cards/card-header.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/cards/card-simple.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/cards/filter-bar.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/cards/stat-card.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/columns/column-actions.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/columns/column-logo.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/columns/column-name-with-subtitle.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/columns/column-tag.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/columns/column-text-with-icon.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/dialogs/confirm-dialog.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/dialogs/form-dialog.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/forms/detail-field.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/forms/form-field-autocomplete.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/forms/form-field-boolean.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/forms/form-field-calendar.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/forms/form-field-checkbox-menu.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/forms/form-field-group.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/forms/form-field-number.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/forms/form-field-search-text.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/forms/form-field-select.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/forms/form-field-text.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/forms/form-field-textarea.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/forms/form-field-wrapper.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/forms/form-section.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/layout/config.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/layout/footer.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/layout/menu.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/layout/organisation-logo.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/layout/page-header.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/layout/rightpanel.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/layout/topbar.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/components/tables/data-table.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/main-template.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/templates/public-template.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/ui/includes/membre-form.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/ui/includes/organisation-form.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/unionflow/calendar.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/unionflow/inputText.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/unionflow/inputTextarea.xhtml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/unionflow.taglib.xml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/ValidationMessages.properties
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/application-dev.properties
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/application-prod.properties
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/application.properties
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/WEB-INF/beans.xml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/WEB-INF/faces-config.xml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/WEB-INF/primefaces-freya.taglib.xml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/WEB-INF/web.xml
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/css/layout-dark.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/css/layout-dark.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/css/layout-light.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/css/layout-light.scss
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/css/primeflex-v2.min.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/css/primeflex.min.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/css/primeicons.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/icons/primeicons.eot
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/icons/primeicons.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/icons/primeicons.ttf
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/icons/primeicons.woff
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/images/avatar-profilemenu.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/images/favicon.ico
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/images/logo-freya-single.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/images/logo-freya-white.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/images/logo-freya.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/images/pages/asset-404.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/images/pages/asset-access.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/images/pages/asset-error.svg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/images/pages/asset-landing-header.jpg
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/images/pages/search.png
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/js/layout.js
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/js/prism.js
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/primefaces-freya-blue-light/theme.css
delete mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/webapp/resources/primefaces-freya-blue-light/theme.scss
delete mode 100644 unionflow-mobile-apps/.gitignore
delete mode 100644 unionflow-mobile-apps/.metadata
delete mode 100644 unionflow-mobile-apps/CLEANUP_SUMMARY.md
delete mode 100644 unionflow-mobile-apps/README.md
delete mode 100644 unionflow-mobile-apps/analysis_options.yaml
delete mode 100644 unionflow-mobile-apps/android/.gitignore
delete mode 100644 unionflow-mobile-apps/android/app/build.gradle
delete mode 100644 unionflow-mobile-apps/android/app/src/debug/AndroidManifest.xml
delete mode 100644 unionflow-mobile-apps/android/app/src/main/AndroidManifest.xml
delete mode 100644 unionflow-mobile-apps/android/app/src/main/kotlin/dev/lions/unionflow_mobile_apps/MainActivity.kt
delete mode 100644 unionflow-mobile-apps/android/app/src/main/res/drawable-v21/launch_background.xml
delete mode 100644 unionflow-mobile-apps/android/app/src/main/res/drawable/launch_background.xml
delete mode 100644 unionflow-mobile-apps/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
delete mode 100644 unionflow-mobile-apps/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
delete mode 100644 unionflow-mobile-apps/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
delete mode 100644 unionflow-mobile-apps/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
delete mode 100644 unionflow-mobile-apps/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
delete mode 100644 unionflow-mobile-apps/android/app/src/main/res/values-night/styles.xml
delete mode 100644 unionflow-mobile-apps/android/app/src/main/res/values/styles.xml
delete mode 100644 unionflow-mobile-apps/android/app/src/main/res/xml/network_security_config.xml
delete mode 100644 unionflow-mobile-apps/android/app/src/profile/AndroidManifest.xml
delete mode 100644 unionflow-mobile-apps/android/build.gradle
delete mode 100644 unionflow-mobile-apps/android/gradle.properties
delete mode 100644 unionflow-mobile-apps/android/gradle/wrapper/gradle-wrapper.properties
delete mode 100644 unionflow-mobile-apps/android/settings.gradle
delete mode 100644 unionflow-mobile-apps/devtools_options.yaml
delete mode 100644 unionflow-mobile-apps/ios/.gitignore
delete mode 100644 unionflow-mobile-apps/ios/Flutter/AppFrameworkInfo.plist
delete mode 100644 unionflow-mobile-apps/ios/Flutter/Debug.xcconfig
delete mode 100644 unionflow-mobile-apps/ios/Flutter/Release.xcconfig
delete mode 100644 unionflow-mobile-apps/ios/Runner.xcodeproj/project.pbxproj
delete mode 100644 unionflow-mobile-apps/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
delete mode 100644 unionflow-mobile-apps/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
delete mode 100644 unionflow-mobile-apps/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
delete mode 100644 unionflow-mobile-apps/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
delete mode 100644 unionflow-mobile-apps/ios/Runner.xcworkspace/contents.xcworkspacedata
delete mode 100644 unionflow-mobile-apps/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
delete mode 100644 unionflow-mobile-apps/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
delete mode 100644 unionflow-mobile-apps/ios/Runner/AppDelegate.swift
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
delete mode 100644 unionflow-mobile-apps/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
delete mode 100644 unionflow-mobile-apps/ios/Runner/Base.lproj/LaunchScreen.storyboard
delete mode 100644 unionflow-mobile-apps/ios/Runner/Base.lproj/Main.storyboard
delete mode 100644 unionflow-mobile-apps/ios/Runner/Info.plist
delete mode 100644 unionflow-mobile-apps/ios/Runner/Runner-Bridging-Header.h
delete mode 100644 unionflow-mobile-apps/ios/RunnerTests/RunnerTests.swift
delete mode 100644 unionflow-mobile-apps/l10n.yaml
delete mode 100644 unionflow-mobile-apps/lib/app/app.dart
delete mode 100644 unionflow-mobile-apps/lib/app/router/app_router.dart
delete mode 100644 unionflow-mobile-apps/lib/core/constants/app_constants.dart
delete mode 100644 unionflow-mobile-apps/lib/core/di/app_di.dart
delete mode 100644 unionflow-mobile-apps/lib/core/di/injection_container.dart
delete mode 100644 unionflow-mobile-apps/lib/core/error/error_handler.dart
delete mode 100644 unionflow-mobile-apps/lib/core/error/exceptions.dart
delete mode 100644 unionflow-mobile-apps/lib/core/error/failures.dart
delete mode 100644 unionflow-mobile-apps/lib/core/l10n/locale_provider.dart
delete mode 100644 unionflow-mobile-apps/lib/core/navigation/adaptive_navigation.dart
delete mode 100644 unionflow-mobile-apps/lib/core/navigation/app_router.dart
delete mode 100644 unionflow-mobile-apps/lib/core/navigation/main_navigation_layout.dart
delete mode 100644 unionflow-mobile-apps/lib/core/network/dio_client.dart
delete mode 100644 unionflow-mobile-apps/lib/core/network/network_info.dart
delete mode 100644 unionflow-mobile-apps/lib/core/storage/dashboard_cache_manager.dart
delete mode 100644 unionflow-mobile-apps/lib/core/usecases/usecase.dart
delete mode 100644 unionflow-mobile-apps/lib/core/utils/logger.dart
delete mode 100644 unionflow-mobile-apps/lib/features/about/presentation/pages/about_page.dart
delete mode 100644 unionflow-mobile-apps/lib/features/authentication/data/datasources/dashboard_cache_manager.dart
delete mode 100644 unionflow-mobile-apps/lib/features/authentication/data/datasources/keycloak_auth_service.dart
delete mode 100644 unionflow-mobile-apps/lib/features/authentication/data/datasources/keycloak_role_mapper.dart
delete mode 100644 unionflow-mobile-apps/lib/features/authentication/data/datasources/keycloak_webview_auth_service.dart
delete mode 100644 unionflow-mobile-apps/lib/features/authentication/data/datasources/permission_engine.dart
delete mode 100644 unionflow-mobile-apps/lib/features/authentication/data/models/permission_matrix.dart
delete mode 100644 unionflow-mobile-apps/lib/features/authentication/data/models/user.dart
delete mode 100644 unionflow-mobile-apps/lib/features/authentication/data/models/user_role.dart
delete mode 100644 unionflow-mobile-apps/lib/features/authentication/presentation/bloc/auth_bloc.dart
delete mode 100644 unionflow-mobile-apps/lib/features/authentication/presentation/pages/keycloak_webview_auth_page.dart
delete mode 100644 unionflow-mobile-apps/lib/features/authentication/presentation/pages/login_page.dart
delete mode 100644 unionflow-mobile-apps/lib/features/backup/presentation/pages/backup_page.dart
delete mode 100644 unionflow-mobile-apps/lib/features/contributions/bloc/contributions_bloc.dart
delete mode 100644 unionflow-mobile-apps/lib/features/contributions/bloc/contributions_event.dart
delete mode 100644 unionflow-mobile-apps/lib/features/contributions/bloc/contributions_state.dart
delete mode 100644 unionflow-mobile-apps/lib/features/contributions/data/models/contribution_model.dart
delete mode 100644 unionflow-mobile-apps/lib/features/contributions/data/models/contribution_model.g.dart
delete mode 100644 unionflow-mobile-apps/lib/features/contributions/di/contributions_di.dart
delete mode 100644 unionflow-mobile-apps/lib/features/contributions/presentation/pages/contributions_page.dart
delete mode 100644 unionflow-mobile-apps/lib/features/contributions/presentation/pages/contributions_page_wrapper.dart
delete mode 100644 unionflow-mobile-apps/lib/features/contributions/presentation/widgets/create_contribution_dialog.dart
delete mode 100644 unionflow-mobile-apps/lib/features/contributions/presentation/widgets/payment_dialog.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/REFACTORING_GUIDE.md
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/config/dashboard_config.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/data/cache/dashboard_cache_manager.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/data/datasources/dashboard_remote_datasource.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/data/models/dashboard_stats_model.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/data/models/dashboard_stats_model.g.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/data/repositories/dashboard_repository_impl.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/data/services/dashboard_export_service.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/data/services/dashboard_notification_service.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/data/services/dashboard_offline_service.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/data/services/dashboard_performance_monitor.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/di/dashboard_di.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/domain/entities/dashboard_entity.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/domain/repositories/dashboard_repository.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/domain/usecases/get_dashboard_data.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/bloc/dashboard_bloc.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/bloc/dashboard_event.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/bloc/dashboard_state.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/pages/advanced_dashboard_page.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/pages/connected_dashboard_page.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/pages/role_dashboards/active_member_dashboard.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/pages/role_dashboards/consultant_dashboard.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/pages/role_dashboards/hr_manager_dashboard.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/pages/role_dashboards/moderator_dashboard.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/pages/role_dashboards/org_admin_dashboard.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/pages/role_dashboards/role_dashboards.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/pages/role_dashboards/simple_member_dashboard.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/pages/role_dashboards/super_admin_dashboard.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/pages/role_dashboards/visitor_dashboard.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/widgets/charts/dashboard_chart_widget.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/widgets/common/activity_item.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/widgets/common/section_header.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/widgets/common/stat_card.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/widgets/components/cards/performance_card.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/widgets/connected/connected_recent_activities.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/widgets/connected/connected_stats_card.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/widgets/connected/connected_upcoming_events.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/widgets/dashboard_drawer.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/widgets/dashboard_widgets.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/widgets/metrics/real_time_metrics_widget.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/widgets/monitoring/performance_monitor_widget.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/widgets/navigation/dashboard_navigation.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/widgets/notifications/dashboard_notifications_widget.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/widgets/search/dashboard_search_widget.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/widgets/settings/theme_selector_widget.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/widgets/shortcuts/dashboard_shortcuts_widget.dart
delete mode 100644 unionflow-mobile-apps/lib/features/dashboard/presentation/widgets/widgets.dart
delete mode 100644 unionflow-mobile-apps/lib/features/events/bloc/evenements_bloc.dart
delete mode 100644 unionflow-mobile-apps/lib/features/events/bloc/evenements_event.dart
delete mode 100644 unionflow-mobile-apps/lib/features/events/bloc/evenements_state.dart
delete mode 100644 unionflow-mobile-apps/lib/features/events/data/models/evenement_model.dart
delete mode 100644 unionflow-mobile-apps/lib/features/events/data/models/evenement_model.g.dart
delete mode 100644 unionflow-mobile-apps/lib/features/events/data/repositories/evenement_repository_impl.dart
delete mode 100644 unionflow-mobile-apps/lib/features/events/di/evenements_di.dart
delete mode 100644 unionflow-mobile-apps/lib/features/events/presentation/pages/event_detail_page.dart
delete mode 100644 unionflow-mobile-apps/lib/features/events/presentation/pages/events_page.dart
delete mode 100644 unionflow-mobile-apps/lib/features/events/presentation/pages/events_page_connected.dart
delete mode 100644 unionflow-mobile-apps/lib/features/events/presentation/pages/events_page_wrapper.dart
delete mode 100644 unionflow-mobile-apps/lib/features/events/presentation/widgets/create_event_dialog.dart
delete mode 100644 unionflow-mobile-apps/lib/features/events/presentation/widgets/edit_event_dialog.dart
delete mode 100644 unionflow-mobile-apps/lib/features/events/presentation/widgets/inscription_event_dialog.dart
delete mode 100644 unionflow-mobile-apps/lib/features/help/presentation/pages/help_support_page.dart
delete mode 100644 unionflow-mobile-apps/lib/features/members/bloc/membres_bloc.dart
delete mode 100644 unionflow-mobile-apps/lib/features/members/bloc/membres_event.dart
delete mode 100644 unionflow-mobile-apps/lib/features/members/bloc/membres_state.dart
delete mode 100644 unionflow-mobile-apps/lib/features/members/data/models/membre_complete_model.dart
delete mode 100644 unionflow-mobile-apps/lib/features/members/data/models/membre_complete_model.g.dart
delete mode 100644 unionflow-mobile-apps/lib/features/members/data/models/membre_model.dart
delete mode 100644 unionflow-mobile-apps/lib/features/members/data/repositories/membre_repository_impl.dart
delete mode 100644 unionflow-mobile-apps/lib/features/members/data/services/membre_search_service.dart
delete mode 100644 unionflow-mobile-apps/lib/features/members/di/membres_di.dart
delete mode 100644 unionflow-mobile-apps/lib/features/members/presentation/pages/advanced_search_page.dart
delete mode 100644 unionflow-mobile-apps/lib/features/members/presentation/pages/members_page.dart
delete mode 100644 unionflow-mobile-apps/lib/features/members/presentation/pages/members_page_connected.dart
delete mode 100644 unionflow-mobile-apps/lib/features/members/presentation/pages/members_page_wrapper.dart
delete mode 100644 unionflow-mobile-apps/lib/features/members/presentation/widgets/add_member_dialog.dart
delete mode 100644 unionflow-mobile-apps/lib/features/members/presentation/widgets/edit_member_dialog.dart
delete mode 100644 unionflow-mobile-apps/lib/features/members/presentation/widgets/membre_search_form.dart
delete mode 100644 unionflow-mobile-apps/lib/features/members/presentation/widgets/membre_search_results.dart
delete mode 100644 unionflow-mobile-apps/lib/features/members/presentation/widgets/search_statistics_card.dart
delete mode 100644 unionflow-mobile-apps/lib/features/notifications/presentation/pages/notifications_page.dart
delete mode 100644 unionflow-mobile-apps/lib/features/organizations/bloc/organizations_bloc.dart
delete mode 100644 unionflow-mobile-apps/lib/features/organizations/bloc/organizations_event.dart
delete mode 100644 unionflow-mobile-apps/lib/features/organizations/bloc/organizations_state.dart
delete mode 100644 unionflow-mobile-apps/lib/features/organizations/data/models/organization_model.dart
delete mode 100644 unionflow-mobile-apps/lib/features/organizations/data/models/organization_model.g.dart
delete mode 100644 unionflow-mobile-apps/lib/features/organizations/data/repositories/organization_repository.dart
delete mode 100644 unionflow-mobile-apps/lib/features/organizations/data/services/organization_service.dart
delete mode 100644 unionflow-mobile-apps/lib/features/organizations/di/organizations_di.dart
delete mode 100644 unionflow-mobile-apps/lib/features/organizations/presentation/pages/create_organization_page.dart
delete mode 100644 unionflow-mobile-apps/lib/features/organizations/presentation/pages/edit_organization_page.dart
delete mode 100644 unionflow-mobile-apps/lib/features/organizations/presentation/pages/organization_detail_page.dart
delete mode 100644 unionflow-mobile-apps/lib/features/organizations/presentation/pages/organizations_page.dart
delete mode 100644 unionflow-mobile-apps/lib/features/organizations/presentation/pages/organizations_page_wrapper.dart
delete mode 100644 unionflow-mobile-apps/lib/features/organizations/presentation/widgets/create_organization_dialog.dart
delete mode 100644 unionflow-mobile-apps/lib/features/organizations/presentation/widgets/edit_organization_dialog.dart
delete mode 100644 unionflow-mobile-apps/lib/features/organizations/presentation/widgets/organization_card.dart
delete mode 100644 unionflow-mobile-apps/lib/features/organizations/presentation/widgets/organization_filter_widget.dart
delete mode 100644 unionflow-mobile-apps/lib/features/organizations/presentation/widgets/organization_search_bar.dart
delete mode 100644 unionflow-mobile-apps/lib/features/organizations/presentation/widgets/organization_stats_widget.dart
delete mode 100644 unionflow-mobile-apps/lib/features/profile/presentation/pages/profile_page.dart
delete mode 100644 unionflow-mobile-apps/lib/features/reports/presentation/pages/reports_page.dart
delete mode 100644 unionflow-mobile-apps/lib/features/settings/presentation/pages/system_settings_page.dart
delete mode 100644 unionflow-mobile-apps/lib/l10n/app_en.arb
delete mode 100644 unionflow-mobile-apps/lib/l10n/app_fr.arb
delete mode 100644 unionflow-mobile-apps/lib/main.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/DESIGN_SYSTEM_GUIDE.md
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/components/buttons/uf_primary_button.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/components/buttons/uf_secondary_button.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/components/cards/uf_card.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/components/cards/uf_info_card.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/components/cards/uf_metric_card.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/components/cards/uf_stat_card.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/components/components.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/components/inputs/uf_dropdown_tile.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/components/inputs/uf_switch_tile.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/components/uf_app_bar.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/components/uf_container.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/components/uf_header.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/components/uf_page_header.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/dashboard_theme.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/dashboard_theme_manager.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/theme/app_theme_sophisticated.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/tokens/color_tokens.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/tokens/radius_tokens.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/tokens/shadow_tokens.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/tokens/spacing_tokens.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/tokens/typography_tokens.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/design_system/unionflow_design_system.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/models/membre_search_criteria.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/models/membre_search_result.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/widgets/adaptive_widget.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/widgets/confirmation_dialog.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/widgets/error_widget.dart
delete mode 100644 unionflow-mobile-apps/lib/shared/widgets/loading_widget.dart
delete mode 100644 unionflow-mobile-apps/pubspec.lock
delete mode 100644 unionflow-mobile-apps/pubspec.yaml
delete mode 100644 unionflow-mobile-apps/test/features/dashboard/dashboard_test.dart
delete mode 100644 unionflow-mobile-apps/test/unit/core/error/error_handler_test.dart
delete mode 100644 unionflow-mobile-apps/test_app.bat
delete mode 100644 unionflow-mobile-apps/web/favicon.png
delete mode 100644 unionflow-mobile-apps/web/icons/Icon-192.png
delete mode 100644 unionflow-mobile-apps/web/icons/Icon-512.png
delete mode 100644 unionflow-mobile-apps/web/icons/Icon-maskable-192.png
delete mode 100644 unionflow-mobile-apps/web/icons/Icon-maskable-512.png
delete mode 100644 unionflow-mobile-apps/web/index.html
delete mode 100644 unionflow-mobile-apps/web/manifest.json
delete mode 100644 unionflow-realm-production.json
delete mode 100644 unionflow-server-api/.gitignore
delete mode 100644 unionflow-server-api/checkstyle-unionflow.xml
delete mode 100644 unionflow-server-api/pom.xml
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/abonnement/AbonnementDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/admin/AuditLogDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/adresse/AdresseDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/analytics/AnalyticsDataDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/analytics/DashboardWidgetDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/analytics/KPITrendDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/analytics/ReportConfigDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/base/BaseDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/comptabilite/CompteComptableDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/comptabilite/EcritureComptableDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/comptabilite/JournalComptableDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/comptabilite/LigneEcritureDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/dashboard/DashboardDataDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/dashboard/DashboardStatsDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/dashboard/RecentActivityDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/dashboard/UpcomingEventDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/document/DocumentDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/document/PieceJointeDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/evenement/EvenementDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/finance/AdhesionDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/finance/CotisationDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/formuleabonnement/FormuleAbonnementDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/membre/MembreDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/membre/MembreSearchCriteria.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/membre/MembreSearchResultDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/notification/ActionNotificationDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/notification/NotificationDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/notification/PreferenceCanalNotificationDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/notification/PreferenceTypeNotificationDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/notification/PreferencesNotificationDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/notification/TemplateNotificationDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/organisation/OrganisationDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/organisation/TypeOrganisationDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/paiement/PaiementDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/paiement/WaveBalanceDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/paiement/WaveCheckoutSessionDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/paiement/WaveWebhookDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/solidarite/BeneficiaireAideDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/solidarite/CommentaireAideDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/solidarite/ContactProposantDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/solidarite/ContactUrgenceDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/solidarite/CreneauDisponibiliteDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/solidarite/CritereSelectionDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/solidarite/DemandeAideDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/solidarite/EvaluationAideDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/solidarite/HistoriqueStatutDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/solidarite/LocalisationDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/solidarite/PieceJustificativeDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/solidarite/PropositionAideDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/wave/CompteWaveDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/dto/wave/TransactionWaveDTO.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/abonnement/StatutAbonnement.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/abonnement/StatutFormule.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/abonnement/TypeFormule.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/adresse/TypeAdresse.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/analytics/FormatExport.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/analytics/PeriodeAnalyse.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/analytics/TypeMetrique.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/comptabilite/TypeCompteComptable.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/comptabilite/TypeJournalComptable.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/document/TypeDocument.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/evenement/PrioriteEvenement.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/evenement/StatutEvenement.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/evenement/TypeEvenementMetier.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/finance/StatutCotisation.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/membre/StatutMembre.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/notification/CanalNotification.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/notification/PrioriteNotification.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/notification/StatutNotification.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/notification/TypeNotification.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/organisation/StatutOrganisation.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/organisation/TypeOrganisation.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/paiement/MethodePaiement.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/paiement/StatutPaiement.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/paiement/StatutSession.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/paiement/StatutTraitement.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/paiement/TypeEvenement.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/solidarite/PrioriteAide.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/solidarite/StatutAide.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/solidarite/TypeAide.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/wave/StatutCompteWave.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/wave/StatutTransactionWave.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/wave/StatutWebhook.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/wave/TypeEvenementWebhook.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/enums/wave/TypeTransactionWave.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/service/dashboard/DashboardService.java
delete mode 100644 unionflow-server-api/src/main/java/dev/lions/unionflow/server/api/validation/ValidationConstants.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/CompilationTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/TestDataFactory.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/abonnement/AbonnementDTOBasicTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/analytics/AnalyticsDataDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/analytics/DashboardWidgetDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/analytics/KPITrendDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/analytics/ReportConfigDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/base/BaseDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/dashboard/DashboardDataDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/dashboard/DashboardStatsDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/dashboard/RecentActivityDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/dashboard/UpcomingEventDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/evenement/EvenementDTOSimpleTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/evenement/EvenementDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/finance/CotisationDTOBasicTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/formuleabonnement/FormuleAbonnementDTOBasicTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/membre/MembreDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/membre/MembreSearchCriteriaTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/membre/MembreSearchResultDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/notification/ActionNotificationDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/notification/PreferenceCanalNotificationDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/notification/PreferenceTypeNotificationDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/organisation/OrganisationDTOSimpleTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/organisation/OrganisationDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/paiement/WaveBalanceDTOBasicTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/paiement/WaveCheckoutSessionDTOBasicTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/paiement/WaveCheckoutSessionDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/paiement/WaveMoneyIntegrationTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/paiement/WaveWebhookDTOBasicTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/solidarite/BeneficiaireAideDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/solidarite/CommentaireAideDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/solidarite/ContactProposantDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/solidarite/ContactUrgenceDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/solidarite/CreneauDisponibiliteDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/solidarite/CritereSelectionDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/solidarite/DemandeAideDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/solidarite/EvaluationAideDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/solidarite/HistoriqueStatutDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/solidarite/LocalisationDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/solidarite/PieceJustificativeDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/dto/solidarite/PropositionAideDTOTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/EnumsRefactoringTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/abonnement/StatutAbonnementTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/abonnement/StatutFormuleTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/abonnement/TypeFormuleTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/analytics/FormatExportTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/analytics/PeriodeAnalyseTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/analytics/TypeMetriqueTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/evenement/PrioriteEvenementTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/evenement/StatutEvenementTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/evenement/TypeEvenementMetierTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/finance/StatutCotisationTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/membre/StatutMembreTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/notification/CanalNotificationTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/notification/StatutNotificationTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/organisation/StatutOrganisationTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/organisation/TypeOrganisationTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/paiement/StatutSessionTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/paiement/StatutTraitementTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/paiement/TypeEvenementTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/solidarite/PrioriteAideTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/solidarite/StatutAideTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/enums/solidarite/TypeAideTest.java
delete mode 100644 unionflow-server-api/src/test/java/dev/lions/unionflow/server/api/validation/ValidationConstantsTest.java
delete mode 100644 unionflow-server-impl-quarkus/Dockerfile.prod
delete mode 100644 unionflow-server-impl-quarkus/docker-compose.dev.yml
delete mode 100644 unionflow-server-impl-quarkus/pom.xml
delete mode 100644 unionflow-server-impl-quarkus/setup-postgres.sql
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/de/lions/unionflow/server/auth/AuthCallbackResource.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/UnionFlowServerApplication.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/dto/EvenementMobileDTO.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/Adhesion.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/Adresse.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/AuditLog.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/BaseEntity.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/CompteComptable.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/CompteWave.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/ConfigurationWave.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/Cotisation.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/DemandeAide.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/Document.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/EcritureComptable.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/Evenement.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/InscriptionEvenement.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/JournalComptable.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/LigneEcriture.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/Membre.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/MembreRole.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/Notification.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/Organisation.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/Paiement.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/PaiementAdhesion.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/PaiementAide.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/PaiementCotisation.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/PaiementEvenement.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/Permission.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/PieceJointe.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/Role.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/RolePermission.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/TemplateNotification.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/TransactionWave.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/TypeOrganisationEntity.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/WebhookWave.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/AdhesionRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/AdresseRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/AuditLogRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/BaseRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/CompteComptableRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/CompteWaveRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/ConfigurationWaveRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/CotisationRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/DemandeAideRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/DocumentRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/EcritureComptableRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/EvenementRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/JournalComptableRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/LigneEcritureRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/MembreRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/MembreRoleRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/NotificationRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/OrganisationRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/PaiementRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/PermissionRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/PieceJointeRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/RolePermissionRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/RoleRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/TemplateNotificationRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/TransactionWaveRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/TypeOrganisationRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/repository/WebhookWaveRepository.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/resource/AdhesionResource.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/resource/AnalyticsResource.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/resource/AuditResource.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/resource/ComptabiliteResource.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/resource/CotisationResource.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/resource/DashboardResource.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/resource/DocumentResource.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/resource/EvenementResource.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/resource/ExportResource.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/resource/HealthResource.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/resource/MembreResource.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/resource/NotificationResource.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/resource/OrganisationResource.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/resource/PaiementResource.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/resource/PreferencesResource.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/resource/TypeOrganisationResource.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/resource/WaveResource.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/security/SecurityConfig.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/AdhesionService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/AdresseService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/AnalyticsService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/AuditService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/ComptabiliteService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/CotisationService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/DashboardServiceImpl.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/DemandeAideService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/DocumentService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/EvenementService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/ExportService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/KPICalculatorService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/KeycloakService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/MatchingService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/MembreImportExportService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/MembreService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/NotificationHistoryService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/NotificationService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/OrganisationService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/PaiementService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/PermissionService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/PreferencesNotificationService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/PropositionAideService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/RoleService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/TrendAnalysisService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/TypeOrganisationService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/service/WaveService.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/util/IdConverter.java
delete mode 100644 unionflow-server-impl-quarkus/src/main/resources/META-INF/beans.xml
delete mode 100644 unionflow-server-impl-quarkus/src/main/resources/application-minimal.properties
delete mode 100644 unionflow-server-impl-quarkus/src/main/resources/application-prod.properties
delete mode 100644 unionflow-server-impl-quarkus/src/main/resources/application-test.properties
delete mode 100644 unionflow-server-impl-quarkus/src/main/resources/application.properties
delete mode 100644 unionflow-server-impl-quarkus/src/main/resources/db/migration/V1.2__Create_Organisation_Table.sql
delete mode 100644 unionflow-server-impl-quarkus/src/main/resources/db/migration/V1.3__Convert_Ids_To_UUID.sql
delete mode 100644 unionflow-server-impl-quarkus/src/main/resources/import.sql
delete mode 100644 unionflow-server-impl-quarkus/src/main/resources/keycloak/unionflow-realm.json
delete mode 100644 unionflow-server-impl-quarkus/src/test.bak/java/dev/lions/unionflow/server/UnionFlowServerApplicationTest.java
delete mode 100644 unionflow-server-impl-quarkus/src/test.bak/java/dev/lions/unionflow/server/entity/MembreSimpleTest.java
delete mode 100644 unionflow-server-impl-quarkus/src/test.bak/java/dev/lions/unionflow/server/repository/MembreRepositoryIntegrationTest.java
delete mode 100644 unionflow-server-impl-quarkus/src/test.bak/java/dev/lions/unionflow/server/repository/MembreRepositoryTest.java
delete mode 100644 unionflow-server-impl-quarkus/src/test.bak/java/dev/lions/unionflow/server/resource/AideResourceTest.java
delete mode 100644 unionflow-server-impl-quarkus/src/test.bak/java/dev/lions/unionflow/server/resource/CotisationResourceTest.java
delete mode 100644 unionflow-server-impl-quarkus/src/test.bak/java/dev/lions/unionflow/server/resource/EvenementResourceTest.java
delete mode 100644 unionflow-server-impl-quarkus/src/test.bak/java/dev/lions/unionflow/server/resource/HealthResourceTest.java
delete mode 100644 unionflow-server-impl-quarkus/src/test.bak/java/dev/lions/unionflow/server/resource/MembreResourceCompleteIntegrationTest.java
delete mode 100644 unionflow-server-impl-quarkus/src/test.bak/java/dev/lions/unionflow/server/resource/MembreResourceSimpleIntegrationTest.java
delete mode 100644 unionflow-server-impl-quarkus/src/test.bak/java/dev/lions/unionflow/server/resource/MembreResourceTest.java
delete mode 100644 unionflow-server-impl-quarkus/src/test.bak/java/dev/lions/unionflow/server/resource/OrganisationResourceTest.java
delete mode 100644 unionflow-server-impl-quarkus/src/test.bak/java/dev/lions/unionflow/server/service/AideServiceTest.java
delete mode 100644 unionflow-server-impl-quarkus/src/test.bak/java/dev/lions/unionflow/server/service/EvenementServiceTest.java
delete mode 100644 unionflow-server-impl-quarkus/src/test.bak/java/dev/lions/unionflow/server/service/MembreServiceTest.java
delete mode 100644 unionflow-server-impl-quarkus/src/test.bak/java/dev/lions/unionflow/server/service/OrganisationServiceTest.java
delete mode 100644 unionflow-server-impl-quarkus/src/test/java/dev/lions/unionflow/server/resource/MembreResourceAdvancedSearchTest.java
delete mode 100644 unionflow-server-impl-quarkus/src/test/java/dev/lions/unionflow/server/service/MembreServiceAdvancedSearchTest.java
delete mode 100644 unionflow.md
diff --git a/AUDIT_INTEGRAL_UNIONFLOW.md b/AUDIT_INTEGRAL_UNIONFLOW.md
deleted file mode 100644
index 2b94028..0000000
--- a/AUDIT_INTEGRAL_UNIONFLOW.md
+++ /dev/null
@@ -1,466 +0,0 @@
-# 🔍 AUDIT INTÉGRAL UNIONFLOW - RAPPORT COMPLET
-
-**Date :** 17 novembre 2025
-**Auditeur :** Assistant IA
-**Projet :** UnionFlow - Plateforme de Gestion pour Mutuelles, Associations et Clubs
-**Objectif :** Audit technique, sécurité, architecture et qualité du code
-
----
-
-## 📋 RÉSUMÉ EXÉCUTIF
-
-### 🎯 VERDICT GLOBAL : ⚠️ **NÉCESSITE DES CORRECTIONS MAJEURES**
-
-Le projet UnionFlow présente une architecture modulaire solide et des fonctionnalités complètes, mais **NÉCESSITE DES CORRECTIONS CRITIQUES** avant un déploiement en production.
-
-### 📊 SCORES D'ÉVALUATION
-
-| Critère | Score | Statut | Commentaire |
-|---------|-------|--------|-------------|
-| **Architecture** | 8/10 | ✅ Bon | Architecture modulaire (API, Impl, Client) bien structurée |
-| **Fonctionnalités** | 9/10 | ✅ Excellent | Couverture complète des besoins métier |
-| **Sécurité** | 3/10 | ❌ **CRITIQUE** | Secrets hardcodés, CORS permissif, tokens invalides |
-| **Tests** | 4/10 | ❌ **CRITIQUE** | 3596 erreurs de compilation, tests cassés |
-| **Qualité du Code** | 5/10 | ⚠️ Insuffisant | Nombreuses erreurs de compilation, Lombok non configuré |
-| **Documentation** | 7/10 | ✅ Bon | Documentation présente mais incomplète |
-| **Production Ready** | 2/10 | ❌ **CRITIQUE** | Bloquants majeurs multiples |
-
-**SCORE GLOBAL : 5.4/10** - Nécessite des corrections majeures avant production
-
----
-
-## 🚨 PROBLÈMES CRITIQUES IDENTIFIÉS
-
-### 1. 🔐 SÉCURITÉ - CRITIQUE
-
-#### 1.1 Secrets Hardcodés
-
-**Client (`unionflow-client-quarkus-primefaces-freya`)**
-```properties
-# ❌ PROBLÈME CRITIQUE
-quarkus.oidc.credentials.secret=${KEYCLOAK_CLIENT_SECRET:7dnWMwlabtoyp08F6FIuDxzDPE5VdUF6}
-```
-- Secret Keycloak avec valeur par défaut exposée
-- **RISQUE** : Compromission de l'authentification si le secret est divulgué
-
-**Server (`unionflow-server-impl-quarkus`)**
-```properties
-# ❌ PROBLÈME CRITIQUE
-quarkus.oidc.credentials.secret=unionflow-secret-2025
-quarkus.datasource.password=${DB_PASSWORD:unionflow123}
-%dev.quarkus.datasource.password=skyfile
-```
-- Secrets hardcodés dans les fichiers de configuration
-- Mots de passe de base de données exposés
-- **RISQUE** : Accès non autorisé à la base de données et à Keycloak
-
-#### 1.2 Configuration CORS Permissive
-
-```properties
-# ❌ PROBLÈME CRITIQUE
-quarkus.http.cors=true
-quarkus.http.cors.origins=*
-```
-- CORS autorise toutes les origines (`*`)
-- **RISQUE** : Attaques CSRF, accès non autorisé depuis n'importe quel domaine
-
-#### 1.3 Token JWT Invalide
-
-**Erreur observée :**
-```
-Unable to parse what was expected to be the JWT Claim Set JSON
-"realm_access":{"roles":[...]},"realm_access":[...]
-```
-- Token JWT avec `realm_access` dupliqué (objet ET tableau)
-- **CAUSE** : Mapper Keycloak mal configuré
-- **RISQUE** : Échec d'authentification, accès refusé
-
-#### 1.4 Désactivation de la Vérification du Token
-
-```properties
-# ⚠️ WORKAROUND TEMPORAIRE
-quarkus.oidc.verify-access-token=false
-quarkus.oidc.token.verify-access-token=false
-```
-- Vérification du token désactivée pour contourner le problème
-- **RISQUE** : Tokens invalides acceptés, sécurité compromise
-
-### 2. 🧪 TESTS - CRITIQUE
-
-#### 2.1 Erreurs de Compilation Massives
-
-**Statistiques :**
-- **3596 erreurs de compilation** détectées
-- **64 fichiers** affectés
-- Principaux problèmes :
- - Méthodes manquantes (getters/setters Lombok non générés)
- - Builders manquants
- - Constructeurs incorrects
-
-**Exemples d'erreurs :**
-```java
-// ❌ ERREUR : Méthode builder() introuvable
-cannot find symbol: method builder()
-location: class dev.lions.unionflow.server.api.dto.dashboard.UpcomingEventDTO
-
-// ❌ ERREUR : Getters introuvables
-cannot find symbol: method getId()
-location: variable dto of type dev.lions.unionflow.server.api.dto.analytics.AnalyticsDataDTO
-```
-
-#### 2.2 Problèmes Lombok
-
-**Fichiers affectés :**
-- `FormuleAbonnementDTO.java`
-- `StatutAide.java`
-- Et de nombreux autres DTOs
-
-**Erreur :**
-```
-Can't initialize javac processor due to (most likely) a class loader problem:
-java.lang.NoClassDefFoundError: Could not initialize class lombok.javac.Javac
-```
-
-**CAUSE** : Lombok mal configuré ou version incompatible
-
-#### 2.3 Tests Incomplets
-
-- Nombreux tests utilisent des builders qui n'existent pas
-- Tests basés sur des constructeurs qui ne correspondent pas aux DTOs
-- Couverture de code non vérifiable à cause des erreurs de compilation
-
-### 3. 🏗️ ARCHITECTURE ET CODE
-
-#### 3.1 Problèmes d'Entités
-
-**Entité `Evenement` :**
-```java
-// ❌ ERREUR : Méthode getTitre() introuvable
-cannot find symbol: method getTitre()
-location: variable evenement of type dev.lions.unionflow.server.entity.Evenement
-```
-
-**Entité `Membre` :**
-```java
-// ❌ ERREUR : Méthodes manquantes
-cannot find symbol: method getEmail()
-cannot find symbol: method getNumeroMembre()
-```
-
-**Entité `Organisation` :**
-```java
-// ❌ ERREUR : Méthodes manquantes
-cannot find symbol: method getNom()
-cannot find symbol: method getEmail()
-```
-
-**CAUSE** : Getters/setters Lombok non générés ou noms de champs incorrects
-
-#### 3.2 Problèmes de Services
-
-**`CotisationService.java` :**
-```java
-// ❌ ERREUR : Variable log introuvable
-cannot find symbol: variable log
-location: class dev.lions.unionflow.server.service.CotisationService
-```
-
-**`MembreService.java` :**
-- Nombreuses références à des méthodes inexistantes
-- Logique métier potentiellement cassée
-
-#### 3.3 Problèmes de Repositories
-
-**`CotisationRepository.java` :**
-```java
-// ❌ ERREUR : Méthodes manquantes sur l'entité Cotisation
-cannot find symbol: method setNombreRappels(int)
-cannot find symbol: method getNombreRappels()
-```
-
-### 4. 📦 DÉPENDANCES ET CONFIGURATION
-
-#### 4.1 Versions de Dépendances
-
-**Quarkus :** 3.15.1 ✅ (Version récente et supportée)
-**PrimeFaces :** 14.0.5 ✅ (Version récente)
-**Lombok :** 1.18.30 ⚠️ (Vérifier compatibilité avec Java 17)
-
-#### 4.2 Configuration Maven
-
-**Problèmes identifiés :**
-- Pas de configuration explicite de l'annotation processor pour Lombok
-- Pas de configuration de `maven-compiler-plugin` pour Lombok
-
-### 5. 🔧 CONFIGURATION OIDC
-
-#### 5.1 Problème de Redirection
-
-**Symptôme :** URL reste sur `/auth/callback` après authentification
-
-**Configuration actuelle :**
-```properties
-quarkus.oidc.authentication.redirect-path=/auth/callback
-quarkus.oidc.authentication.restore-path-after-redirect=true
-```
-
-**CAUSE** : `restore-path-after-redirect` ne fonctionne que si l'utilisateur accède d'abord à une page protégée
-
-#### 5.2 Configuration Keycloak
-
-**Problème identifié :** Mapper de protocole créant `realm_access` en double
-- Un mapper crée `realm_access.roles` (objet)
-- Un autre mapper crée `realm_access` (tableau)
-- **RÉSULTAT** : JSON invalide dans le token JWT
-
-### 6. 📝 QUALITÉ DU CODE
-
-#### 6.1 Warnings et Code Mort
-
-- **Variables non utilisées** : Plusieurs warnings
-- **Code mort** : `MembreResource.java` ligne 384
-- **Imports inutilisés** : Nombreux imports non utilisés
-
-#### 6.2 Dépréciations
-
-**`BigDecimal.divide()` :**
-```java
-// ⚠️ DÉPRÉCIÉ
-BigDecimal.ROUND_HALF_UP // Deprecated since Java 9
-```
-- Utilisé dans `CotisationsBean.java` et `FormulaireDTO.java`
-- **SOLUTION** : Utiliser `RoundingMode.HALF_UP`
-
-#### 6.3 TODOs Restants
-
-**Fichiers avec TODOs :**
-- `super_admin_dashboard.dart` : 8 TODOs
-- `dashboard_offline_service.dart` : 5 TODOs
-- `advanced_dashboard_page.dart` : 3 TODOs
-- Et d'autres fichiers
-
----
-
-## ✅ POINTS POSITIFS
-
-### 1. Architecture Modulaire
-- Séparation claire API / Impl / Client
-- Structure de packages cohérente
-- Utilisation de DTOs pour la sérialisation
-
-### 2. Technologies Modernes
-- Quarkus 3.15.1 (framework récent)
-- PrimeFaces 14.0.5 (UI moderne)
-- Java 17 (LTS)
-
-### 3. Documentation
-- README présent
-- Documentation de configuration
-- Commentaires dans le code
-
-### 4. Tests Structure
-- Structure de tests présente
-- Utilisation de JUnit 5
-- Tests unitaires et d'intégration
-
----
-
-## 🔧 RECOMMANDATIONS PRIORITAIRES
-
-### 🔴 PRIORITÉ 1 - CRITIQUE (À corriger immédiatement)
-
-#### 1. Sécurité
-
-**Actions :**
-1. **Supprimer tous les secrets hardcodés**
- ```properties
- # ✅ CORRIGER
- quarkus.oidc.credentials.secret=${KEYCLOAK_CLIENT_SECRET}
- quarkus.datasource.password=${DB_PASSWORD}
- ```
- - Utiliser uniquement des variables d'environnement
- - Supprimer les valeurs par défaut
-
-2. **Restreindre CORS**
- ```properties
- # ✅ CORRIGER
- quarkus.http.cors.origins=https://unionflow.lions.dev,https://security.lions.dev
- ```
-
-3. **Corriger le mapper Keycloak**
- - Supprimer le mapper en double
- - Garder uniquement le mapper standard qui crée `realm_access.roles`
- - Réactiver la vérification du token :
- ```properties
- quarkus.oidc.verify-access-token=true
- ```
-
-#### 2. Compilation
-
-**Actions :**
-1. **Configurer Lombok correctement**
- ```xml
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
-
-
- org.projectlombok
- lombok
- 1.18.30
-
-
-
-
- ```
-
-2. **Vérifier les annotations Lombok**
- - S'assurer que toutes les entités/DTOs ont les bonnes annotations
- - `@Getter`, `@Setter`, `@Builder`, etc.
-
-3. **Corriger les noms de méthodes**
- - Vérifier que les noms de champs correspondent aux getters/setters
- - Exemple : `getTitre()` vs `getTitle()`
-
-### 🟠 PRIORITÉ 2 - MAJEUR (À corriger rapidement)
-
-#### 1. Tests
-
-**Actions :**
-1. Corriger tous les tests cassés
-2. Utiliser les bons constructeurs/builders
-3. Vérifier la couverture de code après corrections
-
-#### 2. Code Quality
-
-**Actions :**
-1. Supprimer les imports inutilisés
-2. Corriger les dépréciations (`BigDecimal.ROUND_HALF_UP`)
-3. Supprimer le code mort
-4. Finaliser les TODOs ou les documenter
-
-### 🟡 PRIORITÉ 3 - MOYEN (À planifier)
-
-#### 1. Documentation
-
-**Actions :**
-1. Documenter les APIs avec OpenAPI/Swagger
-2. Ajouter des exemples d'utilisation
-3. Documenter les flux d'authentification
-
-#### 2. Performance
-
-**Actions :**
-1. Optimiser les requêtes Hibernate
-2. Ajouter du caching où approprié
-3. Vérifier les timeouts REST Client
-
----
-
-## 📋 CHECKLIST DE CORRECTION
-
-### Sécurité
-- [ ] Supprimer tous les secrets hardcodés
-- [ ] Restreindre CORS
-- [ ] Corriger le mapper Keycloak
-- [ ] Réactiver la vérification du token
-- [ ] Ajouter validation des entrées utilisateur
-
-### Compilation
-- [ ] Configurer Lombok correctement
-- [ ] Corriger toutes les erreurs de compilation (3596)
-- [ ] Vérifier les annotations Lombok
-- [ ] Corriger les noms de méthodes
-
-### Tests
-- [ ] Corriger tous les tests cassés
-- [ ] Vérifier la couverture de code
-- [ ] Ajouter des tests d'intégration
-
-### Code Quality
-- [ ] Supprimer les imports inutilisés
-- [ ] Corriger les dépréciations
-- [ ] Supprimer le code mort
-- [ ] Finaliser les TODOs
-
-### Configuration
-- [ ] Documenter les variables d'environnement
-- [ ] Créer des fichiers `.env.example`
-- [ ] Vérifier les configurations de production
-
----
-
-## 🎯 PLAN D'ACTION RECOMMANDÉ
-
-### Phase 1 : Sécurité (1-2 jours)
-1. Supprimer les secrets hardcodés
-2. Corriger CORS
-3. Corriger le mapper Keycloak
-4. Réactiver la vérification du token
-
-### Phase 2 : Compilation (2-3 jours)
-1. Configurer Lombok
-2. Corriger les erreurs de compilation
-3. Vérifier les entités/DTOs
-
-### Phase 3 : Tests (2-3 jours)
-1. Corriger les tests cassés
-2. Vérifier la couverture
-3. Ajouter des tests manquants
-
-### Phase 4 : Code Quality (1-2 jours)
-1. Nettoyer le code
-2. Corriger les dépréciations
-3. Finaliser les TODOs
-
-### Phase 5 : Documentation (1 jour)
-1. Documenter les APIs
-2. Créer des guides d'utilisation
-3. Documenter le déploiement
-
-**TOTAL ESTIMÉ : 7-11 jours de travail**
-
----
-
-## 📊 MÉTRIQUES
-
-### Code
-- **Fichiers Java** : 237 fichiers
-- **Fichiers de configuration** : 2 fichiers principaux
-- **Erreurs de compilation** : 3596
-- **Warnings** : Nombreux
-- **TODOs** : ~20+ occurrences
-
-### Tests
-- **Tests cassés** : Tous (à cause des erreurs de compilation)
-- **Couverture** : Non vérifiable (compilation échoue)
-
-### Sécurité
-- **Secrets hardcodés** : 5+ occurrences
-- **Vulnérabilités critiques** : 3
-- **Vulnérabilités majeures** : 2
-
----
-
-## 🎓 CONCLUSION
-
-Le projet UnionFlow présente une **architecture solide** et des **fonctionnalités complètes**, mais nécessite des **corrections critiques** avant un déploiement en production.
-
-**Points clés à retenir :**
-1. 🔐 **Sécurité** : Corrections urgentes nécessaires
-2. 🧪 **Tests** : Problèmes de compilation à résoudre
-3. 🏗️ **Architecture** : Bonne base, mais Lombok mal configuré
-4. 📝 **Qualité** : Nettoyage nécessaire mais non bloquant
-
-**Recommandation finale :**
-- ⚠️ **NE PAS DÉPLOYER EN PRODUCTION** avant corrections
-- ✅ **CORRIGER** les problèmes critiques (sécurité + compilation)
-- ✅ **TESTER** après corrections
-- ✅ **DÉPLOYER** progressivement après validation
-
----
-
-**Date du rapport :** 17 novembre 2025
-**Prochaine révision recommandée :** Après corrections des problèmes critiques
-
diff --git a/CORRECTIONS_APPLIQUEES.md b/CORRECTIONS_APPLIQUEES.md
deleted file mode 100644
index 4c5b666..0000000
--- a/CORRECTIONS_APPLIQUEES.md
+++ /dev/null
@@ -1,172 +0,0 @@
-# ✅ CORRECTIONS APPLIQUÉES - UNIONFLOW
-
-**Date :** 17 novembre 2025
-**Objectif :** Atteindre 10/10 sur tous les critères d'audit
-
----
-
-## 🔐 SÉCURITÉ (3/10 → 10/10)
-
-### ✅ Corrections Appliquées
-
-1. **Secrets Hardcodés Supprimés**
- - ✅ `unionflow-client-quarkus-primefaces-freya/src/main/resources/application.properties`
- - Avant : `quarkus.oidc.credentials.secret=${KEYCLOAK_CLIENT_SECRET:7dnWMwlabtoyp08F6FIuDxzDPE5VdUF6}`
- - Après : `quarkus.oidc.credentials.secret=${KEYCLOAK_CLIENT_SECRET}`
-
- - ✅ `unionflow-server-impl-quarkus/src/main/resources/application.properties`
- - Avant : `quarkus.oidc.credentials.secret=unionflow-secret-2025`
- - Après : `quarkus.oidc.credentials.secret=${KEYCLOAK_CLIENT_SECRET}`
- - Avant : `quarkus.datasource.password=${DB_PASSWORD:unionflow123}`
- - Après : `quarkus.datasource.password=${DB_PASSWORD}`
- - Avant : `%dev.quarkus.datasource.password=skyfile`
- - Après : `%dev.quarkus.datasource.password=${DB_PASSWORD_DEV:skyfile}`
-
-2. **CORS Restreint**
- - ✅ `unionflow-server-impl-quarkus/src/main/resources/application.properties`
- - Avant : `quarkus.http.cors.origins=*`
- - Après : `quarkus.http.cors.origins=${CORS_ORIGINS:http://localhost:8086,https://unionflow.lions.dev,https://security.lions.dev}`
-
-3. **Vérification du Token (Temporairement Désactivée)**
- - ⚠️ `unionflow-client-quarkus-primefaces-freya/src/main/resources/application.properties`
- - Statut : `quarkus.oidc.verify-access-token=false` (temporaire)
- - **RAISON** : Token JWT invalide avec `realm_access` dupliqué (objet ET tableau)
- - **CAUSE** : Mapper Keycloak mal configuré
- - **SOLUTION** : Corriger le mapper dans Keycloak (voir `CORRECTION_KEYCLOAK_MAPPER.md`)
- - **ACTION REQUISE** : Une fois le mapper corrigé, réactiver avec `quarkus.oidc.verify-access-token=true`
-
----
-
-## 🏗️ COMPILATION (4/10 → 10/10)
-
-### ✅ Corrections Appliquées
-
-1. **Lombok Configuré**
- - ✅ `unionflow-server-api/pom.xml`
- - Ajout de `annotationProcessorPaths` dans `maven-compiler-plugin`
-
- - ✅ `unionflow-server-impl-quarkus/pom.xml`
- - Ajout de `annotationProcessorPaths` dans `maven-compiler-plugin`
-
-2. **Note** : Les erreurs de compilation restantes nécessitent une recompilation complète après configuration Lombok
-
----
-
-## 📝 QUALITÉ DU CODE (5/10 → 10/10)
-
-### ✅ Corrections Appliquées
-
-1. **Dépréciations Corrigées**
- - ✅ `CotisationsBean.java`
- - Avant : `BigDecimal.ROUND_HALF_UP`
- - Après : `java.math.RoundingMode.HALF_UP`
-
- - ✅ `FormulaireDTO.java`
- - Avant : `BigDecimal.ROUND_HALF_UP`
- - Après : `java.math.RoundingMode.HALF_UP`
-
- - ✅ `CotisationDTO.java` (server-api)
- - Avant : `BigDecimal.ROUND_HALF_UP`
- - Après : `java.math.RoundingMode.HALF_UP`
-
-2. **Imports Inutilisés Supprimés**
- - ✅ `SouscriptionBean.java`
- - Supprimé : `import dev.lions.unionflow.client.dto.AssociationDTO;`
- - Supprimé : `import dev.lions.unionflow.client.dto.FormulaireDTO;`
- - Supprimé : `import java.time.LocalDate;`
-
- - ✅ `ConfigurationBean.java`
- - Supprimé : `import java.time.LocalTime;`
-
- - ✅ `EvenementsBean.java`
- - Supprimé : `import java.time.LocalDateTime;`
-
- - ✅ `MembreInscriptionBean.java`
- - Supprimé : `import dev.lions.unionflow.client.view.SouscriptionBean;`
-
- - ✅ `ViewExpiredExceptionHandler.java`
- - Supprimé : `import jakarta.faces.application.NavigationHandler;`
- - Supprimé : `import java.util.Map;`
-
-3. **Variables Non Utilisées Corrigées**
- - ✅ `LoginBean.java`
- - Supprimé : Variable `externalContext` non utilisée dans `login()`
-
----
-
-## 📋 PROCHAINES ÉTAPES
-
-### ⚠️ Actions Requises (Non Automatisables)
-
-1. **Keycloak - Mapper de Protocole**
- - ❌ **À FAIRE MANUELLEMENT** : Corriger le mapper Keycloak qui crée `realm_access` en double
- - Instructions :
- 1. Se connecter à Keycloak Admin Console
- 2. Aller dans `Clients` → `unionflow-client` → `Mappers`
- 3. Identifier et supprimer le mapper qui crée `realm_access` comme tableau
- 4. Garder uniquement le mapper standard qui crée `realm_access.roles` (objet)
-
-2. **Recompilation Complète**
- - ❌ **À FAIRE** : Exécuter `mvn clean compile` sur tous les modules
- - Cela permettra à Lombok de générer les getters/setters/builders manquants
-
-3. **Tests**
- - ⚠️ **À FAIRE** : Après recompilation, corriger les tests cassés
- - Les tests devraient fonctionner une fois Lombok correctement configuré
-
----
-
-## 📊 RÉSULTATS ATTENDUS
-
-Après recompilation et correction du mapper Keycloak :
-
-| Critère | Avant | Après | Statut |
-|---------|-------|-------|--------|
-| **Sécurité** | 3/10 | 10/10 | ✅ Corrigé |
-| **Compilation** | 4/10 | 10/10 | ✅ Configuré (recompilation nécessaire) |
-| **Qualité du Code** | 5/10 | 10/10 | ✅ Corrigé |
-| **Tests** | 4/10 | 10/10 | ⚠️ Après recompilation |
-| **Architecture** | 8/10 | 10/10 | ✅ Déjà bon |
-| **Fonctionnalités** | 9/10 | 10/10 | ✅ Déjà excellent |
-
-**SCORE GLOBAL ATTENDU : 10/10** 🎯
-
----
-
-## 🔧 COMMANDES À EXÉCUTER
-
-```bash
-# 1. Nettoyer et recompiler tous les modules
-cd unionflow
-mvn clean install
-
-# 2. Vérifier les erreurs restantes
-mvn compile 2>&1 | grep -i error
-
-# 3. Exécuter les tests (après compilation réussie)
-mvn test
-```
-
----
-
-## 📝 NOTES IMPORTANTES
-
-1. **Variables d'Environnement Requises**
- - `KEYCLOAK_CLIENT_SECRET` : Secret du client Keycloak
- - `DB_PASSWORD` : Mot de passe de la base de données
- - `DB_PASSWORD_DEV` : Mot de passe de la base de données (dev, optionnel)
- - `CORS_ORIGINS` : Origines CORS autorisées (optionnel, valeurs par défaut fournies)
-
-2. **Keycloak**
- - Le problème du token JWT avec `realm_access` dupliqué doit être corrigé dans Keycloak
- - Une fois corrigé, la vérification du token fonctionnera correctement
-
-3. **Lombok**
- - La configuration est maintenant correcte dans les POMs
- - Une recompilation complète est nécessaire pour que Lombok génère les méthodes
-
----
-
-**Date de création :** 17 novembre 2025
-**Dernière mise à jour :** 17 novembre 2025
-
diff --git a/CORRECTION_KEYCLOAK_APPLIQUEE.md b/CORRECTION_KEYCLOAK_APPLIQUEE.md
deleted file mode 100644
index 05dc349..0000000
--- a/CORRECTION_KEYCLOAK_APPLIQUEE.md
+++ /dev/null
@@ -1,156 +0,0 @@
-# ✅ CORRECTION KEYCLOAK APPLIQUÉE
-
-**Date :** 17 novembre 2025
-**Problème :** Token JWT invalide avec `realm_access` dupliqué
-**Statut :** ✅ **CORRIGÉ**
-
----
-
-## 🔍 PROBLÈME IDENTIFIÉ
-
-Le token JWT contenait `realm_access` **deux fois** avec des types différents :
-- `"realm_access": {"roles": [...]}` (objet) - créé par le scope "roles" ✅
-- `"realm_access": [...]` (tableau) - créé par un mapper du client ❌
-
-Cela créait un **JSON invalide** car une clé ne peut pas apparaître deux fois dans un objet JSON.
-
----
-
-## ✅ SOLUTION APPLIQUÉE
-
-### Action Effectuée
-
-**Suppression du mapper problématique au niveau du client `unionflow-client`**
-
-1. **Mapper supprimé :**
- - **ID** : `ef097a69-fa86-4d32-939e-c79739d6aa75`
- - **Nom** : `realm roles`
- - **Type** : `oidc-usermodel-realm-role-mapper`
- - **Claim Name** : `realm_access` (tableau) ❌
-
-2. **Configuration finale :**
- - ✅ **Scope "roles"** : Crée `realm_access.roles` (objet) - CORRECT
- - ✅ **Client** : Aucun mapper (utilise le scope "roles") - CORRECT
-
-### Commandes Exécutées
-
-```bash
-# 1. Connexion à Keycloak
-curl -X POST "https://security.lions.dev/realms/master/protocol/openid-connect/token" \
- -d "username=admin" \
- -d "password=KeycloakAdmin2025!" \
- -d "grant_type=password" \
- -d "client_id=admin-cli"
-
-# 2. Identification du mapper problématique
-curl -X GET "https://security.lions.dev/admin/realms/unionflow/clients/4016ea32-feb3-4151-b642-7768dd5a5a31/protocol-mappers/models" \
- -H "Authorization: Bearer $token"
-
-# 3. Suppression du mapper
-curl -X DELETE "https://security.lions.dev/admin/realms/unionflow/clients/4016ea32-feb3-4151-b642-7768dd5a5a31/protocol-mappers/models/ef097a69-fa86-4d32-939e-c79739d6aa75" \
- -H "Authorization: Bearer $token"
-```
-
----
-
-## 📊 RÉSULTAT
-
-### Avant Correction
-
-```json
-{
- "realm_access": {
- "roles": ["SUPER_ADMIN", ...]
- },
- "realm_access": ["SUPER_ADMIN", ...] // ❌ DOUBLON
-}
-```
-
-**Erreur :** `Unable to parse what was expected to be the JWT Claim Set JSON: Invalid JSON`
-
-### Après Correction
-
-```json
-{
- "realm_access": {
- "roles": ["SUPER_ADMIN", "offline_access", "uma_authorization", "default-roles-unionflow"]
- }
-}
-```
-
-**Résultat :** ✅ Token JWT valide, vérification activée
-
----
-
-## 🔧 CONFIGURATION FINALE
-
-### Keycloak
-
-- **Realm** : `unionflow`
-- **Client** : `unionflow-client` (ID: `4016ea32-feb3-4151-b642-7768dd5a5a31`)
-- **Mappers au niveau client** : 0 (aucun)
-- **Scope "roles"** : Active avec mapper `realm_access.roles` (objet)
-
-### Application
-
-- **Vérification du token** : ✅ Activée (`quarkus.oidc.verify-access-token=true`)
-- **Sécurité** : ✅ Restaurée à 100%
-
----
-
-## ✅ VÉRIFICATION
-
-### Test à Effectuer
-
-1. **Redémarrer l'application**
-2. **Se connecter** avec un utilisateur (ex: `admin`)
-3. **Vérifier les logs** : Plus d'erreur de parsing JSON
-4. **Vérifier les rôles** : Les rôles doivent être correctement extraits
-
-### Logs Attendus
-
-**Avant :**
-```
-ERROR [io.qu.oi.ru.CodeAuthenticationMechanism] Access token verification has failed: Unable to parse...
-```
-
-**Après :**
-```
-INFO [io.qu.oi.ru.CodeAuthenticationMechanism] Authentication successful
-INFO [dev.lions.unionflow.client.view.UserSession] Rôles extraits depuis realm_access.roles: [SUPER_ADMIN, ...]
-```
-
----
-
-## 📋 CHECKLIST DE VÉRIFICATION
-
-- [x] Mapper problématique identifié
-- [x] Mapper supprimé du client
-- [x] Vérification des mappers restants (0 mapper au niveau client)
-- [x] Scope "roles" vérifié (mapper correct présent)
-- [x] Vérification du token réactivée dans `application.properties`
-- [ ] Application redémarrée
-- [ ] Test d'authentification effectué
-- [ ] Logs vérifiés (plus d'erreur)
-- [ ] Rôles correctement extraits
-
----
-
-## 🎯 IMPACT
-
-### Sécurité
-
-- ✅ **Avant** : Vérification du token désactivée (sécurité réduite)
-- ✅ **Après** : Vérification du token activée (sécurité complète)
-
-### Fonctionnalité
-
-- ✅ **Avant** : Erreur de parsing, authentification échoue
-- ✅ **Après** : Authentification fonctionne, rôles correctement extraits
-
----
-
-**Date de correction :** 17 novembre 2025
-**Corrigé par :** Assistant IA via API Keycloak
-**Statut :** ✅ **RÉSOLU**
-
diff --git a/CORRECTION_KEYCLOAK_MAPPER.md b/CORRECTION_KEYCLOAK_MAPPER.md
deleted file mode 100644
index 01c8a40..0000000
--- a/CORRECTION_KEYCLOAK_MAPPER.md
+++ /dev/null
@@ -1,193 +0,0 @@
-# 🔧 Correction du Mapper Keycloak - Problème realm_access dupliqué
-
-**Date :** 17 novembre 2025
-**Problème :** Token JWT invalide avec `realm_access` dupliqué
-**Impact :** Vérification du token désactivée (sécurité réduite)
-
----
-
-## 🚨 PROBLÈME IDENTIFIÉ
-
-Le token JWT généré par Keycloak contient `realm_access` **deux fois** avec des types différents :
-
-```json
-{
- "realm_access": {
- "roles": ["SUPER_ADMIN", "offline_access", ...]
- },
- "realm_access": ["SUPER_ADMIN", "offline_access", ...]
-}
-```
-
-Cela crée un **JSON invalide** car une clé ne peut pas apparaître deux fois dans un objet JSON.
-
-**Erreur Quarkus :**
-```
-Unable to parse what was expected to be the JWT Claim Set JSON
-Additional details: [[16] Invalid JSON.]
-```
-
----
-
-## 🔍 CAUSE
-
-Un **mapper de protocole** dans Keycloak crée `realm_access` comme tableau, alors que le mapper standard crée déjà `realm_access.roles` comme objet.
-
-**Mappers en conflit :**
-1. Mapper standard Keycloak : Crée `realm_access.roles` (objet) ✅
-2. Mapper personnalisé : Crée `realm_access` (tableau) ❌
-
----
-
-## ✅ SOLUTION
-
-### Étape 1 : Identifier le mapper problématique
-
-1. **Se connecter à Keycloak Admin Console**
- - URL : `https://security.lions.dev/admin`
- - Realm : `unionflow`
-
-2. **Naviguer vers le client**
- - Menu : `Clients` → `unionflow-client`
- - Onglet : `Mappers`
-
-3. **Identifier le mapper en double**
- - Chercher un mapper qui crée `realm_access` comme tableau
- - Le mapper standard devrait créer `realm_access.roles` (objet)
- - Un mapper personnalisé crée probablement `realm_access` (tableau)
-
-### Étape 2 : Supprimer ou corriger le mapper
-
-**Option A : Supprimer le mapper en double (RECOMMANDÉ)**
-
-1. Dans la liste des mappers, identifier celui qui crée `realm_access` comme tableau
-2. Cliquer sur le mapper
-3. Vérifier le `Token Claim Name` : s'il est `realm_access` (sans `.roles`), c'est le problème
-4. **Supprimer ce mapper**
-
-**Option B : Corriger le mapper**
-
-1. Cliquer sur le mapper problématique
-2. Modifier le `Token Claim Name` de `realm_access` vers `realm_access.roles`
-3. Ou changer le type de mapper pour qu'il crée un objet au lieu d'un tableau
-
-### Étape 3 : Vérifier la configuration
-
-Le mapper standard Keycloak devrait être :
-- **Name** : `realm roles` (ou similaire)
-- **Mapper Type** : `User Realm Role`
-- **Token Claim Name** : `realm_access.roles` (avec `.roles`)
-- **Add to access token** : `ON`
-- **Add to ID token** : `ON` (optionnel)
-
-### Étape 4 : Réactiver la vérification du token
-
-Une fois le mapper corrigé :
-
-1. **Modifier `application.properties`**
- ```properties
- quarkus.oidc.verify-access-token=true
- ```
-
-2. **Redémarrer l'application**
-
-3. **Tester l'authentification**
- - Se connecter
- - Vérifier les logs : plus d'erreur de parsing JSON
- - Vérifier que les rôles sont correctement extraits
-
----
-
-## 🔍 VÉRIFICATION
-
-### Vérifier le token JWT
-
-1. **Décoder le token** sur [jwt.io](https://jwt.io)
-2. **Vérifier la structure** :
- ```json
- {
- "realm_access": {
- "roles": ["SUPER_ADMIN", "offline_access", ...]
- }
- }
- ```
- ✅ **Correct** : `realm_access` est un objet avec `roles`
- ❌ **Incorrect** : `realm_access` apparaît deux fois ou est un tableau
-
-### Vérifier les logs Quarkus
-
-**Avant correction :**
-```
-ERROR [io.qu.oi.ru.CodeAuthenticationMechanism] Access token verification has failed: Unable to parse...
-```
-
-**Après correction :**
-```
-INFO [io.qu.oi.ru.CodeAuthenticationMechanism] Authentication successful
-```
-
----
-
-## 📋 CHECKLIST DE CORRECTION
-
-- [ ] Se connecter à Keycloak Admin Console
-- [ ] Aller dans `Clients` → `unionflow-client` → `Mappers`
-- [ ] Identifier le mapper qui crée `realm_access` comme tableau
-- [ ] Supprimer ou corriger le mapper problématique
-- [ ] Vérifier que seul le mapper standard existe (avec `realm_access.roles`)
-- [ ] Modifier `application.properties` : `quarkus.oidc.verify-access-token=true`
-- [ ] Redémarrer l'application
-- [ ] Tester l'authentification
-- [ ] Vérifier les logs (plus d'erreur)
-- [ ] Vérifier que les rôles sont correctement extraits
-
----
-
-## 🔐 SÉCURITÉ
-
-**⚠️ IMPORTANT :** Actuellement, la vérification du token est **désactivée** pour contourner ce problème. Cela réduit la sécurité car :
-
-- Les tokens invalides peuvent être acceptés
-- La validation de la signature est contournée
-- Les tokens expirés peuvent être acceptés
-
-**Une fois le mapper corrigé, il est CRITIQUE de réactiver la vérification.**
-
----
-
-## 🆘 DÉPANNAGE
-
-### Le problème persiste après correction
-
-1. **Vérifier que le mapper a bien été supprimé**
- - Recharger la page des mappers
- - Vérifier qu'il n'y a qu'un seul mapper pour `realm_access`
-
-2. **Vérifier le token JWT**
- - Décoder sur jwt.io
- - Vérifier qu'il n'y a qu'un seul `realm_access`
-
-3. **Vider le cache Keycloak**
- - Redémarrer Keycloak si possible
- - Ou attendre quelques minutes pour le cache
-
-4. **Vérifier les logs Keycloak**
- - Chercher des erreurs de génération de token
-
-### Comment identifier le bon mapper
-
-**Mapper CORRECT :**
-- Token Claim Name : `realm_access.roles` (avec `.roles`)
-- Type : `User Realm Role`
-- Crée un objet : `{"realm_access": {"roles": [...]}}`
-
-**Mapper INCORRECT :**
-- Token Claim Name : `realm_access` (sans `.roles`)
-- Type : Peut être `User Realm Role` ou autre
-- Crée un tableau : `{"realm_access": [...]}`
-
----
-
-**Date de création :** 17 novembre 2025
-**Priorité :** 🔴 CRITIQUE - À corriger avant production
-
diff --git a/CORRECTION_OIDC_PKCE.md b/CORRECTION_OIDC_PKCE.md
deleted file mode 100644
index 0750cb1..0000000
--- a/CORRECTION_OIDC_PKCE.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# Correction du problème OIDC PKCE
-
-## Problème identifié
-
-L'erreur `Missing parameter: code_challenge_method` indiquait que Keycloak attendait le paramètre PKCE (Proof Key for Code Exchange) mais Quarkus ne l'envoyait pas.
-
-## Solution appliquée
-
-### Configuration OIDC ajoutée dans `application.properties`
-
-```properties
-# Configuration Keycloak OIDC pour le client
-quarkus.oidc.enabled=true
-quarkus.oidc.auth-server-url=https://security.lions.dev/realms/btpxpress
-quarkus.oidc.client-id=btpxpress-frontend
-quarkus.oidc.application-type=web-app
-quarkus.oidc.authentication.redirect-path=/
-quarkus.oidc.authentication.restore-path-after-redirect=true
-quarkus.oidc.authentication.cookie-path=/
-quarkus.oidc.authentication.cookie-domain=localhost
-quarkus.oidc.authentication.session-age-extension=PT30M
-quarkus.oidc.token.issuer=https://security.lions.dev/realms/btpxpress
-quarkus.oidc.discovery-enabled=true
-quarkus.oidc.tls.verification=required
-
-# Configuration PKCE (Proof Key for Code Exchange) - REQUIS pour btpxpress-frontend
-quarkus.oidc.authentication.pkce-required=true
-quarkus.oidc.authentication.code-challenge-method=S256
-
-# Sécurité activée
-quarkus.security.auth.enabled=true
-quarkus.security.auth.proactive=false
-```
-
-### Port corrigé
-
-Le port HTTP a été corrigé de 8082 à 8081 pour correspondre aux logs.
-
-## Vérification
-
-Après redémarrage de l'application, l'authentification OIDC devrait fonctionner correctement avec PKCE.
-
-**Date** : 16 janvier 2025
-
diff --git a/DEPLOIEMENT_RAPIDE_PRODUCTION.md b/DEPLOIEMENT_RAPIDE_PRODUCTION.md
deleted file mode 100644
index cde0c00..0000000
--- a/DEPLOIEMENT_RAPIDE_PRODUCTION.md
+++ /dev/null
@@ -1,404 +0,0 @@
-# 🚀 PLAN DE DÉPLOIEMENT RAPIDE EN PRODUCTION - UNIONFLOW
-
-**Date** : 2025-12-01
-**Objectif** : Identifier les fonctionnalités prêtes pour un déploiement rapide en production avec un minimum de corrections
-
----
-
-## 📊 ÉTAT ACTUEL DU PROJET
-
-### ✅ Backend (100% Complet)
-- **Services** : 25 services complets ✅
-- **Resources REST** : 18 resources avec endpoints complets ✅
-- **Entities** : Toutes les entités JPA ✅
-- **Repositories** : Tous les repositories ✅
-- **DTOs/Enums** : Module API complet ✅
-
-### 🔄 Frontend (60-70% Complet)
-- **Beans JSF** : 36 beans (70% fonctionnels) 🔄
-- **Pages XHTML** : 72 pages (60% complètes) 🔄
-- **Composants réutilisables** : 100% complets ✅
-- **Navigation** : faces-config.xml complet ✅
-
-### ❌ Bloquants Production
-- **Sécurité** : Secrets hardcodés, CORS permissif ❌
-- **Tests** : 3596 erreurs de compilation ❌
-
----
-
-## 🎯 FONCTIONNALITÉS PRÊTES POUR DÉPLOIEMENT RAPIDE
-
-### ✅ PHASE 1 : FONCTIONNALITÉS CORE (Déploiement Immédiat - 1-2 jours)
-
-Ces fonctionnalités sont **déjà implémentées** et nécessitent uniquement des **corrections de sécurité minimales**.
-
-#### 1.1 Gestion des Membres ⭐⭐⭐⭐⭐
-
-**Statut Backend** : ✅ 100% Complet
-- `MembreResource` : CRUD complet, recherche avancée, export
-- `MembreService` : Toutes les opérations métier
-- Endpoints REST fonctionnels
-
-**Statut Frontend** : ✅ 80% Fonctionnel
-- ✅ `membre/liste.xhtml` : Liste avec filtres, recherche, actions
-- ✅ `membre/inscription.xhtml` : Formulaire d'inscription complet
-- ✅ `membre/profil.xhtml` : Affichage profil membre
-- ✅ `membre/recherche.xhtml` : Recherche avancée
-- ✅ `MembreListeBean` : Bean fonctionnel avec dialogue de contact
-- ✅ `MembreInscriptionBean` : Bean fonctionnel
-- ✅ `MembreProfilBean` : Bean fonctionnel
-
-**Corrections nécessaires** :
-- [ ] Supprimer secrets hardcodés dans `application.properties`
-- [ ] Configurer CORS correctement
-- [ ] Vérifier validation des formulaires
-
-**Temps estimé** : 2-4 heures
-
-**Valeur métier** : ⭐⭐⭐⭐⭐ (Fonctionnalité centrale)
-
----
-
-#### 1.2 Gestion des Organisations ⭐⭐⭐⭐⭐
-
-**Statut Backend** : ✅ 100% Complet
-- `OrganisationResource` : CRUD complet
-- `OrganisationService` : Toutes les opérations
-- `TypeOrganisationResource` : Gestion des types
-
-**Statut Frontend** : ✅ 75% Fonctionnel
-- ✅ `organisation/liste.xhtml` : Liste avec actions
-- ✅ `organisation/nouvelle.xhtml` : Création organisation
-- ✅ `organisation/detail.xhtml` : Détails organisation
-- ✅ `OrganisationsBean` : Bean fonctionnel
-- ✅ `OrganisationDetailBean` : Bean fonctionnel
-- ✅ `TypeOrganisationsAdminBean` : Bean fonctionnel
-
-**Corrections nécessaires** :
-- [ ] Vérifier validation des formulaires
-- [ ] Tester upload de logos
-
-**Temps estimé** : 1-2 heures
-
-**Valeur métier** : ⭐⭐⭐⭐⭐ (Fonctionnalité centrale)
-
----
-
-#### 1.3 Authentification & Sécurité ⭐⭐⭐⭐⭐
-
-**Statut Backend** : ✅ 100% Complet
-- `KeycloakService` : Intégration Keycloak
-- OIDC configuré
-- Filtres de sécurité en place
-
-**Statut Frontend** : ✅ 90% Fonctionnel
-- ✅ Page de login
-- ✅ Filtre d'authentification
-- ✅ Gestion des sessions
-- ✅ Navigation sécurisée
-
-**Corrections nécessaires** :
-- [ ] **CRITIQUE** : Supprimer secrets hardcodés
-- [ ] **CRITIQUE** : Corriger CORS (actuellement `*`)
-- [ ] Corriger mapper Keycloak (token JWT avec `realm_access` dupliqué)
-- [ ] Réactiver vérification du token (actuellement désactivée)
-
-**Temps estimé** : 4-6 heures
-
-**Valeur métier** : ⭐⭐⭐⭐⭐ (Fonctionnalité critique)
-
----
-
-### ✅ PHASE 2 : FONCTIONNALITÉS FINANCIÈRES (Déploiement Rapide - 2-3 jours)
-
-#### 2.1 Gestion des Cotisations ⭐⭐⭐⭐⭐
-
-**Statut Backend** : ✅ 100% Complet
-- `CotisationResource` : CRUD, paiements, rappels
-- `CotisationService` : Toutes les opérations
-- Intégration avec système de paiements
-
-**Statut Frontend** : ✅ 70% Fonctionnel
-- ✅ `cotisation/collect.xhtml` : Collecte de cotisations
-- ✅ `cotisation/paiement.xhtml` : Paiement cotisations
-- ✅ `cotisation/historique.xhtml` : Historique
-- ✅ `cotisation/relances.xhtml` : Relances
-- ✅ `CotisationsGestionBean` : Bean fonctionnel avec rappels
-- ✅ `CotisationsBean` : Bean fonctionnel
-- ⚠️ `cotisation/reminders.xhtml` : Bean manquant
-- ⚠️ `cotisation/report.xhtml` : Bean manquant
-
-**Corrections nécessaires** :
-- [ ] Créer `CotisationRemindersBean` (1-2 heures)
-- [ ] Créer `CotisationReportBean` (1-2 heures)
-- [ ] Tester intégration paiements
-
-**Temps estimé** : 4-6 heures
-
-**Valeur métier** : ⭐⭐⭐⭐⭐ (Revenus principaux)
-
----
-
-#### 2.2 Gestion des Paiements ⭐⭐⭐⭐
-
-**Statut Backend** : ✅ 100% Complet
-- `PaiementResource` : CRUD complet
-- `PaiementService` : Toutes les opérations
-- Intégration Wave Mobile Money (backend)
-
-**Statut Frontend** : ⚠️ 50% Fonctionnel
-- ⚠️ Pages paiements à vérifier
-- ⚠️ Intégration Wave frontend à compléter
-
-**Corrections nécessaires** :
-- [ ] Vérifier pages paiements
-- [ ] Compléter intégration Wave frontend (si nécessaire)
-
-**Temps estimé** : 4-8 heures
-
-**Valeur métier** : ⭐⭐⭐⭐ (Important mais peut être déployé en v2)
-
----
-
-### ✅ PHASE 3 : FONCTIONNALITÉS ÉVÉNEMENTIELLES (Déploiement Rapide - 2-3 jours)
-
-#### 3.1 Gestion des Événements ⭐⭐⭐⭐
-
-**Statut Backend** : ✅ 100% Complet
-- `EvenementResource` : CRUD complet
-- `EvenementService` : Toutes les opérations
-- Gestion participants, inscriptions
-
-**Statut Frontend** : ✅ 70% Fonctionnel
-- ✅ `evenement/gestion.xhtml` : Gestion événements (corrigé récemment)
-- ✅ `evenement/creation.xhtml` : Création événements
-- ✅ `evenement/calendrier.xhtml` : Calendrier
-- ✅ `evenement/participants.xhtml` : Participants
-- ✅ `evenement/participation.xhtml` : Participation
-- ✅ `EvenementsBean` : Bean fonctionnel (corrigé récemment)
-- ⚠️ `evenement/create.xhtml` : Différente de `creation.xhtml`?
-- ⚠️ `evenement/calendar.xhtml` : Différente de `calendrier.xhtml`?
-
-**Corrections nécessaires** :
-- [ ] Clarifier doublons de pages (`create` vs `creation`, `calendar` vs `calendrier`)
-- [ ] Créer beans manquants si nécessaire
-
-**Temps estimé** : 2-4 heures
-
-**Valeur métier** : ⭐⭐⭐⭐ (Important pour engagement membres)
-
----
-
-### ✅ PHASE 4 : FONCTIONNALITÉS ADMINISTRATIVES (Déploiement Rapide - 1-2 jours)
-
-#### 4.1 Dashboard ⭐⭐⭐⭐
-
-**Statut Backend** : ✅ 100% Complet
-- `DashboardResource` : Statistiques complètes
-- `DashboardServiceImpl` : Calculs KPI
-
-**Statut Frontend** : ✅ 80% Fonctionnel
-- ✅ `dashboard.xhtml` : Dashboard principal
-- ✅ `DashboardBean` : Bean fonctionnel
-
-**Corrections nécessaires** :
-- [ ] Vérifier affichage des statistiques
-- [ ] Tester performance
-
-**Temps estimé** : 1-2 heures
-
-**Valeur métier** : ⭐⭐⭐⭐ (Vue d'ensemble importante)
-
----
-
-#### 4.2 Rapports & Statistiques ⭐⭐⭐
-
-**Statut Backend** : ✅ 100% Complet
-- `AnalyticsResource` : Analytics
-- `ExportResource` : Export données
-- `RapportsBean` : Génération rapports
-
-**Statut Frontend** : ✅ 60% Fonctionnel
-- ✅ `rapport/details.xhtml` : Détails rapport
-- ✅ `rapport/membres.xhtml` : Rapports membres
-- ✅ `rapport/finances.xhtml` : Rapports finances
-- ✅ `RapportsBean` : Bean fonctionnel
-- ✅ `RapportDetailsBean` : Bean fonctionnel (2 TODOs)
-
-**Corrections nécessaires** :
-- [ ] Implémenter TODOs dans `RapportDetailsBean` (téléchargement, régénération)
-
-**Temps estimé** : 2-3 heures
-
-**Valeur métier** : ⭐⭐⭐ (Utile mais non critique)
-
----
-
-## 🚨 CORRECTIONS CRITIQUES AVANT PRODUCTION
-
-### 1. Sécurité (OBLIGATOIRE - 4-6 heures)
-
-**Actions immédiates** :
-
-1. **Supprimer secrets hardcodés** (2 heures)
- ```properties
- # ❌ À SUPPRIMER
- quarkus.oidc.credentials.secret=${KEYCLOAK_CLIENT_SECRET:7dnWMwlabtoyp08F6FIuDxzDPE5VdUF6}
- quarkus.datasource.password=${DB_PASSWORD:unionflow123}
-
- # ✅ UTILISER
- quarkus.oidc.credentials.secret=${KEYCLOAK_CLIENT_SECRET}
- quarkus.datasource.password=${DB_PASSWORD}
- ```
- - Créer fichier `.env.example`
- - Documenter variables d'environnement
- - Utiliser secrets manager en production
-
-2. **Corriger CORS** (1 heure)
- ```properties
- # ❌ ACTUEL
- quarkus.http.cors.origins=*
-
- # ✅ CORRIGER
- quarkus.http.cors.origins=${CORS_ORIGINS:http://localhost:8080,https://unionflow.dev}
- ```
-
-3. **Corriger mapper Keycloak** (1-2 heures)
- - Résoudre problème `realm_access` dupliqué dans token JWT
- - Réactiver vérification du token
-
-4. **Tests de sécurité** (1 heure)
- - Vérifier `@RolesAllowed` sur toutes les resources
- - Tester accès non autorisé
-
----
-
-### 2. Validation & Gestion d'Erreurs (RECOMMANDÉ - 2-3 heures)
-
-- [ ] Ajouter validation JSF sur formulaires critiques
-- [ ] Messages d'erreur personnalisés
-- [ ] Exception handlers globaux
-- [ ] Gestion erreurs REST client
-
----
-
-## 📋 PLAN DE DÉPLOIEMENT RECOMMANDÉ
-
-### 🎯 VERSION MINIMALE VIABLE (MVP) - 1 semaine
-
-**Fonctionnalités à déployer** :
-1. ✅ Authentification & Sécurité (après corrections)
-2. ✅ Gestion des Membres
-3. ✅ Gestion des Organisations
-4. ✅ Dashboard de base
-
-**Temps total** : 5-7 jours
-- Corrections sécurité : 1 jour
-- Tests et validation : 1 jour
-- Déploiement : 1 jour
-
-**Valeur métier** : Permet de gérer les membres et organisations de base
-
----
-
-### 🎯 VERSION 1.0 COMPLÈTE - 2-3 semaines
-
-**Fonctionnalités additionnelles** :
-5. ✅ Gestion des Cotisations
-6. ✅ Gestion des Événements
-7. ✅ Rapports & Statistiques
-8. ✅ Gestion des Paiements (basique)
-
-**Temps total** : 10-15 jours
-- Développement : 5-7 jours
-- Tests : 2-3 jours
-- Déploiement : 1 jour
-
-**Valeur métier** : Solution complète de gestion
-
----
-
-### 🎯 VERSION 1.1 AVANCÉE - 1 mois
-
-**Fonctionnalités additionnelles** :
-9. ✅ Intégration Wave Mobile Money complète
-10. ✅ Gestion des Adhésions
-11. ✅ Demandes d'Aide
-12. ✅ Notifications avancées
-13. ✅ Comptabilité
-
-**Temps total** : 20-25 jours
-
----
-
-## 🎯 RECOMMANDATION FINALE
-
-### Pour un déploiement RAPIDE (1 semaine)
-
-**Déployer en priorité** :
-1. ✅ **Authentification & Sécurité** (après corrections critiques)
-2. ✅ **Gestion des Membres** (80% fonctionnel)
-3. ✅ **Gestion des Organisations** (75% fonctionnel)
-4. ✅ **Dashboard** (80% fonctionnel)
-
-**Corrections minimales** :
-- Sécurité (4-6 heures)
-- Validation formulaires (2-3 heures)
-- Tests basiques (2-3 heures)
-
-**Total** : 8-12 heures de travail + déploiement
-
-### Pour un déploiement COMPLET (2-3 semaines)
-
-**Ajouter** :
-5. ✅ Gestion des Cotisations
-6. ✅ Gestion des Événements
-7. ✅ Rapports & Statistiques
-
-**Total** : 10-15 jours de travail
-
----
-
-## 📊 MATRICE PRIORITÉ / EFFORT
-
-| Fonctionnalité | Priorité | Effort | Prêt | Déployable |
-|----------------|----------|--------|------|------------|
-| Authentification | ⭐⭐⭐⭐⭐ | 4-6h | 90% | ✅ Oui (après corrections) |
-| Gestion Membres | ⭐⭐⭐⭐⭐ | 2-4h | 80% | ✅ Oui |
-| Gestion Organisations | ⭐⭐⭐⭐⭐ | 1-2h | 75% | ✅ Oui |
-| Dashboard | ⭐⭐⭐⭐ | 1-2h | 80% | ✅ Oui |
-| Gestion Cotisations | ⭐⭐⭐⭐⭐ | 4-6h | 70% | ✅ Oui |
-| Gestion Événements | ⭐⭐⭐⭐ | 2-4h | 70% | ✅ Oui |
-| Rapports | ⭐⭐⭐ | 2-3h | 60% | ⚠️ Partiel |
-| Paiements | ⭐⭐⭐⭐ | 4-8h | 50% | ⚠️ Partiel |
-
----
-
-## ✅ CHECKLIST DÉPLOIEMENT
-
-### Avant déploiement (OBLIGATOIRE)
-- [ ] Supprimer tous les secrets hardcodés
-- [ ] Configurer CORS correctement
-- [ ] Corriger mapper Keycloak
-- [ ] Réactiver vérification token
-- [ ] Tests de sécurité basiques
-- [ ] Validation formulaires critiques
-- [ ] Backup base de données
-
-### Déploiement
-- [ ] Configuration environnement production
-- [ ] Variables d'environnement configurées
-- [ ] Base de données migrée
-- [ ] Keycloak configuré
-- [ ] Monitoring configuré
-
-### Après déploiement
-- [ ] Tests de régression
-- [ ] Monitoring actif
-- [ ] Documentation utilisateur
-- [ ] Formation utilisateurs
-
----
-
-**Conclusion** : UnionFlow peut être déployé en production rapidement (1 semaine) avec les fonctionnalités core après corrections de sécurité critiques. Le backend est 100% prêt, le frontend est à 70-80% pour les fonctionnalités principales.
-
diff --git a/DESCRIPTION_METIER_UNIONFLOW.md b/DESCRIPTION_METIER_UNIONFLOW.md
deleted file mode 100644
index 24f2198..0000000
--- a/DESCRIPTION_METIER_UNIONFLOW.md
+++ /dev/null
@@ -1,800 +0,0 @@
-# Description Métier - UnionFlow
-
-**Version** : 2.0
-**Date** : 2025-01-29
-**Domaine** : Gestion d'organisations associatives (Lions Clubs, Associations, Coopératives, etc.)
-
----
-
-## 🎯 Vision et Mission
-
-**UnionFlow** est une plateforme de gestion intégrée conçue pour les unions et associations Lions Club de Côte d'Ivoire. Elle centralise et automatise la gestion administrative, financière et opérationnelle de ces organisations à but non lucratif.
-
-### Mission
-Faciliter la gestion quotidienne des organisations associatives en automatisant les processus administratifs, financiers et événementiels, tout en favorisant la solidarité entre membres.
-
-### Vision
-Devenir la référence en matière de gestion numérique pour les organisations associatives en Afrique de l'Ouest.
-
----
-
-## 🏢 Contexte Métier
-
-### Organisations Cibles
-UnionFlow s'adresse à différents types d'organisations :
-- **Lions Clubs** : Clubs de service international
-- **Associations** : Organisations à but non lucratif
-- **Coopératives** : Groupements économiques
-- **Fédérations** : Regroupements d'organisations
-- **Mutuelles** : Organisations de solidarité
-- **Syndicats** : Organisations professionnelles
-- **Fondations** : Organisations philanthropiques
-- **ONG** : Organisations non gouvernementales
-
-### Problématiques Résolues
-1. **Gestion dispersée** : Informations éparpillées dans des fichiers Excel, carnets, etc.
-2. **Suivi financier complexe** : Difficulté à suivre les cotisations, paiements, relances
-3. **Communication inefficace** : Manque de centralisation pour les événements et annonces
-4. **Solidarité non structurée** : Absence de processus formalisé pour les demandes d'aide
-5. **Traçabilité limitée** : Pas d'historique complet des actions et décisions
-
----
-
-## 👥 Acteurs et Rôles
-
-### 1. **SUPER_ADMIN**
-- **Rôle** : Administration système complète
-- **Permissions** :
- - Gestion de tous les utilisateurs et organisations
- - Configuration du système
- - Gestion du catalogue des types d'organisations
- - Accès à toutes les données et statistiques
-- **Cas d'usage** : Configuration initiale, maintenance, support technique
-
-### 2. **ADMIN** (Administrateur d'Organisation)
-- **Rôle** : Gestion complète d'une organisation
-- **Permissions** :
- - Gestion des membres de son organisation
- - Gestion des cotisations
- - Organisation d'événements
- - Validation des adhésions
- - Traitement des demandes d'aide
- - Consultation des statistiques de son organisation
-- **Cas d'usage** : Gestion quotidienne d'un Lions Club ou d'une association
-
-### 3. **MEMBRE**
-- **Rôle** : Membre actif d'une organisation
-- **Permissions** :
- - Consultation de son profil
- - Consultation de ses cotisations
- - Inscription aux événements
- - Soumission de demandes d'aide
- - Consultation des événements publics
-- **Cas d'usage** : Participation active à la vie de l'organisation
-
-### 4. **ORGANISATEUR_EVENEMENT**
-- **Rôle** : Organisation et gestion d'événements
-- **Permissions** :
- - Création et modification d'événements
- - Gestion des inscriptions
- - Suivi des participants
-- **Cas d'usage** : Organisation d'assemblées générales, formations, manifestations
-
----
-
-## 📋 Modules Fonctionnels
-
-### 1. 🏛️ Gestion des Organisations
-
-#### Description
-Module central permettant de gérer toutes les informations relatives aux organisations (clubs, associations, etc.).
-
-#### Fonctionnalités Principales
-
-**Création et Configuration**
-- Enregistrement d'une nouvelle organisation avec toutes ses informations :
- - Identité : nom, nom court, type, statut
- - Contact : email, téléphones, adresse complète, coordonnées GPS
- - Web : site web, logo, réseaux sociaux
- - Finances : budget annuel, devise, cotisation obligatoire, montant
- - Métier : objectifs, activités principales, certifications, partenaires
- - Paramètres : organisation publique, accepte nouveaux membres
-
-**Hiérarchie Organisationnelle**
-- Structure hiérarchique (organisation parente)
-- Niveaux hiérarchiques (0 = racine)
-- Gestion des relations parent-enfant
-
-**Statuts Organisationnels**
-- **ACTIVE** : Organisation opérationnelle
-- **SUSPENDUE** : Temporairement suspendue (ne peut plus accepter de membres)
-- **DISSOUTE** : Organisation dissoute (archivée)
-
-**Gestion du Catalogue des Types**
-- CRUD complet des types d'organisations
-- Codes uniques (LIONS_CLUB, ASSOCIATION, etc.)
-- Libellés et descriptions
-- Ordre d'affichage
-- Activation/désactivation
-
-**Statistiques**
-- Nombre de membres
-- Nombre d'administrateurs
-- Ancienneté (années depuis la fondation)
-- Budget et finances
-
-#### Règles Métier
-- Unicité de l'email par organisation
-- Unicité du numéro d'enregistrement
-- Unicité du nom
-- Date de fondation optionnelle mais utilisée pour calculer l'ancienneté
-- Statut par défaut : ACTIVE
-- Type par défaut : ASSOCIATION
-- Devise par défaut : XOF (Franc CFA)
-
----
-
-### 2. 👤 Gestion des Membres
-
-#### Description
-Gestion complète du cycle de vie des membres d'une organisation.
-
-#### Fonctionnalités Principales
-
-**Inscription de Membres**
-- Création d'un nouveau membre avec :
- - Identité : prénom, nom, email (unique), téléphone
- - Dates : naissance, adhésion
- - Affiliation : organisation
- - Rôles : chaîne de caractères pour les rôles multiples
-
-**Génération Automatique**
-- **Numéro de membre** : Format `UF{ANNEE}-{UUID}` (ex: `UF2025-A1B2C3D4`)
- - Généré automatiquement si non fourni
- - Unique dans tout le système
-- **Date d'adhésion** : Automatiquement définie à `LocalDate.now()` si non fournie
-- **Date de naissance** : Par défaut à 18 ans en arrière si non fournie (pour éviter les contraintes @NotNull)
-
-**Statuts Membres**
-- **ACTIF** : Membre actif et opérationnel
-- **INACTIF** : Membre désactivé
-- **SUSPENDU** : Membre temporairement suspendu
-
-**Recherche et Filtrage**
-- Recherche par nom, prénom, email
-- Filtrage par statut, organisation, date d'adhésion
-- Recherche avancée avec critères multiples :
- - Âge (min/max)
- - Période d'adhésion
- - Organisation(s)
- - Rôles
-
-**Statistiques**
-- Total de membres
-- Membres actifs vs inactifs
-- Nouveaux membres (30 derniers jours)
-- Taux d'activité
-
-#### Règles Métier
-- Email unique dans tout le système
-- Numéro de membre unique
-- Un membre appartient à une seule organisation
-- Vérification de majorité (18 ans) pour certaines opérations
-- Calcul automatique de l'âge à partir de la date de naissance
-
----
-
-### 3. 💰 Gestion des Cotisations
-
-#### Description
-Suivi complet des cotisations des membres : création, paiement, relances, statistiques.
-
-#### Fonctionnalités Principales
-
-**Types de Cotisations**
-- **MENSUELLE** : Cotisation mensuelle récurrente
-- **ANNUELLE** : Cotisation annuelle
-- **ADHESION** : Frais d'adhésion initiale
-- **EVENEMENT** : Participation à un événement payant
-- **FORMATION** : Frais de formation
-- **PROJET** : Contribution à un projet
-- **SOLIDARITE** : Contribution au fonds de solidarité
-
-**Création de Cotisation**
-- Association à un membre
-- Montant dû (obligatoire, positif)
-- Code devise (ISO 3 lettres, défaut : XOF)
-- Date d'échéance
-- Période (année, mois optionnel)
-- Description et observations
-- Type de cotisation
-
-**Génération Automatique**
-- **Numéro de référence** : Format `COT-{ANNEE}-{TIMESTAMP}` (ex: `COT-2025-12345678`)
- - Généré automatiquement si non fourni
- - Unique dans tout le système
-
-**Statuts de Cotisation**
-- **EN_ATTENTE** : Créée mais non payée
-- **PAYEE** : Intégralement payée
-- **EN_RETARD** : Date d'échéance dépassée, non payée
-- **PARTIELLEMENT_PAYEE** : Paiement partiel effectué
-- **ANNULEE** : Cotisation annulée
-
-**Gestion des Paiements**
-- Enregistrement de paiements partiels ou complets
-- Méthode de paiement (espèces, virement, mobile money, etc.)
-- Référence de paiement
-- Date de paiement
-- Validation par un administrateur (optionnel)
-
-**Relances Automatiques**
-- Suivi du nombre de rappels
-- Date du dernier rappel
-- Détection automatique des cotisations en retard
-
-**Recherche et Filtrage**
-- Par membre
-- Par statut
-- Par type
-- Par période (année, mois)
-- Cotisations en retard
-
-**Statistiques**
-- Total de cotisations
-- Cotisations payées
-- Cotisations en retard
-- Taux de paiement
-- Montants collectés par période
-
-#### Règles Métier
-- Montant dû doit être positif
-- Montant payé ne peut pas dépasser le montant dû
-- Date d'échéance ne peut pas être antérieure à un an
-- Une cotisation marquée "PAYEE" doit avoir montantPaye = montantDu
-- Impossible de supprimer une cotisation déjà payée
-- Calcul automatique du montant restant : `montantDu - montantPaye`
-- Détection automatique des cotisations en retard : `dateEcheance < aujourd'hui && !payeeIntegralement()`
-
----
-
-### 4. 📅 Gestion des Événements
-
-#### Description
-Organisation complète d'événements : création, inscriptions, suivi, statistiques.
-
-#### Fonctionnalités Principales
-
-**Types d'Événements**
-- **ASSEMBLEE_GENERALE** : Assemblée générale annuelle
-- **REUNION** : Réunion régulière
-- **FORMATION** : Session de formation
-- **CONFERENCE** : Conférence ou séminaire
-- **ATELIER** : Atelier pratique
-- **SEMINAIRE** : Séminaire
-- **EVENEMENT_SOCIAL** : Événement social (soirée, gala, etc.)
-- **MANIFESTATION** : Manifestation publique
-- **CELEBRATION** : Célébration (anniversaire, fête, etc.)
-- **AUTRE** : Autre type d'événement
-
-**Création d'Événement**
-- Titre (obligatoire)
-- Description détaillée
-- Dates : début (obligatoire), fin (optionnelle)
-- Lieu et adresse complète
-- Type d'événement
-- Capacité maximale (optionnelle, pour gérer les inscriptions)
-- Prix de participation (optionnel)
-- Instructions particulières
-- Contact organisateur
-- Matériel requis
-- Visibilité publique
-
-**Gestion des Inscriptions**
-- Inscription requise (oui/non)
-- Date limite d'inscription
-- Capacité maximale
-- Suivi des inscriptions :
- - **CONFIRMEE** : Inscription validée
- - **EN_ATTENTE** : En attente de validation
- - **ANNULEE** : Inscription annulée
- - **REFUSEE** : Inscription refusée
-
-**Statuts d'Événement**
-- **PLANIFIE** : Événement planifié (défaut)
-- **CONFIRME** : Événement confirmé
-- **EN_COURS** : Événement en cours
-- **TERMINE** : Événement terminé
-- **ANNULE** : Événement annulé
-- **REPORTE** : Événement reporté
-
-**Règles d'Ouverture aux Inscriptions**
-Un événement est ouvert aux inscriptions si :
-- `inscriptionRequise = true`
-- `actif = true`
-- Date limite d'inscription non dépassée
-- Date de début non dépassée
-- Capacité non atteinte (si définie)
-- Statut = PLANIFIE ou CONFIRME
-
-**Statistiques**
-- Nombre total d'événements
-- Événements actifs
-- Événements à venir
-- Événements en cours
-- Événements passés
-- Événements publics
-- Taux de remplissage (inscrits / capacité)
-- Taux d'activité
-
-#### Règles Métier
-- Titre obligatoire
-- Date de début obligatoire et ne peut pas être dans le passé (sauf tolérance de 1 heure)
-- Date de fin ne peut pas être antérieure à la date de début
-- Capacité maximale doit être positive si définie
-- Prix ne peut pas être négatif
-- Impossible de supprimer un événement avec des inscriptions
-- Impossible de changer le statut d'un événement terminé ou annulé
-- Calcul automatique de la durée en heures
-- Calcul automatique des places restantes
-- Vérification si un membre est déjà inscrit
-
----
-
-### 5. 🤝 Gestion des Adhésions
-
-#### Description
-Processus complet de demande, validation et paiement d'adhésion à une organisation.
-
-#### Fonctionnalités Principales
-
-**Création de Demande d'Adhésion**
-- Membre demandeur
-- Organisation cible
-- Date de demande (automatique si non fournie)
-- Frais d'adhésion (montant)
-- Code devise (défaut : XOF)
-
-**Génération Automatique**
-- **Numéro de référence** : Format `ADH-{TIMESTAMP}-{UUID}` (ex: `ADH-1706541234567-A1B2C3D4`)
- - Généré automatiquement si non fourni
- - Unique dans tout le système
-
-**Workflow d'Adhésion**
-
-1. **EN_ATTENTE** (Statut initial)
- - Demande soumise
- - En attente de validation par l'organisation
-
-2. **APPROUVEE**
- - Demande approuvée par un administrateur
- - Date d'approbation enregistrée
- - Approuveur enregistré
- - Passage automatique en attente de paiement
-
-3. **EN_PAIEMENT**
- - Paiement partiel effectué
- - Montant payé < frais d'adhésion
-
-4. **PAYEE**
- - Paiement intégral effectué
- - Montant payé >= frais d'adhésion
- - Date de paiement enregistrée
-
-5. **REJETEE**
- - Demande rejetée par l'organisation
- - Motif de rejet enregistré
-
-6. **ANNULEE**
- - Demande annulée (par le demandeur ou l'organisation)
-
-**Gestion des Paiements**
-- Enregistrement de paiements partiels ou complets
-- Méthode de paiement
-- Référence de paiement
-- Date de paiement
-- Calcul automatique du montant restant
-
-**Actions Métier**
-- **Approuver** : Valide une demande en attente
-- **Rejeter** : Refuse une demande avec motif
-- **Enregistrer paiement** : Enregistre un paiement (partiel ou complet)
-- **Annuler** : Annule une demande (si non payée)
-
-**Recherche et Filtrage**
-- Par membre
-- Par organisation
-- Par statut
-- Adhésions en attente
-
-**Statistiques**
-- Total d'adhésions
-- Adhésions approuvées
-- Adhésions en attente
-- Adhésions payées
-- Taux d'approbation
-- Taux de paiement
-
-#### Règles Métier
-- Frais d'adhésion doivent être positifs
-- Montant payé ne peut pas dépasser les frais d'adhésion
-- Seules les adhésions EN_ATTENTE peuvent être approuvées ou rejetées
-- Seules les adhésions APPROUVEE ou EN_PAIEMENT peuvent recevoir un paiement
-- Impossible de supprimer une adhésion déjà payée
-- Passage automatique en PAYEE si paiement intégral
-- Passage automatique en EN_PAIEMENT si paiement partiel
-
----
-
-### 6. ❤️ Système de Solidarité (Demandes d'Aide)
-
-#### Description
-Gestion complète du cycle de vie des demandes d'aide entre membres : soumission, évaluation, approbation, versement.
-
-#### Fonctionnalités Principales
-
-**Types d'Aide**
-- **FINANCIERE** : Aide financière directe
-- **MATERIELLE** : Fourniture de matériel
-- **ALIMENTAIRE** : Aide alimentaire
-- **MEDICALE** : Aide médicale
-- **SCOLAIRE** : Aide scolaire (frais, fournitures)
-- **LOGEMENT** : Aide au logement
-- **EMPLOI** : Aide à l'emploi
-- **FORMATION** : Aide à la formation
-- **AUTRE** : Autre type d'aide
-
-**Création de Demande**
-- Titre et description détaillée
-- Type d'aide
-- Montant demandé (pour aide financière)
-- Justification
-- Documents fournis (liste)
-- Urgence (oui/non)
-- Membre demandeur
-- Organisation traitante
-
-**Génération Automatique**
-- **Numéro de référence** : Format `DA-{ANNEE}-{NUMERO}` (ex: `DA-2025-123456`)
- - Généré automatiquement
- - Unique dans tout le système
-- **Score de priorité** : Calculé automatiquement selon :
- - Priorité (CRITIQUE, URGENTE, NORMALE, FAIBLE)
- - Type d'aide (urgent ou non)
- - Montant (si financière)
- - Ancienneté de la demande
-
-**Workflow de Demande d'Aide**
-
-1. **BROUILLON** (Statut initial)
- - Demande en cours de rédaction
- - Modifiable par le demandeur
-
-2. **SOUMISE**
- - Demande soumise à l'organisation
- - Date de soumission enregistrée
-
-3. **EN_ATTENTE**
- - En attente d'évaluation
-
-4. **EN_COURS_EVALUATION**
- - Évaluation en cours par un évaluateur
- - Évaluateur assigné
-
-5. **INFORMATIONS_REQUISES**
- - Informations complémentaires demandées
- - Retour au demandeur
-
-6. **APPROUVEE**
- - Demande approuvée intégralement
- - Montant approuvé = montant demandé
- - Date d'approbation enregistrée
-
-7. **APPROUVEE_PARTIELLEMENT**
- - Demande approuvée partiellement
- - Montant approuvé < montant demandé
-
-8. **EN_COURS_TRAITEMENT**
- - Traitement en cours (préparation de l'aide)
-
-9. **EN_COURS_VERSEMENT**
- - Versement en cours (pour aide financière)
-
-10. **VERSEE**
- - Aide versée (pour aide financière)
- - Date de versement enregistrée
-
-11. **LIVREE**
- - Aide livrée (pour aide matérielle)
-
-12. **TERMINEE**
- - Processus complètement terminé
-
-13. **REJETEE**
- - Demande rejetée
- - Commentaire d'évaluation avec motif
-
-14. **ANNULEE**
- - Demande annulée
-
-15. **EXPIREE**
- - Demande expirée (délai dépassé)
-
-16. **SUSPENDUE**
- - Demande temporairement suspendue
-
-17. **EN_SUIVI**
- - Demande en suivi post-versement
-
-18. **CLOTUREE**
- - Demande clôturée définitivement
-
-**Historique des Statuts**
-- Traçabilité complète des changements de statut
-- Date de chaque changement
-- Auteur du changement
-- Motif du changement
-- Indication si changement automatique ou manuel
-
-**Priorités**
-- **CRITIQUE** : Intervention immédiate requise
-- **URGENTE** : Intervention rapide requise
-- **NORMALE** : Traitement normal
-- **FAIBLE** : Traitement différé possible
-
-**Recherche et Filtrage**
-- Par organisation
-- Par type d'aide
-- Par statut
-- Par priorité
-- Par demandeur
-- Demandes urgentes
-- Demandes en retard (délai dépassé)
-
-**Statistiques**
-- Total de demandes
-- Demandes par statut
-- Demandes par type
-- Montants demandés vs approuvés
-- Taux d'approbation
-- Délais moyens de traitement
-
-#### Règles Métier
-- Une demande ne peut être modifiée qu'en statut BROUILLON
-- Transitions de statut validées (workflow strict)
-- Calcul automatique du score de priorité
-- Détection automatique des demandes en retard
-- Calcul automatique du pourcentage d'approbation
-- Vérification de l'urgence pour priorisation
-- Historique complet et immuable des changements
-
----
-
-## 🔄 Processus Métier Principaux
-
-### Processus 1 : Inscription d'un Nouveau Membre
-
-1. **Saisie des informations**
- - Nom, prénom, email, téléphone
- - Date de naissance
- - Organisation d'affiliation
-
-2. **Validation automatique**
- - Vérification unicité email
- - Génération numéro de membre
- - Définition date d'adhésion
-
-3. **Création du membre**
- - Persistance en base
- - Attribution statut ACTIF par défaut
-
-4. **Mise à jour organisation**
- - Incrémentation nombre de membres
-
-### Processus 2 : Gestion d'une Cotisation
-
-1. **Création de la cotisation**
- - Association au membre
- - Définition montant, type, échéance
- - Génération numéro de référence
-
-2. **Suivi du paiement**
- - Statut initial : EN_ATTENTE
- - Enregistrement paiements (partiels ou complets)
- - Mise à jour automatique du statut
-
-3. **Relances**
- - Détection automatique des cotisations en retard
- - Envoi de rappels (nombre de rappels suivi)
-
-4. **Finalisation**
- - Statut PAYEE quand intégralement payée
- - Validation par un administrateur (optionnel)
-
-### Processus 3 : Organisation d'un Événement
-
-1. **Création de l'événement**
- - Saisie des informations (titre, dates, lieu, etc.)
- - Définition capacité et prix
- - Configuration inscriptions
-
-2. **Ouverture des inscriptions**
- - Vérification automatique des conditions
- - Affichage public si visible
-
-3. **Gestion des inscriptions**
- - Inscription des membres
- - Validation/refus des inscriptions
- - Suivi du nombre d'inscrits
-
-4. **Exécution de l'événement**
- - Changement de statut (CONFIRME → EN_COURS → TERMINE)
- - Suivi de la participation
-
-### Processus 4 : Demande d'Adhésion
-
-1. **Soumission de la demande**
- - Membre soumet une demande d'adhésion
- - Statut initial : EN_ATTENTE
-
-2. **Évaluation**
- - Administrateur examine la demande
- - Décision : APPROUVEE ou REJETEE
-
-3. **Paiement**
- - Si approuvée, enregistrement des paiements
- - Passage automatique en PAYEE si intégral
-
-4. **Finalisation**
- - Membre officiellement admis
- - Mise à jour de l'organisation
-
-### Processus 5 : Demande d'Aide (Solidarité)
-
-1. **Création de la demande**
- - Membre crée une demande (statut BROUILLON)
- - Saisie des informations complètes
-
-2. **Soumission**
- - Passage en statut SOUMISE
- - Assignation à l'organisation
-
-3. **Évaluation**
- - Assignation d'un évaluateur
- - Statut : EN_COURS_EVALUATION
- - Analyse de la demande
-
-4. **Décision**
- - APPROUVEE / APPROUVEE_PARTIELLEMENT / REJETEE
- - Enregistrement du montant approuvé (si financière)
-
-5. **Traitement**
- - Préparation de l'aide
- - Versement (si financière) ou livraison (si matérielle)
-
-6. **Suivi**
- - Statut TERMINEE ou CLOTUREE
- - Historique complet conservé
-
----
-
-## 📊 Indicateurs et Statistiques
-
-### Indicateurs Organisationnels
-- Nombre total de membres
-- Nombre de membres actifs
-- Taux d'activité (%)
-- Nouveaux membres (30 jours)
-- Budget annuel
-- Montant cotisations collectées
-
-### Indicateurs Financiers
-- Total cotisations créées
-- Cotisations payées
-- Cotisations en retard
-- Taux de paiement (%)
-- Montants collectés par période
-- Adhésions payées
-
-### Indicateurs Événementiels
-- Total événements
-- Événements à venir
-- Événements en cours
-- Taux de remplissage moyen
-- Participation moyenne
-
-### Indicateurs Solidarité
-- Total demandes d'aide
-- Demandes urgentes
-- Demandes approuvées
-- Montants demandés vs approuvés
-- Taux d'approbation
-- Délais moyens de traitement
-
----
-
-## 🔐 Sécurité et Contrôle d'Accès
-
-### Authentification
-- **Keycloak OIDC** : Authentification centralisée
-- Tokens JWT pour l'accès aux APIs
-- Refresh automatique des tokens
-
-### Autorisations par Rôle
-- **SUPER_ADMIN** : Accès total
-- **ADMIN** : Gestion de son organisation
-- **MEMBRE** : Consultation et actions limitées
-- **ORGANISATEUR_EVENEMENT** : Gestion événements
-
-### Audit et Traçabilité
-- **AuditLog** : Enregistrement de toutes les actions importantes
-- Champs d'audit sur toutes les entités :
- - `creePar` : Créateur
- - `modifiePar` : Dernier modificateur
- - `dateCreation` : Date de création
- - `dateModification` : Date de modification
- - `version` : Version optimiste (gestion des conflits)
-
----
-
-## 🎨 Principes de Conception
-
-### DRY (Don't Repeat Yourself)
-- Composants réutilisables pour l'UI
-- Services partagés
-- DTOs standardisés
-
-### WOU (Write Once Use)
-- Bibliothèque de composants JSF/PrimeFaces
-- Fragments réutilisables
-- Templates standardisés
-
-### Séparation des Responsabilités
-- **API** : Contrats et interfaces
-- **Implémentation** : Logique métier et persistance
-- **Client** : Interface utilisateur
-
-### Traçabilité Complète
-- Historique des modifications
-- Logs d'audit
-- Versioning optimiste
-
----
-
-## 🚀 Évolutions Futures
-
-### Court Terme
-- Intégration paiements mobiles (Wave, Orange Money, MTN Mobile Money)
-- Notifications automatiques (email, SMS)
-- Export de rapports (PDF, Excel)
-
-### Moyen Terme
-- Application mobile native (Flutter)
-- Tableau de bord analytique
-- Gestion documentaire (upload de documents)
-
-### Long Terme
-- Intelligence artificielle pour recommandations
-- Prédiction des cotisations en retard
-- Optimisation automatique des événements
-
----
-
-## 📞 Support et Maintenance
-
-### Support Utilisateur
-- Documentation complète
-- Formation des administrateurs
-- Support technique
-
-### Maintenance
-- Sauvegardes régulières
-- Mises à jour de sécurité
-- Monitoring des performances
-
----
-
-**Document généré le** : 2025-01-29
-**Version UnionFlow** : 2.0
-**Auteur** : UnionFlow Team
-
diff --git a/DIAGRAMME_CLASSES_UNIONFLOW.md b/DIAGRAMME_CLASSES_UNIONFLOW.md
deleted file mode 100644
index 7b47ad5..0000000
--- a/DIAGRAMME_CLASSES_UNIONFLOW.md
+++ /dev/null
@@ -1,1979 +0,0 @@
-# Diagramme de Classes - UnionFlow
-
-## Vue d'ensemble
-
-UnionFlow est une application de gestion d'organisations (Lions Clubs, Associations, Coopératives, etc.) avec gestion des membres, cotisations, événements et système de solidarité.
-
-**Architecture modulaire :**
-- `unionflow-server-api` : Contrats API (DTOs, Enums, Interfaces)
-- `unionflow-server-impl-quarkus` : Implémentation serveur (Entités JPA, Services, Resources REST)
-- `unionflow-client-quarkus-primefaces-freya` : Client web JSF/PrimeFaces
-
----
-
-## 1. ENTITÉS JPA (Server Implementation)
-
-### 1.1 BaseEntity (Classe abstraite)
-
-```java
-@MappedSuperclass
-public abstract class BaseEntity {
- - UUID id (PK, @GeneratedValue UUID)
- - LocalDateTime dateCreation
- - LocalDateTime dateModification
- - String creePar
- - String modifiePar
- - Long version (@Version)
- - Boolean actif
-
- + onCreate() @PrePersist
- + onUpdate() @PreUpdate
-}
-```
-
-**Relations :** Toutes les entités héritent de `BaseEntity`
-
----
-
-### 1.2 Membre
-
-```java
-@Entity
-@Table(name = "membres")
-public class Membre extends BaseEntity {
- - String numeroMembre (unique, @NotBlank)
- - String prenom (@NotBlank)
- - String nom (@NotBlank)
- - String email (unique, @Email, @NotBlank)
- - String motDePasse
- - String telephone
- - LocalDate dateNaissance (@NotNull)
- - LocalDate dateAdhesion (@NotNull)
- - String roles
-
- // Relations
- - Organisation organisation (@ManyToOne, LAZY)
-
- + getNomComplet(): String
- + isMajeur(): boolean
- + getAge(): int
-}
-```
-
-**Relations :**
-- `@ManyToOne` → `Organisation` (membre appartient à une organisation)
-
----
-
-### 1.3 Organisation
-
-```java
-@Entity
-@Table(name = "organisations")
-public class Organisation extends BaseEntity {
- - String nom (@NotBlank)
- - String nomCourt
- - String typeOrganisation (@NotBlank)
- - String statut (@NotBlank)
- - String description
- - LocalDate dateFondation
- - String numeroEnregistrement (unique)
-
- // Contact
- - String email (unique, @Email, @NotBlank)
- - String telephone
- - String telephoneSecondaire
- - String emailSecondaire
-
- // Adresse
- - String adresse
- - String ville
- - String codePostal
- - String region
- - String pays
- - BigDecimal latitude
- - BigDecimal longitude
-
- // Web
- - String siteWeb
- - String logo
- - String reseauxSociaux
-
- // Hiérarchie
- - UUID organisationParenteId
- - Integer niveauHierarchique
-
- // Statistiques
- - Integer nombreMembres
- - Integer nombreAdministrateurs
-
- // Finances
- - BigDecimal budgetAnnuel
- - String devise
- - Boolean cotisationObligatoire
- - BigDecimal montantCotisationAnnuelle
-
- // Compléments
- - String objectifs
- - String activitesPrincipales
- - String certifications
- - String partenaires
- - String notes
- - Boolean organisationPublique
- - Boolean accepteNouveauxMembres
-
- // Relations
- - List membres (@OneToMany, mappedBy="organisation", LAZY)
-
- + getNomComplet(): String
- + getAncienneteAnnees(): int
- + isRecente(): boolean
- + isActive(): boolean
- + ajouterMembre()
- + retirerMembre()
- + activer(String utilisateur)
- + suspendre(String utilisateur)
- + dissoudre(String utilisateur)
-}
-```
-
-**Relations :**
-- `@OneToMany` → `Membre` (une organisation a plusieurs membres)
-- Auto-référence via `organisationParenteId` (hiérarchie)
-
----
-
-### 1.4 TypeOrganisationEntity
-
-```java
-@Entity
-@Table(name = "uf_type_organisation")
-public class TypeOrganisationEntity extends BaseEntity {
- - String code (unique, @NotBlank)
- - String libelle (@NotBlank)
- - String description
- - Integer ordreAffichage
-}
-```
-
-**Relations :** Aucune (entité de référence)
-
----
-
-### 1.5 Cotisation
-
-```java
-@Entity
-@Table(name = "cotisations")
-public class Cotisation extends BaseEntity {
- - String numeroReference (unique, @NotBlank)
- - Membre membre (@ManyToOne, @NotNull)
- - String typeCotisation (@NotBlank)
- - BigDecimal montantDu (@NotNull, @DecimalMin(0))
- - BigDecimal montantPaye (@DecimalMin(0))
- - String codeDevise (@NotBlank, @Pattern("^[A-Z]{3}$"))
- - String statut (@NotBlank, @Pattern)
- - LocalDate dateEcheance (@NotNull)
- - LocalDateTime datePaiement
- - String description
- - String periode
- - Integer annee (@NotNull, @Min(2020), @Max(2100))
- - Integer mois (@Min(1), @Max(12))
- - String observations
- - Boolean recurrente
- - Integer nombreRappels
- - LocalDateTime dateDernierRappel
- - UUID valideParId
- - String nomValidateur
- - LocalDateTime dateValidation
- - String methodePaiement
- - String referencePaiement
-
- + getMontantRestant(): BigDecimal
- + isEntierementPayee(): boolean
- + isEnRetard(): boolean
- + genererNumeroReference(): String (static)
-}
-```
-
-**Relations :**
-- `@ManyToOne` → `Membre` (une cotisation appartient à un membre)
-
----
-
-### 1.6 Adhesion
-
-```java
-@Entity
-@Table(name = "adhesions")
-public class Adhesion extends BaseEntity {
- - String numeroReference (unique, @NotBlank)
- - Membre membre (@ManyToOne, @NotNull)
- - Organisation organisation (@ManyToOne, @NotNull)
- - LocalDate dateDemande (@NotNull)
- - BigDecimal fraisAdhesion (@NotNull, @DecimalMin(0))
- - BigDecimal montantPaye (@DecimalMin(0))
- - String codeDevise (@NotBlank, @Pattern("^[A-Z]{3}$"))
- - String statut (@NotBlank, @Pattern)
- - LocalDate dateApprobation
- - LocalDateTime datePaiement
- - String methodePaiement
- - String referencePaiement
- - String motifRejet
- - String observations
- - String approuvePar
- - LocalDate dateValidation
-
- + isPayeeIntegralement(): boolean
- + isEnAttentePaiement(): boolean
- + getMontantRestant(): BigDecimal
-}
-```
-
-**Relations :**
-- `@ManyToOne` → `Membre`
-- `@ManyToOne` → `Organisation`
-
----
-
-### 1.7 Evenement
-
-```java
-@Entity
-@Table(name = "evenements")
-public class Evenement extends BaseEntity {
- - String titre (@NotBlank, @Size(3-200))
- - String description (@Size(max=2000))
- - LocalDateTime dateDebut (@NotNull)
- - LocalDateTime dateFin
- - String lieu (@Size(max=500))
- - String adresse (@Size(max=1000))
- - TypeEvenement typeEvenement (@Enumerated)
- - StatutEvenement statut (@Enumerated)
- - Integer capaciteMax (@Min(0))
- - BigDecimal prix (@DecimalMin("0.00"))
- - Boolean inscriptionRequise
- - LocalDateTime dateLimiteInscription
- - String instructionsParticulieres
- - String contactOrganisateur
- - String materielRequis
- - Boolean visiblePublic
- - Boolean actif
-
- // Relations
- - Organisation organisation (@ManyToOne, LAZY)
- - Membre organisateur (@ManyToOne, LAZY)
- - List inscriptions (@OneToMany, mappedBy="evenement", LAZY)
-
- enum TypeEvenement { ASSEMBLEE_GENERALE, REUNION, FORMATION, ... }
- enum StatutEvenement { PLANIFIE, CONFIRME, EN_COURS, TERMINE, ANNULE, REPORTE }
-
- + isOuvertAuxInscriptions(): boolean
- + getNombreInscrits(): int
- + isComplet(): boolean
- + isEnCours(): boolean
- + isTermine(): boolean
- + getDureeEnHeures(): Long
- + getPlacesRestantes(): Integer
- + isMemberInscrit(UUID membreId): boolean
- + getTauxRemplissage(): Double
-}
-```
-
-**Relations :**
-- `@ManyToOne` → `Organisation`
-- `@ManyToOne` → `Membre` (organisateur)
-- `@OneToMany` → `InscriptionEvenement`
-
----
-
-### 1.8 InscriptionEvenement
-
-```java
-@Entity
-@Table(name = "inscriptions_evenement")
-public class InscriptionEvenement extends BaseEntity {
- - Membre membre (@ManyToOne, @NotNull)
- - Evenement evenement (@ManyToOne, @NotNull)
- - LocalDateTime dateInscription
- - StatutInscription statut (@Enumerated)
- - String commentaire
-
- enum StatutInscription { CONFIRMEE, EN_ATTENTE, ANNULEE, REFUSEE }
-
- + isConfirmee(): boolean
- + isEnAttente(): boolean
- + isAnnulee(): boolean
- + confirmer()
- + annuler(String commentaire)
- + mettreEnAttente(String commentaire)
- + refuser(String commentaire)
-}
-```
-
-**Relations :**
-- `@ManyToOne` → `Membre`
-- `@ManyToOne` → `Evenement`
-
----
-
-### 1.9 DemandeAide
-
-```java
-@Entity
-@Table(name = "demandes_aide")
-public class DemandeAide extends BaseEntity {
- - String titre (@NotBlank)
- - String description (@NotBlank, TEXT)
- - TypeAide typeAide (@Enumerated, @NotNull)
- - StatutAide statut (@Enumerated, @NotNull)
- - BigDecimal montantDemande
- - BigDecimal montantApprouve
- - LocalDateTime dateDemande
- - LocalDateTime dateEvaluation
- - LocalDateTime dateVersement
- - Membre demandeur (@ManyToOne, @NotNull)
- - Membre evaluateur (@ManyToOne)
- - Organisation organisation (@ManyToOne, @NotNull)
- - String justification (TEXT)
- - String commentaireEvaluation (TEXT)
- - Boolean urgence
- - String documentsFournis
-
- + isEnAttente(): boolean
- + isApprouvee(): boolean
- + isRejetee(): boolean
- + isUrgente(): boolean
- + getPourcentageApprobation(): BigDecimal
-}
-```
-
-**Relations :**
-- `@ManyToOne` → `Membre` (demandeur)
-- `@ManyToOne` → `Membre` (evaluateur)
-- `@ManyToOne` → `Organisation`
-
----
-
-### 1.10 AuditLog
-
-```java
-@Entity
-@Table(name = "audit_logs")
-public class AuditLog extends BaseEntity {
- - String typeAction
- - String severite
- - String utilisateur
- - String role
- - String module
- - String description
- - String details (TEXT)
- - String ipAddress
- - String userAgent
- - String sessionId
- - LocalDateTime dateHeure
- - String donneesAvant (TEXT)
- - String donneesApres (TEXT)
- - String entiteId
- - String entiteType
-}
-```
-
-**Relations :** Aucune (entité de log)
-
----
-
-## 2. REPOSITORIES (Server Implementation)
-
-### 2.1 BaseRepository
-
-```java
-public abstract class BaseRepository {
- @PersistenceContext
- protected EntityManager entityManager;
-
- protected final Class entityClass;
-
- + findById(UUID id): T
- + findByIdOptional(UUID id): Optional
- + persist(T entity): void @Transactional
- + update(T entity): T @Transactional
- + delete(T entity): void @Transactional
- + deleteById(UUID id): boolean @Transactional
- + listAll(): List
- + count(): long
- + existsById(UUID id): boolean
- + getEntityManager(): EntityManager
-}
-```
-
-**Relations :**
-- Générique sur `BaseEntity`
-- Utilisé par tous les repositories
-
----
-
-### 2.2 MembreRepository
-
-```java
-@ApplicationScoped
-public class MembreRepository extends BaseRepository {
- + findByEmail(String email): Optional
- + findByNumeroMembre(String numero): Optional
- + findAllActifs(): List
- + countActifs(): long
- + findByNomOrPrenom(String recherche): List
- + findAllActifs(Page page, Sort sort): List
- + findByNomOrPrenom(String recherche, Page page, Sort sort): List
- + countNouveauxMembres(LocalDate depuis): long
- + findByStatut(boolean actif, Page page, Sort sort): List
- + findByTrancheAge(int ageMin, int ageMax, Page page, Sort sort): List
- + rechercheAvancee(...): List
- + countMembresActifs(UUID organisationId, LocalDateTime debut, LocalDateTime fin): Long
- + countMembresInactifs(UUID organisationId, LocalDateTime debut, LocalDateTime fin): Long
- + calculerMoyenneAge(UUID organisationId, LocalDateTime debut, LocalDateTime fin): Double
-}
-```
-
----
-
-### 2.3 OrganisationRepository
-
-```java
-@ApplicationScoped
-public class OrganisationRepository extends BaseRepository {
- + findByEmail(String email): Optional
- + findByNom(String nom): Optional
- + findByNumeroEnregistrement(String numero): Optional
- + findAllActives(): List
- + findAllActives(Page page, Sort sort): List
- + countActives(): long
- + findByStatut(String statut, Page page, Sort sort): List
- + findByType(String typeOrganisation, Page page, Sort sort): List
- + findByVille(String ville, Page page, Sort sort): List
- + findByPays(String pays, Page page, Sort sort): List
- + findByRegion(String region, Page page, Sort sort): List
- + findByOrganisationParente(UUID parenteId, Page page, Sort sort): List
- + findOrganisationsRacines(Page page, Sort sort): List
- + findByNomOrNomCourt(String recherche, Page page, Sort sort): List
- + rechercheAvancee(...): List
- + countNouvellesOrganisations(LocalDate depuis): long
- + findOrganisationsPubliques(Page page, Sort sort): List
- + findOrganisationsOuvertes(Page page, Sort sort): List
- + countByStatut(String statut): long
- + countByType(String typeOrganisation): long
-}
-```
-
----
-
-### 2.4 Autres Repositories
-
-- `TypeOrganisationRepository extends BaseRepository`
-- `CotisationRepository extends BaseRepository`
-- `AdhesionRepository extends BaseRepository`
-- `EvenementRepository extends BaseRepository`
-- `DemandeAideRepository extends BaseRepository`
-- `AuditLogRepository extends BaseRepository`
-
----
-
-## 3. DTOs SERVEUR (Server API)
-
-### 3.1 BaseDTO (Classe abstraite)
-
-```java
-public abstract class BaseDTO implements Serializable {
- - UUID id
- - LocalDateTime dateCreation (@JsonFormat)
- - LocalDateTime dateModification (@JsonFormat)
- - String creePar
- - String modifiePar
- - Long version
- - Boolean actif
-
- + marquerCommeNouveau(String utilisateur): void
- + marquerCommeModifie(String utilisateur): void
- + desactiver(String utilisateur): void
- + reactiver(String utilisateur): void
- + isNouveau(): boolean
- + isActif(): boolean
-}
-```
-
-**Relations :** Tous les DTOs héritent de `BaseDTO`
-
----
-
-### 3.2 MembreDTO
-
-```java
-public class MembreDTO extends BaseDTO {
- - String numeroMembre (@Size(max=50))
- - String nom (@NotBlank, @Size(2-50), @Pattern)
- - String prenom (@NotBlank, @Size(2-50), @Pattern)
- - String email (@NotBlank, @Email, @Size(max=100))
- - String telephone (@Size(max=20))
- - LocalDate dateNaissance (@Past)
- - String adresse (@Size(max=200))
- - String profession (@Size(max=100))
- - String statutMatrimonial (@Size(max=20))
- - String nationalite (@Size(max=50))
- - String numeroIdentite (@Size(max=50))
- - String typeIdentite (@Size(max=20))
- - StatutMembre statut (@NotNull)
- - UUID associationId (@NotNull)
- - String associationNom
- - LocalDate dateAdhesion
- - String region (@Size(max=50))
- - String ville (@Size(max=50))
- - String quartier (@Size(max=50))
- - String role (@Size(max=50))
- - Boolean membreBureau
- - Boolean responsable
- - String photoUrl (@Size(max=255))
-
- + getStatutLibelle(): String
- + sontDonneesValides(): boolean
-}
-```
-
----
-
-### 3.3 OrganisationDTO
-
-```java
-public class OrganisationDTO extends BaseDTO {
- - String nom (@NotBlank, @Size)
- - String nomCourt (@Size(max=50))
- - TypeOrganisation typeOrganisation (@NotNull)
- - StatutOrganisation statut (@NotNull)
- - String description (@Size(max=2000))
- - LocalDate dateFondation
- - String numeroEnregistrement (@Size(max=100))
- - String adresse (@Size(max=500))
- - String ville (@Size(max=100))
- - String region (@Size(max=100))
- - String pays (@Size(max=100))
- - String codePostal (@Pattern)
- - BigDecimal latitude (@DecimalMin(-90), @DecimalMax(90))
- - BigDecimal longitude (@DecimalMin(-180), @DecimalMax(180))
- - String telephone (@Pattern)
- - String telephoneSecondaire (@Pattern)
- - String email (@Email, @Size(max=200))
- - String emailSecondaire (@Email, @Size(max=200))
- - String siteWeb (@Pattern, @Size(max=500))
- - String logo (@Size(max=500))
- - UUID organisationParenteId
- - String nomOrganisationParente
- - Integer niveauHierarchique
- - Integer nombreMembres
- - Integer nombreAdministrateurs
- - BigDecimal budgetAnnuel (@DecimalMin(0), @Digits)
- - String devise (@Pattern("^[A-Z]{3}$"))
- - String objectifs (@Size(max=2000))
- - String activitesPrincipales (@Size(max=2000))
- - String reseauxSociaux (@Size(max=1000))
- - String certifications (@Size(max=500))
- - String partenaires (@Size(max=1000))
- - String notes (@Size(max=1000))
- - Boolean organisationPublique
- - Boolean accepteNouveauxMembres
- - Boolean cotisationObligatoire
- - BigDecimal montantCotisationAnnuelle (@DecimalMin(0), @Digits)
-
- + estActive(): boolean
- + estInactive(): boolean
- + estSuspendue(): boolean
- + estEnCreation(): boolean
- + estDissoute(): boolean
- + getAncienneteAnnees(): int
- + getAncienneteMois(): int
- + possedGeolocalisation(): boolean
- + estOrganisationRacine(): boolean
- + possedeSousOrganisations(): boolean
- + getNomAffichage(): String
- + getAdresseComplete(): String
- + getRatioAdministrateurs(): double
- + hasBudget(): boolean
- + activer(String utilisateur): void
- + suspendre(String utilisateur): void
- + dissoudre(String utilisateur): void
- + desactiver(String utilisateur): void
- + mettreAJourNombreMembres(int nouveauNombre, String utilisateur): void
- + ajouterMembre(String utilisateur): void
- + retirerMembre(String utilisateur): void
-}
-```
-
----
-
-### 3.4 TypeOrganisationDTO
-
-```java
-public class TypeOrganisationDTO extends BaseDTO {
- - String code (@NotBlank, @Size(max=50))
- - String libelle (@NotBlank, @Size(max=150))
- - String description (@Size(max=500))
- - Integer ordreAffichage
- - Boolean actif
-}
-```
-
----
-
-### 3.5 CotisationDTO
-
-```java
-public class CotisationDTO extends BaseDTO {
- - String numeroReference (@NotBlank, @Size(max=50))
- - UUID membreId (@NotNull)
- - String numeroMembre
- - String nomMembre
- - UUID associationId (@NotNull)
- - String nomAssociation
- - String typeCotisation (@NotNull, @Pattern)
- - String libelle (@NotBlank, @Size(max=100))
- - String description (@Size(max=500))
- - BigDecimal montantDu (@NotNull, @DecimalMin(0, inclusive=false))
- - BigDecimal montantPaye (@DecimalMin(0))
- - String codeDevise (@NotBlank, @Size(3))
- - String statut (@NotNull, @Pattern)
- - LocalDate dateEcheance (@NotNull)
- - LocalDateTime datePaiement
- - String methodePaiement (@Pattern)
- - String referencePaiement (@Size(max=100))
- - String periode (@Size(max=50))
- - Integer annee (@Min(2020), @Max(2050))
- - Integer mois (@Min(1), @Max(12))
- - String observations (@Size(max=500))
- - Boolean recurrente
- - Integer nombreRappels (@Min(0))
- - LocalDateTime dateDernierRappel
- - UUID validePar
- - String nomValidateur
-
- + isPayeeIntegralement(): boolean
- + isEnRetard(): boolean
- + getMontantRestant(): BigDecimal
- + getPourcentagePaiement(): int
- + getJoursRetard(): long
- + getTypeCotisationLibelle(): String
- + getStatutLibelle(): String
- + getMethodePaiementLibelle(): String
- + mettreAJourStatut(): void
- + marquerCommePaye(BigDecimal montant, String methode, String reference): void
-}
-```
-
----
-
-### 3.6 AdhesionDTO
-
-```java
-public class AdhesionDTO extends BaseDTO {
- - String numeroReference (@NotBlank, @Size(max=50))
- - UUID membreId (@NotNull)
- - String numeroMembre
- - String nomMembre
- - String emailMembre
- - UUID organisationId (@NotNull)
- - String nomOrganisation
- - LocalDate dateDemande (@NotNull)
- - BigDecimal fraisAdhesion (@NotNull, @DecimalMin(0, inclusive=false))
- - BigDecimal montantPaye (@DecimalMin(0))
- - String codeDevise (@NotBlank, @Pattern("^[A-Z]{3}$"))
- - String statut (@NotBlank, @Pattern)
- - LocalDate dateApprobation
- - LocalDateTime datePaiement
- - String methodePaiement (@Pattern)
- - String referencePaiement (@Size(max=100))
- - String motifRejet (@Size(max=1000))
- - String observations (@Size(max=1000))
- - String approuvePar (@Size(max=255))
- - LocalDate dateValidation
-
- + isPayeeIntegralement(): boolean
- + isEnAttentePaiement(): boolean
- + getMontantRestant(): BigDecimal
- + getPourcentagePaiement(): int
- + getJoursDepuisDemande(): long
- + getStatutLibelle(): String
- + getStatutSeverity(): String
- + getStatutIcon(): String
- + getMethodePaiementLibelle(): String
- + getDateDemandeFormatee(): String
- + getDateApprobationFormatee(): String
- + getDatePaiementFormatee(): String
- + getFraisAdhesionFormatte(): String
- + getMontantPayeFormatte(): String
- + getMontantRestantFormatte(): String
-}
-```
-
----
-
-### 3.7 EvenementDTO
-
-```java
-public class EvenementDTO extends BaseDTO {
- - String titre (@NotBlank, @Size(3-200))
- - String description (@Size(max=2000))
- - TypeEvenementMetier typeEvenement (@NotNull)
- - StatutEvenement statut (@NotNull)
- - PrioriteEvenement priorite
- - LocalDate dateDebut (@NotNull, @Future)
- - LocalDate dateFin
- - LocalTime heureDebut
- - LocalTime heureFin
- - String lieu (@NotBlank, @Size(max=100))
- - String adresse (@Size(max=200))
- - String ville (@Size(max=50))
- - String region (@Size(max=50))
- - BigDecimal latitude (@DecimalMin(-90), @DecimalMax(90))
- - BigDecimal longitude (@DecimalMin(-180), @DecimalMax(180))
- - UUID associationId (@NotNull)
- - String nomAssociation
- - String organisateur (@Size(max=100))
- - String emailOrganisateur (@Email, @Size(max=100))
- - String telephoneOrganisateur (@Pattern)
- - Integer capaciteMax (@Min(1), @Max(10000))
- - Integer participantsInscrits (@Min(0))
- - Integer participantsPresents (@Min(0))
- - BigDecimal budget (@DecimalMin(0), @Digits)
- - BigDecimal coutReel (@DecimalMin(0), @Digits)
- - String codeDevise (@Pattern)
- - Boolean inscriptionObligatoire
- - LocalDate dateLimiteInscription
- - Boolean evenementPublic
- - Boolean recurrent
- - String frequenceRecurrence (@Pattern)
- - String instructions (@Size(max=500))
- - String materielNecessaire (@Size(max=500))
- - String conditionsMeteo (@Size(max=100))
- - String imageUrl (@Size(max=255))
- - String couleurTheme (@Pattern)
- - LocalDateTime dateAnnulation
- - String raisonAnnulation (@Size(max=500))
- - Long annulePar
- - String nomAnnulateur
-
- + estEnCours(): boolean
- + estTermine(): boolean
- + estAnnule(): boolean
- + estComplet(): boolean
- + getPlacesDisponibles(): int
- + getTauxRemplissage(): int
- + getTauxPresence(): int
- + sontInscriptionsOuvertes(): boolean
- + getDureeEnHeures(): long
- + estEvenementMultiJours(): boolean
- + getTypeEvenementLibelle(): String
- + getStatutLibelle(): String
- + getPrioriteLibelle(): String
- + getAdresseComplete(): String
- + hasCoordonnees(): boolean
- + getEcartBudgetaire(): BigDecimal
- + estBudgetDepasse(): boolean
-}
-```
-
----
-
-### 3.8 DemandeAideDTO
-
-```java
-public class DemandeAideDTO extends BaseDTO {
- - String numeroReference (@Pattern)
- - TypeAide typeAide (@NotNull)
- - String titre (@NotBlank, @Size(3-200))
- - String description (@NotBlank, @Size(3-2000))
- - String justification (@Size(max=2000))
- - BigDecimal montantDemande (@DecimalMin(0, inclusive=false), @Digits)
- - BigDecimal montantApprouve (@DecimalMin(0, inclusive=false), @Digits)
- - BigDecimal montantVerse (@DecimalMin(0, inclusive=false), @Digits)
- - String devise (@Pattern, default="XOF")
- - UUID membreDemandeurId (@NotNull)
- - String nomDemandeur
- - String numeroMembreDemandeur
- - String evaluateurId
- - String evaluateurNom
- - String approvateurId
- - String approvateurNom
- - UUID associationId (@NotNull)
- - String nomAssociation
- - StatutAide statut (@NotNull, default=EN_ATTENTE)
- - PrioriteAide priorite (@NotNull, default=NORMALE)
- - String motifRejet (@Size(max=500))
- - String commentairesEvaluateur (@Size(max=1000))
- - LocalDateTime dateSoumission
- - LocalDateTime dateLimiteTraitement
- - LocalDateTime dateEvaluation
- - LocalDateTime dateApprobation
- - LocalDateTime dateVersement
- - LocalDateTime dateCloture
- - List piecesJustificatives
- - List beneficiaires
- - List historiqueStatuts
- - List commentaires
- - Map donneesPersonnalisees
- - List tags
- - Boolean estConfidentielle
- - Boolean necessiteSuivi
- - Double scorePriorite
- - Integer nombreVues
- - LocalisationDTO localisation
- - ContactUrgenceDTO contactUrgence
- - LocalDate dateLimite
- - Boolean justificatifsFournis
- - String documentsJoints (@Size(max=1000))
- - LocalDate dateDebutAide
- - LocalDate dateFinAide
- - UUID membreAidantId
- - String nomAidant
- - String modeVersement (@Size(max=50))
- - String numeroTransaction (@Size(max=100))
- - UUID rejeteParId
- - String rejetePar
- - LocalDateTime dateRejet
- - String raisonRejet (@Size(max=500))
-
- + estModifiable(): boolean
- + peutEtreAnnulee(): boolean
- + estUrgente(): boolean
- + estTerminee(): boolean
- + estEnSucces(): boolean
- + getPourcentageAvancement(): double
- + getDelaiRestantHeures(): long
- + estDelaiDepasse(): boolean
- + getDureeTraitementJours(): long
- + getStatutLibelle(): String
- + getPrioriteLibelle(): String
- + approuver(UUID evaluateurId, String nomEvaluateur, BigDecimal montantApprouve, String commentaires): void
- + rejeter(UUID evaluateurId, String nomEvaluateur, String raison): void
- + demarrerAide(UUID aidantId, String nomAidant): void
- + terminerAvecVersement(BigDecimal montantVerse, String modeVersement, String numeroTransaction): void
- + incrementerVues(): void
- + genererNumeroReference(): String (static)
-}
-```
-
----
-
-### 3.9 AuditLogDTO
-
-```java
-public class AuditLogDTO extends BaseDTO {
- - String typeAction
- - String severite
- - String utilisateur
- - String role
- - String module
- - String description
- - String details
- - String ipAddress
- - String userAgent
- - String sessionId
- - LocalDateTime dateHeure
- - String donneesAvant
- - String donneesApres
- - String entiteId
- - String entiteType
-}
-```
-
----
-
-## 4. ENUMS (Server API)
-
-### 4.1 StatutMembre
-
-```java
-public enum StatutMembre {
- ACTIF("Actif"),
- INACTIF("Inactif"),
- SUSPENDU("Suspendu"),
- DEMISSIONNAIRE("Démissionnaire"),
- EXCLU("Exclu");
-
- - String libelle
- + getLibelle(): String
-}
-```
-
----
-
-### 4.2 StatutOrganisation
-
-```java
-public enum StatutOrganisation {
- ACTIVE("Active"),
- INACTIVE("Inactive"),
- SUSPENDUE("Suspendue"),
- EN_CREATION("En création"),
- DISSOUTE("Dissoute");
-
- - String libelle
- + getLibelle(): String
-}
-```
-
----
-
-### 4.3 TypeOrganisation
-
-```java
-public enum TypeOrganisation {
- LIONS_CLUB("Lions Club"),
- ASSOCIATION("Association"),
- FEDERATION("Fédération"),
- COOPERATIVE("Coopérative"),
- MUTUELLE("Mutuelle"),
- SYNDICAT("Syndicat"),
- FONDATION("Fondation"),
- ONG("ONG");
-
- - String libelle
- + getLibelle(): String
-}
-```
-
----
-
-### 4.4 StatutCotisation
-
-```java
-public enum StatutCotisation {
- EN_ATTENTE("En attente"),
- PAYEE("Payée"),
- PARTIELLEMENT_PAYEE("Partiellement payée"),
- EN_RETARD("En retard"),
- ANNULEE("Annulée"),
- REMBOURSEE("Remboursée");
-
- - String libelle
- + getLibelle(): String
-}
-```
-
----
-
-### 4.5 StatutEvenement
-
-```java
-public enum StatutEvenement {
- PLANIFIE("Planifié"),
- CONFIRME("Confirmé"),
- EN_COURS("En cours"),
- TERMINE("Terminé"),
- ANNULE("Annulé"),
- REPORTE("Reporté");
-
- - String libelle
- + getLibelle(): String
-}
-```
-
----
-
-### 4.6 TypeEvenementMetier
-
-```java
-public enum TypeEvenementMetier {
- ASSEMBLEE_GENERALE("Assemblée Générale"),
- REUNION("Réunion"),
- FORMATION("Formation"),
- CONFERENCE("Conférence"),
- ATELIER("Atelier"),
- SEMINAIRE("Séminaire"),
- EVENEMENT_SOCIAL("Événement Social"),
- MANIFESTATION("Manifestation"),
- CELEBRATION("Célébration"),
- AUTRE("Autre");
-
- - String libelle
- + getLibelle(): String
-}
-```
-
----
-
-### 4.7 StatutAide
-
-```java
-public enum StatutAide {
- BROUILLON("Brouillon"),
- SOUMISE("Soumise"),
- EN_ATTENTE("En attente"),
- EN_COURS_EVALUATION("En cours d'évaluation"),
- INFORMATIONS_REQUISES("Informations requises"),
- APPROUVEE("Approuvée"),
- APPROUVEE_PARTIELLEMENT("Approuvée partiellement"),
- EN_COURS_TRAITEMENT("En cours de traitement"),
- EN_COURS_VERSEMENT("En cours de versement"),
- VERSEE("Versée"),
- LIVREE("Livrée"),
- TERMINEE("Terminée"),
- REJETEE("Rejetée"),
- ANNULEE("Annulée"),
- EXPIREE("Expirée"),
- SUSPENDUE("Suspendue"),
- EN_SUIVI("En suivi"),
- CLOTUREE("Clôturée");
-
- - String libelle
- + permetModification(): boolean
- + permetAnnulation(): boolean
- + isEstFinal(): boolean
- + isSucces(): boolean
- + getLibelle(): String
-}
-```
-
----
-
-### 4.8 TypeAide
-
-```java
-public enum TypeAide {
- FINANCIERE("Aide financière"),
- MATERIELLE("Aide matérielle"),
- ALIMENTAIRE("Aide alimentaire"),
- MEDICALE("Aide médicale"),
- SCOLAIRE("Aide scolaire"),
- LOGEMENT("Aide au logement"),
- EMPLOI("Aide à l'emploi"),
- FORMATION("Aide à la formation"),
- AUTRE("Autre");
-
- - String libelle
- + getLibelle(): String
-}
-```
-
----
-
-### 4.9 PrioriteAide
-
-```java
-public enum PrioriteAide {
- BASSE("Basse"),
- NORMALE("Normale"),
- HAUTE("Haute"),
- URGENTE("Urgente"),
- CRITIQUE("Critique");
-
- - String libelle
- + isUrgente(): boolean
- + getLibelle(): String
-}
-```
-
----
-
-## 5. SERVICES SERVEUR (Server Implementation)
-
-### 5.1 MembreService
-
-```java
-@ApplicationScoped
-public class MembreService {
- @Inject MembreRepository membreRepository;
- @PersistenceContext EntityManager entityManager;
-
- + creerMembre(Membre membre): Membre @Transactional
- + mettreAJourMembre(UUID id, Membre membreMiseAJour): Membre @Transactional
- + desactiverMembre(UUID id): void @Transactional
- + genererNumeroMembre(): String (private)
- + compterMembresActifs(): long
- + listerMembresActifs(Page page, Sort sort): List
- + rechercherMembres(String recherche, Page page, Sort sort): List
- + obtenirStatistiquesAvancees(): Map
- + convertToDTO(Membre membre): MembreDTO
- + convertFromDTO(MembreDTO dto): Membre
- + convertToDTOList(List membres): List
- + updateFromDTO(Membre membre, MembreDTO dto): void
- + rechercheAvancee(MembreSearchCriteria criteria, Page page, Sort sort): MembreSearchResultDTO
-}
-```
-
-**Dépendances :**
-- `MembreRepository`
-- `EntityManager`
-
----
-
-### 5.2 OrganisationService
-
-```java
-@ApplicationScoped
-public class OrganisationService {
- @Inject OrganisationRepository organisationRepository;
-
- + creerOrganisation(Organisation organisation): Organisation @Transactional
- + mettreAJourOrganisation(UUID id, Organisation organisationMiseAJour, String utilisateur): Organisation @Transactional
- + supprimerOrganisation(UUID id, String utilisateur): void @Transactional
- + trouverParId(UUID id): Optional
- + trouverParEmail(String email): Optional
- + listerOrganisationsActives(): List
- + listerOrganisationsActives(int page, int size): List
- + rechercherOrganisations(String recherche, int page, int size): List
- + rechercheAvancee(...): List
- + activerOrganisation(UUID id, String utilisateur): Organisation @Transactional
- + suspendreOrganisation(UUID id, String utilisateur): Organisation @Transactional
- + obtenirStatistiques(): Map
- + convertToDTO(Organisation organisation): OrganisationDTO
- + convertFromDTO(OrganisationDTO dto): Organisation
-}
-```
-
-**Dépendances :**
-- `OrganisationRepository`
-
----
-
-### 5.3 TypeOrganisationService
-
-```java
-@ApplicationScoped
-public class TypeOrganisationService {
- @Inject TypeOrganisationRepository repository;
- @Inject KeycloakService keycloakService;
-
- + listTypes(Boolean onlyActifs): List
- + getTypeById(UUID id): Optional
- + create(TypeOrganisationDTO dto): TypeOrganisationDTO @Transactional
- + update(UUID id, TypeOrganisationDTO dto): TypeOrganisationDTO @Transactional
- + delete(UUID id): void @Transactional
- + convertToDTO(TypeOrganisationEntity entity): TypeOrganisationDTO
- + convertFromDTO(TypeOrganisationDTO dto): TypeOrganisationEntity
-}
-```
-
-**Dépendances :**
-- `TypeOrganisationRepository`
-- `KeycloakService`
-
----
-
-### 5.4 Autres Services
-
-- `CotisationService`
-- `AdhesionService`
-- `EvenementService`
-- `DemandeAideService`
-- `AuditService`
-- `KeycloakService`
-- `NotificationService`
-- `ExportService`
-- `PaiementService`
-- `WaveService`
-
----
-
-## 6. RESOURCES REST (Server Implementation)
-
-### 6.1 MembreResource
-
-```java
-@Path("/api/membres")
-@ApplicationScoped
-public class MembreResource {
- @Inject MembreService membreService;
-
- @GET
- @PermitAll
- + listerMembres(@QueryParam("page") int page, @QueryParam("size") int size): List
-
- @GET
- @Path("/{id}")
- @PermitAll
- + obtenirMembre(@PathParam("id") UUID id): MembreDTO
-
- @POST
- @PermitAll
- + creerMembre(MembreDTO dto): Response
-
- @PUT
- @Path("/{id}")
- @PermitAll
- + mettreAJourMembre(@PathParam("id") UUID id, MembreDTO dto): Response
-
- @DELETE
- @Path("/{id}")
- @PermitAll
- + supprimerMembre(@PathParam("id") UUID id): Response
-
- @GET
- @Path("/recherche")
- @PermitAll
- + rechercherMembres(@QueryParam("q") String query, @QueryParam("page") int page, @QueryParam("size") int size): List
-
- @GET
- @Path("/statistiques")
- @PermitAll
- + obtenirStatistiques(): Map
-}
-```
-
----
-
-### 6.2 OrganisationResource
-
-```java
-@Path("/api/organisations")
-@ApplicationScoped
-public class OrganisationResource {
- @Inject OrganisationService organisationService;
-
- @GET
- @PermitAll
- + listerToutes(@QueryParam("page") int page, @QueryParam("size") int size): List
-
- @GET
- @Path("/{id}")
- @PermitAll
- + obtenirOrganisation(@PathParam("id") UUID id): OrganisationDTO
-
- @POST
- @PermitAll
- + creerOrganisation(OrganisationDTO dto): Response
-
- @PUT
- @Path("/{id}")
- @PermitAll
- + mettreAJourOrganisation(@PathParam("id") UUID id, OrganisationDTO dto): Response
-
- @DELETE
- @Path("/{id}")
- @PermitAll
- + supprimerOrganisation(@PathParam("id") UUID id): Response
-
- @GET
- @Path("/recherche")
- @PermitAll
- + rechercheAvancee(...): List
-
- @POST
- @Path("/{id}/activer")
- @PermitAll
- + activerOrganisation(@PathParam("id") UUID id): Response
-
- @POST
- @Path("/{id}/suspendre")
- @PermitAll
- + suspendreOrganisation(@PathParam("id") UUID id): Response
-
- @GET
- @Path("/statistiques")
- @PermitAll
- + obtenirStatistiques(): Map
-}
-```
-
----
-
-### 6.3 TypeOrganisationResource
-
-```java
-@Path("/api/types-organisations")
-@ApplicationScoped
-public class TypeOrganisationResource {
- @Inject TypeOrganisationService service;
-
- @GET
- @PermitAll
- + listTypes(@QueryParam("onlyActifs") String onlyActifs): List
-
- @GET
- @Path("/{id}")
- @PermitAll
- + getTypeById(@PathParam("id") UUID id): TypeOrganisationDTO
-
- @POST
- @PermitAll
- + create(TypeOrganisationDTO dto): Response
-
- @PUT
- @Path("/{id}")
- @PermitAll
- + update(@PathParam("id") UUID id, TypeOrganisationDTO dto): Response
-
- @DELETE
- @Path("/{id}")
- @PermitAll
- + delete(@PathParam("id") UUID id): Response
-}
-```
-
----
-
-### 6.4 Autres Resources
-
-- `CotisationResource`
-- `AdhesionResource`
-- `EvenementResource`
-- `DemandeAideResource`
-- `AuditResource`
-- `NotificationResource`
-- `ExportResource`
-- `DashboardResource`
-- `HealthResource`
-- `WaveResource`
-- `PreferencesResource`
-
----
-
-## 7. DTOs CLIENT (Client)
-
-### 7.1 MembreDTO (Client)
-
-```java
-public class MembreDTO implements Serializable {
- - UUID id
- - String numeroMembre (@Size(max=50))
- - String nom (@NotBlank, @Size(2-50), @Pattern)
- - String prenom (@NotBlank, @Size(2-50), @Pattern)
- - String email (@NotBlank, @Email, @Size(max=100))
- - String telephone (@Size(max=20))
- - LocalDate dateNaissance (@Past)
- - String adresse (@Size(max=200))
- - String profession (@Size(max=100))
- - String statutMatrimonial (@Size(max=20))
- - String nationalite (@Size(max=50))
- - String numeroIdentite (@Size(max=50))
- - String typeIdentite (@Size(max=20))
- - String photoUrl (@Size(max=255))
- - String statut (@NotNull)
- - UUID associationId (@NotNull)
- - String associationNom
- - LocalDateTime dateInscription
- - LocalDateTime dateDerniereModification
- - String creePar
- - String modifiePar
- - Boolean responsable
- - LocalDate dateAdhesion
- - String region (@Size(max=50))
- - String ville (@Size(max=50))
- - String quartier (@Size(max=50))
- - String role (@Size(max=50))
-
- // Propriétés dérivées (calculées)
- + getInitiales(): String
- + getTypeMembre(): String
- + getTypeSeverity(): String
- + getTypeIcon(): String
- + getStatutIcon(): String
- + getEntite(): String
- + getAnciennete(): String
- + getCotisationStatut(): String
- + getCotisationColor(): String
- + getDernierPaiement(): String
- + getTauxParticipation(): String
- + getEvenementsAnnee(): String
-}
-```
-
----
-
-### 7.2 AssociationDTO (Client)
-
-```java
-@JsonIgnoreProperties(ignoreUnknown = true)
-public class AssociationDTO implements Serializable {
- - UUID id
- - String nom (@NotBlank)
- - String nomCourt
- - String description
- - String adresse
- - String telephone
- - String email
- - String siteWeb
- - String logo
- - String typeAssociation (@NotNull, @JsonProperty("typeOrganisation"))
- - LocalDate dateFondation (@JsonProperty("dateFondation"))
- - String numeroRegistre (@JsonProperty("numeroEnregistrement"))
- - String statut
- - Integer nombreMembres
- - Integer nombreAdministrateurs
- - String responsablePrincipal
- - String telephoneResponsable
- - String emailResponsable
- - LocalDateTime dateDerniereActivite
- - LocalDateTime dateCreation
- - LocalDateTime dateModification
- - Long version
- - Boolean actif
- - String region
- - String ville
- - String quartier
- - String pays
- - String codePostal
- - String activitesPrincipales
- - String objectifs
- - String partenaires
- - String certifications
- - String reseauxSociaux
- - String notes
- - Boolean organisationPublique
- - Boolean accepteNouveauxMembres
- - Boolean cotisationObligatoire
- - BigDecimal budgetAnnuel
- - String devise
- - BigDecimal montantCotisationAnnuelle
- - String telephoneSecondaire
- - String emailSecondaire
- - UUID organisationParenteId
- - String nomOrganisationParente
- - Integer niveauHierarchique
- - BigDecimal latitude
- - BigDecimal longitude
-
- + getTypeLibelle(): String
- + getStatutLibelle(): String
- + getStatutSeverity(): String
- + getAdresseComplete(): String
-}
-```
-
----
-
-### 7.3 Autres DTOs Client
-
-- `TypeOrganisationClientDTO`
-- `CotisationDTO`
-- `AdhesionDTO`
-- `EvenementDTO`
-- `DemandeAideDTO`
-- `AuditLogDTO`
-- `AnalyticsDataDTO`
-- `WaveBalanceDTO`
-- `WaveCheckoutSessionDTO`
-
----
-
-## 8. SERVICES CLIENT (Client)
-
-### 8.1 MembreService (REST Client)
-
-```java
-@RestClient
-@RegisterRestClient(configKey = "unionflow-api")
-public interface MembreService {
- @GET
- @Path("/api/membres")
- + listerToutes(@QueryParam("page") int page, @QueryParam("size") int size): List
-
- @GET
- @Path("/api/membres/{id}")
- + obtenirMembre(@PathParam("id") UUID id): MembreDTO
-
- @POST
- @Path("/api/membres")
- + creer(MembreDTO dto): MembreDTO
-
- @PUT
- @Path("/api/membres/{id}")
- + modifier(@PathParam("id") UUID id, MembreDTO dto): MembreDTO
-
- @DELETE
- @Path("/api/membres/{id}")
- + supprimer(@PathParam("id") UUID id): void
-
- @GET
- @Path("/api/membres/recherche")
- + rechercher(@QueryParam("q") String query, @QueryParam("page") int page, @QueryParam("size") int size): List
-}
-```
-
----
-
-### 8.2 AssociationService (REST Client)
-
-```java
-@RestClient
-@RegisterRestClient(configKey = "unionflow-api")
-public interface AssociationService {
- @GET
- @Path("/api/organisations")
- + listerToutes(@QueryParam("page") int page, @QueryParam("size") int size): List
-
- @GET
- @Path("/api/organisations/{id}")
- + obtenirOrganisation(@PathParam("id") UUID id): AssociationDTO
-
- @POST
- @Path("/api/organisations")
- + creerOrganisation(AssociationDTO dto): AssociationDTO
-
- @PUT
- @Path("/api/organisations/{id}")
- + mettreAJourOrganisation(@PathParam("id") UUID id, AssociationDTO dto): AssociationDTO
-
- @DELETE
- @Path("/api/organisations/{id}")
- + supprimerOrganisation(@PathParam("id") UUID id): void
-
- @GET
- @Path("/api/organisations/recherche")
- + rechercheAvancee(...): List
-
- @POST
- @Path("/api/organisations/{id}/activer")
- + activerOrganisation(@PathParam("id") UUID id): void
-
- @POST
- @Path("/api/organisations/{id}/suspendre")
- + suspendreOrganisation(@PathParam("id") UUID id): void
-
- @GET
- @Path("/api/organisations/statistiques")
- + obtenirStatistiques(): Map
-}
-```
-
----
-
-### 8.3 Autres Services Client
-
-- `TypeOrganisationClientService`
-- `CotisationService`
-- `AdhesionService`
-- `EvenementService`
-- `DemandeAideService`
-- `AuditService`
-- `NotificationClientService`
-- `ExportClientService`
-- `PreferencesService`
-- `WaveService`
-- `ValidationService`
-
----
-
-## 9. BEANS JSF (Client - View)
-
-### 9.1 MembreInscriptionBean
-
-```java
-@Named("membreInscriptionBean")
-@ViewScoped
-public class MembreInscriptionBean implements Serializable {
- @Inject @RestClient MembreService membreService;
- @Inject @RestClient AssociationService associationService;
- @Inject ValidationService validationService;
-
- // Champs du formulaire
- - String prenom
- - String nom
- - LocalDate dateNaissance
- - String sexe
- - String email
- - String telephoneMobile
- - String adresse
- - String ville
- - String codePostal
- - String region
- - String pays
- - String profession
- - String situationMatrimoniale
- - String nationalite
- - String contactUrgenceNom
- - String contactUrgenceTelephone
- - String contactUrgenceLien
- - String organisationId
- - String typeAdhesion
- - String numeroGenere
- - List organisations
- - int etapeCourante
- - String membreIdString
- - boolean modeModification
- - MembreDTO membreSelectionne
-
- + init(): void @PostConstruct
- + chargerMembreSiModification(): void
- + inscrire(): String
- + enregistrerBrouillon(): String
- + preparerNouveauMembre(): void
- + peutAccepterNouveauMembre(): boolean
- + isEtapePersonnelleComplete(): boolean
- + isEtapeCoordonneeComplete(): boolean
- + isEtapeAdhesionComplete(): boolean
- + isEtapeDocumentsComplete(): boolean
- + getProgressionPourcentage(): int
-}
-```
-
-**Dépendances :**
-- `MembreService` (REST Client)
-- `AssociationService` (REST Client)
-- `ValidationService`
-
----
-
-### 9.2 MembreListeBean
-
-```java
-@Named("membreListeBean")
-@ViewScoped
-public class MembreListeBean implements Serializable {
- @Inject @RestClient MembreService membreService;
- @Inject @RestClient AssociationService associationService;
-
- - List membres
- - MembreDTO membreSelectionne
- - String recherche
- - String membreSelectionneIdString
- - int page = 0
- - int size = 20
-
- + init(): void @PostConstruct
- + chargerMembres(): void
- + rechercherMembres(): void
- + modifierMembre(MembreDTO membre): String
- + supprimerMembre(MembreDTO membre): void
- + basculerStatutMembre(MembreDTO membre): void
- + voirProfil(MembreDTO membre): String
- + chargerMembreSelectionne(): void
-}
-```
-
-**Dépendances :**
-- `MembreService` (REST Client)
-- `AssociationService` (REST Client)
-
----
-
-### 9.3 OrganisationsBean
-
-```java
-@Named("organisationsBean")
-@ViewScoped
-public class OrganisationsBean implements Serializable {
- @Inject @RestClient AssociationService associationService;
- @Inject @RestClient TypeOrganisationClientService typeOrganisationService;
-
- - List organisations
- - AssociationDTO nouvelleOrganisation
- - AssociationDTO organisationSelectionnee
- - List typesOrganisation
- - Map statistiques
- - String recherche
- - String statutFiltre
- - String typeFiltre
- - int page = 0
- - int size = 20
- - String statutActive = "ACTIVE"
-
- + init(): void @PostConstruct
- + chargerOrganisations(): void
- + chargerStatistiques(): void
- + chargerTypesOrganisation(): void
- + preparerNouvelleOrganisation(): void
- + creerOrganisation(): void
- + modifierOrganisation(): void
- + supprimerOrganisation(AssociationDTO org): void
- + basculerStatutOrganisation(AssociationDTO org): void
- + rechercherOrganisations(String query): void
- + recharger(): void
- + setOrganisationSelectionnee(AssociationDTO org): void
-}
-```
-
-**Dépendances :**
-- `AssociationService` (REST Client)
-- `TypeOrganisationClientService` (REST Client)
-
----
-
-### 9.4 Autres Beans
-
-- `OrganisationDetailBean`
-- `TypeOrganisationsAdminBean`
-- `CotisationsBean`
-- `CotisationsGestionBean`
-- `AdhesionsBean`
-- `EvenementsBean`
-- `DemandesAideBean`
-- `DashboardBean`
-- `AuditBean`
-- `UserSession`
-- `LoginBean`
-- `PreferencesBean`
-- `ParametresBean`
-- `SuperAdminBean`
-- `UtilisateursBean`
-- `EntitesGestionBean`
-- `MembreRechercheBean`
-- `MembreProfilBean`
-- `MembreDashboardBean`
-- `MembreCotisationBean`
-- `PersonnelBean`
-- `FavorisBean`
-- `RapportsBean`
-- `RolesBean`
-- `SecurityStatusBean`
-- `SouscriptionBean`
-- `WaveBean`
-- `FormulaireBean`
-- `AdminFormulaireBean`
-- `DocumentsBean`
-- `DemandesBean`
-- `ConfigurationBean`
-- `GuideBean`
-- `GuestPreferences`
-- `NavigationBean`
-- `HelloView`
-
----
-
-## 10. SÉCURITÉ (Client)
-
-### 10.1 AuthenticationFilter
-
-```java
-@WebFilter(urlPatterns = "/pages/*")
-public class AuthenticationFilter implements Filter {
- @Inject JwtTokenManager tokenManager;
- @Inject UserSession userSession;
-
- + doFilter(ServletRequest request, ServletResponse response, FilterChain chain): void
- + init(FilterConfig filterConfig): void
- + destroy(): void
-}
-```
-
----
-
-### 10.2 JwtClientRequestFilter
-
-```java
-@Provider
-public class JwtClientRequestFilter implements ClientRequestFilter {
- @Inject JwtTokenManager tokenManager;
-
- + filter(ClientRequestContext requestContext): void
-}
-```
-
----
-
-### 10.3 JwtTokenManager
-
-```java
-@ApplicationScoped
-public class JwtTokenManager {
- - String accessToken
- - String refreshToken
- - LocalDateTime tokenExpiry
-
- + getAccessToken(): String
- + setAccessToken(String token): void
- + getRefreshToken(): String
- + setRefreshToken(String token): void
- + isTokenValid(): boolean
- + clearTokens(): void
-}
-```
-
----
-
-### 10.4 UserSession
-
-```java
-@Named("userSession")
-@SessionScoped
-public class UserSession implements Serializable {
- - String username
- - String email
- - String nomComplet
- - String typeCompte
- - List roles
- - String accessToken
- - String refreshToken
-
- + init(): void @PostConstruct
- + logout(): String
- + isAuthenticated(): boolean
- + hasRole(String role): boolean
- + isSuperAdmin(): boolean
- + isAdmin(): boolean
- + isMembre(): boolean
-}
-```
-
----
-
-## 11. DIAGRAMME DE RELATIONS
-
-### 11.1 Relations Entités
-
-```
-BaseEntity (abstract)
- ↑
- ├── Membre
- │ └── @ManyToOne → Organisation
- │
- ├── Organisation
- │ ├── @OneToMany → Membre
- │ └── Auto-référence (organisationParenteId)
- │
- ├── TypeOrganisationEntity
- │
- ├── Cotisation
- │ └── @ManyToOne → Membre
- │
- ├── Adhesion
- │ ├── @ManyToOne → Membre
- │ └── @ManyToOne → Organisation
- │
- ├── Evenement
- │ ├── @ManyToOne → Organisation
- │ ├── @ManyToOne → Membre (organisateur)
- │ └── @OneToMany → InscriptionEvenement
- │
- ├── InscriptionEvenement
- │ ├── @ManyToOne → Membre
- │ └── @ManyToOne → Evenement
- │
- ├── DemandeAide
- │ ├── @ManyToOne → Membre (demandeur)
- │ ├── @ManyToOne → Membre (evaluateur)
- │ └── @ManyToOne → Organisation
- │
- └── AuditLog
-```
-
-### 11.2 Relations Services
-
-```
-MembreService
- └── @Inject → MembreRepository
- └── extends → BaseRepository
-
-OrganisationService
- └── @Inject → OrganisationRepository
- └── extends → BaseRepository
-
-TypeOrganisationService
- ├── @Inject → TypeOrganisationRepository
- │ └── extends → BaseRepository
- └── @Inject → KeycloakService
-```
-
-### 11.3 Relations REST
-
-```
-MembreResource
- └── @Inject → MembreService
-
-OrganisationResource
- └── @Inject → OrganisationService
-
-TypeOrganisationResource
- └── @Inject → TypeOrganisationService
-```
-
-### 11.4 Relations Client
-
-```
-MembreInscriptionBean
- ├── @Inject @RestClient → MembreService (interface)
- ├── @Inject @RestClient → AssociationService (interface)
- └── @Inject → ValidationService
-
-MembreListeBean
- ├── @Inject @RestClient → MembreService (interface)
- └── @Inject @RestClient → AssociationService (interface)
-
-OrganisationsBean
- ├── @Inject @RestClient → AssociationService (interface)
- └── @Inject @RestClient → TypeOrganisationClientService (interface)
-```
-
----
-
-## 12. PATTERNS ET ARCHITECTURE
-
-### 12.1 Patterns Utilisés
-
-1. **Repository Pattern** : `BaseRepository` avec implémentations spécialisées
-2. **DTO Pattern** : Séparation entités JPA / DTOs API
-3. **Service Layer** : Logique métier dans les services
-4. **REST Client Pattern** : Interfaces MicroProfile Rest Client côté client
-5. **Bean Pattern** : Beans JSF pour la présentation
-6. **Filter Pattern** : Filtres pour authentification et JWT
-7. **Base Entity Pattern** : `BaseEntity` pour audit et soft delete
-
-### 12.2 Architecture en Couches
-
-```
-┌─────────────────────────────────────┐
-│ CLIENT (JSF/PrimeFaces) │
-│ - Beans (View) │
-│ - DTOs Client │
-│ - Services REST Client │
-└─────────────────────────────────────┘
- ↕ HTTP/REST
-┌─────────────────────────────────────┐
-│ SERVER API │
-│ - Resources REST (JAX-RS) │
-│ - Services │
-│ - Repositories │
-└─────────────────────────────────────┘
- ↕ JPA
-┌─────────────────────────────────────┐
-│ DATABASE │
-│ - Entités JPA │
-│ - Relations │
-└─────────────────────────────────────┘
-```
-
----
-
-## 13. POINTS D'AMÉLIORATION IDENTIFIÉS
-
-### 13.1 Modélisation
-
-1. **Relations manquantes** :
- - Pas de relation explicite `Membre` ↔ `Cotisation` (actuellement via `@ManyToOne` dans `Cotisation`)
- - Pas de relation `Organisation` ↔ `Evenement` (actuellement via `@ManyToOne` dans `Evenement`)
-
-2. **Redondance** :
- - `MembreDTO` existe côté serveur ET client avec des différences
- - `AssociationDTO` (client) vs `OrganisationDTO` (serveur) - alignement partiel
-
-3. **Champs optionnels non persistés** :
- - Dans `MembreInscriptionBean`, plusieurs champs (sexe, contactUrgence, etc.) ne sont pas dans `MembreDTO` serveur
-
-4. **Enums vs Entités** :
- - `TypeOrganisation` existe en Enum ET en Entité (`TypeOrganisationEntity`) - risque de désynchronisation
-
-### 13.2 Suggestions d'amélioration
-
-1. **Unifier les DTOs** : Créer un seul DTO partagé ou mapper automatiquement
-2. **Compléter les relations JPA** : Ajouter les relations bidirectionnelles manquantes
-3. **Persister tous les champs** : Ajouter les champs manquants dans `Membre` ou créer une entité `ContactUrgence`
-4. **Synchroniser Enum/Entité** : Utiliser uniquement l'entité `TypeOrganisationEntity` ou synchroniser automatiquement
-5. **Audit complet** : S'assurer que tous les champs d'audit sont remplis automatiquement
-6. **Validation cohérente** : Aligner les validations entre client et serveur
-
----
-
-## 14. CONCLUSION
-
-Ce diagramme de classes représente l'architecture complète d'UnionFlow avec :
-- **9 entités JPA** principales
-- **10+ repositories** spécialisés
-- **15+ DTOs** serveur et client
-- **10+ services** métier
-- **15+ resources REST**
-- **30+ beans JSF**
-- **10+ enums** de statuts et types
-
-L'architecture suit les principes DRY et WOU avec des composants réutilisables et une séparation claire des responsabilités.
-
----
-
-**Date de génération** : 2025-01-29
-**Version** : 1.0
-
diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index 4d2643c..0000000
--- a/Dockerfile
+++ /dev/null
@@ -1,74 +0,0 @@
-####
-# Dockerfile de production pour UnionFlow Server (Backend)
-# Build depuis la racine du monorepo
-####
-
-## Stage 1 : Build avec Maven
-FROM maven:3.9.6-eclipse-temurin-17 AS builder
-
-WORKDIR /app
-
-# Copier tous les POMs du monorepo
-COPY pom.xml .
-COPY unionflow-server-api/pom.xml unionflow-server-api/
-COPY unionflow-server-impl-quarkus/pom.xml unionflow-server-impl-quarkus/
-
-# Télécharger les dépendances
-RUN mvn dependency:go-offline -B
-
-# Copier le code source
-COPY unionflow-server-api/src unionflow-server-api/src
-COPY unionflow-server-impl-quarkus/src unionflow-server-impl-quarkus/src
-
-# Construire l'application
-RUN mvn clean package -DskipTests -B -Dquarkus.profile=prod -pl unionflow-server-impl-quarkus -am
-
-## Stage 2 : Image de production
-FROM eclipse-temurin:17-jre-alpine
-
-ENV LANGUAGE='en_US:en'
-ENV QUARKUS_PROFILE=prod
-ENV QUARKUS_HTTP_PORT=8085
-ENV QUARKUS_HTTP_HOST=0.0.0.0
-
-# Variables d'environnement pour production
-ENV DB_URL=jdbc:postgresql://postgresql-service.postgresql.svc.cluster.local:5432/unionflow
-ENV DB_USERNAME=unionflow
-ENV DB_PASSWORD=UnionFlow2025!
-
-ENV QUARKUS_OIDC_AUTH_SERVER_URL=https://security.lions.dev/realms/unionflow
-ENV QUARKUS_OIDC_CLIENT_ID=unionflow-server
-ENV KEYCLOAK_CLIENT_SECRET=unionflow-server-secret-2025
-ENV QUARKUS_OIDC_TLS_VERIFICATION=required
-
-ENV CORS_ORIGINS=https://unionflow.lions.dev,https://security.lions.dev
-ENV QUARKUS_HTTP_CORS_ORIGINS=${CORS_ORIGINS}
-
-# Installer curl pour health checks
-RUN apk add --no-cache curl
-
-# Créer utilisateur non-root
-RUN addgroup -g 185 -S appuser && adduser -u 185 -S appuser -G appuser
-RUN mkdir -p /app/logs && chown -R appuser:appuser /app/logs
-
-USER appuser
-
-# Copier l'application
-COPY --from=builder --chown=appuser:appuser /app/unionflow-server-impl-quarkus/target/quarkus-app/lib/ /deployments/lib/
-COPY --from=builder --chown=appuser:appuser /app/unionflow-server-impl-quarkus/target/quarkus-app/*.jar /deployments/
-COPY --from=builder --chown=appuser:appuser /app/unionflow-server-impl-quarkus/target/quarkus-app/app/ /deployments/app/
-COPY --from=builder --chown=appuser:appuser /app/unionflow-server-impl-quarkus/target/quarkus-app/quarkus/ /deployments/quarkus/
-
-EXPOSE 8085
-
-ENV JAVA_OPTS="-Xmx1g -Xms512m \
- -XX:+UseG1GC \
- -XX:MaxGCPauseMillis=200 \
- -XX:+UseStringDeduplication \
- -Djava.security.egd=file:/dev/./urandom \
- -Dquarkus.profile=${QUARKUS_PROFILE}"
-
-ENTRYPOINT ["sh", "-c", "exec java $JAVA_OPTS -jar /deployments/quarkus-run.jar"]
-
-HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
- CMD curl -f http://localhost:8085/q/health/ready || exit 1
diff --git a/Dockerfile.client b/Dockerfile.client
deleted file mode 100644
index d8cf7f8..0000000
--- a/Dockerfile.client
+++ /dev/null
@@ -1,70 +0,0 @@
-####
-# Dockerfile de production pour UnionFlow Client (Frontend)
-# Build depuis la racine du monorepo
-####
-
-## Stage 1 : Build avec Maven
-FROM maven:3.9.6-eclipse-temurin-17 AS builder
-
-WORKDIR /app
-
-# Copier tous les POMs du monorepo
-COPY pom.xml .
-COPY unionflow-server-api/pom.xml unionflow-server-api/
-COPY unionflow-client-quarkus-primefaces-freya/pom.xml unionflow-client-quarkus-primefaces-freya/
-
-# Télécharger les dépendances
-RUN mvn dependency:go-offline -B
-
-# Copier le code source
-COPY unionflow-server-api/src unionflow-server-api/src
-COPY unionflow-client-quarkus-primefaces-freya/src unionflow-client-quarkus-primefaces-freya/src
-
-# Construire l'application
-RUN mvn clean package -DskipTests -B -Dquarkus.profile=prod -pl unionflow-client-quarkus-primefaces-freya -am
-
-## Stage 2 : Image de production
-FROM eclipse-temurin:17-jre-alpine
-
-ENV LANGUAGE='fr_FR:fr'
-ENV QUARKUS_PROFILE=prod
-ENV QUARKUS_HTTP_PORT=8086
-ENV QUARKUS_HTTP_HOST=0.0.0.0
-
-# Variables d'environnement pour production
-ENV QUARKUS_OIDC_AUTH_SERVER_URL=https://security.lions.dev/realms/unionflow
-ENV QUARKUS_OIDC_CLIENT_ID=unionflow-client
-ENV QUARKUS_OIDC_ENABLED=true
-ENV QUARKUS_OIDC_TLS_VERIFICATION=required
-ENV KEYCLOAK_CLIENT_SECRET=unionflow-client-secret-2025
-
-ENV UNIONFLOW_BACKEND_URL=https://api.lions.dev/unionflow
-
-ENV QUARKUS_HTTP_CORS_ORIGINS=https://unionflow.lions.dev,https://security.lions.dev
-ENV QUARKUS_HTTP_CORS_ALLOW_CREDENTIALS=true
-
-# Installer curl pour health checks
-RUN apk add --no-cache curl
-
-# Créer utilisateur non-root
-RUN addgroup -g 185 -S appuser && adduser -u 185 -S appuser -G appuser
-RUN mkdir -p /app/logs && chown -R appuser:appuser /app/logs
-
-USER appuser
-
-# Copier l'application
-COPY --from=builder --chown=appuser:appuser /app/unionflow-client-quarkus-primefaces-freya/target/quarkus-app/ /deployments/
-
-EXPOSE 8086
-
-ENV JAVA_OPTS="-Xmx768m -Xms256m \
- -XX:+UseG1GC \
- -XX:MaxGCPauseMillis=200 \
- -XX:+UseStringDeduplication \
- -Djava.security.egd=file:/dev/./urandom \
- -Dquarkus.profile=${QUARKUS_PROFILE}"
-
-HEALTHCHECK --interval=30s --timeout=10s --start-period=90s --retries=3 \
- CMD curl -f http://localhost:8086/q/health/ready || exit 1
-
-ENTRYPOINT ["sh", "-c", "exec java $JAVA_OPTS -jar /deployments/quarkus-run.jar"]
diff --git a/Dockerfile.server b/Dockerfile.server
deleted file mode 100644
index 4d2643c..0000000
--- a/Dockerfile.server
+++ /dev/null
@@ -1,74 +0,0 @@
-####
-# Dockerfile de production pour UnionFlow Server (Backend)
-# Build depuis la racine du monorepo
-####
-
-## Stage 1 : Build avec Maven
-FROM maven:3.9.6-eclipse-temurin-17 AS builder
-
-WORKDIR /app
-
-# Copier tous les POMs du monorepo
-COPY pom.xml .
-COPY unionflow-server-api/pom.xml unionflow-server-api/
-COPY unionflow-server-impl-quarkus/pom.xml unionflow-server-impl-quarkus/
-
-# Télécharger les dépendances
-RUN mvn dependency:go-offline -B
-
-# Copier le code source
-COPY unionflow-server-api/src unionflow-server-api/src
-COPY unionflow-server-impl-quarkus/src unionflow-server-impl-quarkus/src
-
-# Construire l'application
-RUN mvn clean package -DskipTests -B -Dquarkus.profile=prod -pl unionflow-server-impl-quarkus -am
-
-## Stage 2 : Image de production
-FROM eclipse-temurin:17-jre-alpine
-
-ENV LANGUAGE='en_US:en'
-ENV QUARKUS_PROFILE=prod
-ENV QUARKUS_HTTP_PORT=8085
-ENV QUARKUS_HTTP_HOST=0.0.0.0
-
-# Variables d'environnement pour production
-ENV DB_URL=jdbc:postgresql://postgresql-service.postgresql.svc.cluster.local:5432/unionflow
-ENV DB_USERNAME=unionflow
-ENV DB_PASSWORD=UnionFlow2025!
-
-ENV QUARKUS_OIDC_AUTH_SERVER_URL=https://security.lions.dev/realms/unionflow
-ENV QUARKUS_OIDC_CLIENT_ID=unionflow-server
-ENV KEYCLOAK_CLIENT_SECRET=unionflow-server-secret-2025
-ENV QUARKUS_OIDC_TLS_VERIFICATION=required
-
-ENV CORS_ORIGINS=https://unionflow.lions.dev,https://security.lions.dev
-ENV QUARKUS_HTTP_CORS_ORIGINS=${CORS_ORIGINS}
-
-# Installer curl pour health checks
-RUN apk add --no-cache curl
-
-# Créer utilisateur non-root
-RUN addgroup -g 185 -S appuser && adduser -u 185 -S appuser -G appuser
-RUN mkdir -p /app/logs && chown -R appuser:appuser /app/logs
-
-USER appuser
-
-# Copier l'application
-COPY --from=builder --chown=appuser:appuser /app/unionflow-server-impl-quarkus/target/quarkus-app/lib/ /deployments/lib/
-COPY --from=builder --chown=appuser:appuser /app/unionflow-server-impl-quarkus/target/quarkus-app/*.jar /deployments/
-COPY --from=builder --chown=appuser:appuser /app/unionflow-server-impl-quarkus/target/quarkus-app/app/ /deployments/app/
-COPY --from=builder --chown=appuser:appuser /app/unionflow-server-impl-quarkus/target/quarkus-app/quarkus/ /deployments/quarkus/
-
-EXPOSE 8085
-
-ENV JAVA_OPTS="-Xmx1g -Xms512m \
- -XX:+UseG1GC \
- -XX:MaxGCPauseMillis=200 \
- -XX:+UseStringDeduplication \
- -Djava.security.egd=file:/dev/./urandom \
- -Dquarkus.profile=${QUARKUS_PROFILE}"
-
-ENTRYPOINT ["sh", "-c", "exec java $JAVA_OPTS -jar /deployments/quarkus-run.jar"]
-
-HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
- CMD curl -f http://localhost:8085/q/health/ready || exit 1
diff --git a/ETAT_MODULES.md b/ETAT_MODULES.md
deleted file mode 100644
index 2b64959..0000000
--- a/ETAT_MODULES.md
+++ /dev/null
@@ -1,343 +0,0 @@
-# État des Modules - UnionFlow
-
-**Date** : 17 janvier 2025
-**Version** : 2.0
-**Statut Global** : 🟢 Migration UUID terminée | 🟢 Nettoyage principal terminé
-
----
-
-## 📦 Vue d'Ensemble des Modules
-
-Le projet UnionFlow est organisé en **4 modules principaux** :
-
-1. **unionflow-server-api** - Définitions d'API (interfaces, DTOs, enums)
-2. **unionflow-server-impl-quarkus** - Implémentation backend Quarkus
-3. **unionflow-client-quarkus-primefaces-freya** - Client web JSF/PrimeFaces
-4. **unionflow-mobile-apps** - Application mobile Flutter
-
----
-
-## 1. 📡 Module `unionflow-server-api`
-
-**Type** : Module Maven (JAR)
-**Rôle** : Définitions d'API, interfaces, DTOs, enums
-**Packaging** : `jar`
-
-### ✅ État de la Migration UUID
-
-| Composant | État | Détails |
-|-----------|------|---------|
-| **DTOs** | ✅ **TERMINÉ** | Tous les DTOs utilisent `UUID` pour les IDs |
-| **Interfaces Service** | ✅ **TERMINÉ** | Toutes les interfaces utilisent `UUID` |
-| **Enums** | ✅ **TERMINÉ** | Aucun changement nécessaire |
-| **Annotations** | ✅ **TERMINÉ** | Aucun changement nécessaire |
-
-### ✅ État du Nettoyage
-
-| Aspect | État | Détails |
-|--------|------|---------|
-| **Données mockées** | ✅ **AUCUNE** | Module API uniquement, pas de données |
-| **TODOs** | ✅ **AUCUN** | Aucun TODO trouvé |
-| **System.out.println** | ✅ **AUCUN** | Aucun System.out.println |
-| **Code de test** | ✅ **SÉPARÉ** | Tests dans `src/test` |
-
-### 📊 Statistiques
-
-- **Fichiers Java** : ~61 fichiers
-- **Tests** : ~22 fichiers de test
-- **Couverture requise** : 100% (configurée dans pom.xml)
-- **Checkstyle** : Configuré avec règles strictes
-
-### 📝 Notes
-
-- Module purement contractuel, aucune implémentation
-- Tous les DTOs migrés vers UUID
-- Documentation OpenAPI générée automatiquement
-
----
-
-## 2. 🔧 Module `unionflow-server-impl-quarkus`
-
-**Type** : Module Maven (JAR)
-**Rôle** : Implémentation backend Quarkus
-**Packaging** : `jar`
-
-### ✅ État de la Migration UUID
-
-| Composant | État | Détails |
-|-----------|------|---------|
-| **Entités** | ✅ **TERMINÉ** | Toutes utilisent `BaseEntity` avec UUID |
-| **Repositories** | ✅ **TERMINÉ** | Tous utilisent `BaseRepository` avec UUID |
-| **Services** | ✅ **TERMINÉ** | Tous utilisent UUID |
-| **Resources REST** | ✅ **TERMINÉ** | Tous les endpoints utilisent UUID |
-| **Migration Flyway** | ✅ **CRÉÉE** | `V1.3__Convert_Ids_To_UUID.sql` |
-
-### ✅ État du Nettoyage
-
-| Aspect | État | Détails |
-|--------|------|---------|
-| **Données mockées** | ✅ **SUPPRIMÉES** | Supprimées de `DashboardServiceImpl`, `CotisationResource` |
-| **TODOs** | ⚠️ **1 FICHIER** | `NotificationService.java` (1 TODO restant) |
-| **System.out.println** | ✅ **SUPPRIMÉS** | `AuthCallbackResource.java` - Remplacés par `log.infof` |
-| **Données de test** | ✅ **SÉPARÉES** | Tests dans `src/test` |
-
-### 📊 Statistiques
-
-- **Entités** : 7 (Membre, Organisation, Evenement, Cotisation, DemandeAide, InscriptionEvenement, BaseEntity)
-- **Repositories** : 5 (MembreRepository, OrganisationRepository, EvenementRepository, CotisationRepository, DemandeAideRepository)
-- **Services** : 15 services
-- **Resources REST** : 7 (MembreResource, OrganisationResource, EvenementResource, CotisationResource, DemandeAideResource, DashboardResource, AnalyticsResource)
-- **TODOs restants** : 1 fichier
-- **System.out.println restants** : 1 fichier (6 occurrences)
-
-### 📝 Notes
-
-- Migration UUID complète
-- `IdConverter` marqué comme `@Deprecated(since = "2025-01-16", forRemoval = true)` (à supprimer si non utilisé)
-- Services analytics implémentés (`AnalyticsService`, `KPICalculatorService`)
-- Gestion d'erreurs avec logging approprié
-- Migration Flyway créée : `V1.3__Convert_Ids_To_UUID.sql`
-
-### 🔄 Actions Restantes
-
-- [x] Remplacer `System.out.println` dans `AuthCallbackResource.java` ✅
-- [ ] Vérifier et supprimer le TODO dans `NotificationService.java`
-- [ ] Tester la migration Flyway sur base de test
-
----
-
-## 3. 🖥️ Module `unionflow-client-quarkus-primefaces-freya`
-
-**Type** : Module Maven (WAR)
-**Rôle** : Client web JSF/PrimeFaces
-**Packaging** : `war`
-
-### ✅ État de la Migration UUID
-
-| Composant | État | Détails |
-|-----------|------|---------|
-| **Services REST Client** | ✅ **TERMINÉ** | Tous utilisent UUID |
-| **DTOs Client** | ✅ **TERMINÉ** | Tous utilisent UUID |
-| **Beans JSF** | ✅ **TERMINÉ** | 14 Beans migrés vers UUID |
-| **UserSession** | ✅ **TERMINÉ** | Utilise UUID |
-| **AuthenticationService** | ✅ **TERMINÉ** | Utilise UUID |
-
-### ✅ État du Nettoyage
-
-| Aspect | État | Détails |
-|--------|------|---------|
-| **Données mockées** | ✅ **SUPPRIMÉES** | Supprimées de tous les Beans principaux |
-| **TODOs** | ⚠️ **3 FICHIERS** | `MembreListeBean.java`, `MembreInscriptionBean.java`, `ValidPhoneNumber.java` |
-| **System.out.println** | ✅ **SUPPRIMÉS** | Tous remplacés par `LOGGER` dans les 14 Beans JSF |
-| **API Réelles** | ✅ **IMPLÉMENTÉES** | Tous les Beans principaux utilisent les services REST |
-
-### 📊 Statistiques
-
-#### Services REST Client
-- **Services créés/migrés** : 8
- - `MembreService` (existant, migré vers UUID)
- - `AssociationService` (existant, migré vers UUID)
- - `EvenementService` (nouveau)
- - `CotisationService` (nouveau)
- - `DemandeAideService` (nouveau)
- - `SouscriptionService` (nouveau)
- - `FormulaireService` (nouveau)
- - `AnalyticsService` (nouveau, path corrigé: `/api/v1/analytics`)
-
-#### DTOs Client
-- **DTOs créés/migrés** : 8
- - `MembreDTO`
- - `AssociationDTO`
- - `EvenementDTO`
- - `CotisationDTO`
- - `DemandeAideDTO`
- - `SouscriptionDTO`
- - `FormulaireDTO`
- - `LoginResponse` (avec classes internes)
-
-#### Beans JSF
-- **Beans migrés vers API réelles** : 14/14 (100%)
- - ✅ `EvenementsBean` - Utilise `EvenementService`
- - ✅ `CotisationsBean` - Utilise `CotisationService`
- - ✅ `DemandesAideBean` - Utilise `DemandeAideService`
- - ✅ `UtilisateursBean` - Utilise `AssociationService`
- - ✅ `MembreRechercheBean` - Utilise `MembreService` et `AssociationService`
- - ✅ `CotisationsGestionBean` - Utilise `CotisationService` et `AssociationService`
- - ✅ `EntitesGestionBean` - Utilise `AssociationService`
- - ✅ `MembreProfilBean` - Utilise `MembreService`
- - ✅ `SuperAdminBean` - Utilise `AssociationService`
- - ✅ `SouscriptionBean` - Utilise `SouscriptionService`
- - ✅ `FormulaireBean` - Utilise `FormulaireService`
- - ✅ `AdminFormulaireBean` - Utilise `FormulaireService`
- - ✅ `RapportsBean` - Utilise `AnalyticsService` et autres services
- - ✅ `DocumentsBean` - Structure prête pour API backend
-
-- **Beans avec System.out.println remplacés** : 14/14 (100%) ✅
- - ✅ `ConfigurationBean` - Tous remplacés par `LOGGER`
- - ✅ `DocumentsBean` - Tous remplacés par `LOGGER`
- - ✅ `CotisationsBean` - Tous remplacés par `LOGGER`
- - ✅ `RapportsBean` - Tous remplacés par `LOGGER`
- - ✅ `MembreRechercheBean` - Tous remplacés par `LOGGER`
- - ✅ `DemandesAideBean` - Tous remplacés par `LOGGER`
- - ✅ `EvenementsBean` - Tous remplacés par `LOGGER`
- - ✅ `EntitesGestionBean` - Tous remplacés par `LOGGER`
- - ✅ `MembreProfilBean` - Tous remplacés par `LOGGER`
- - ✅ `SuperAdminBean` - Tous remplacés par `LOGGER`
- - ✅ `CotisationsGestionBean` - Tous remplacés par `LOGGER`
- - ✅ `DemandesBean` - Tous remplacés par `LOGGER` (LOGGER ajouté)
- - ✅ `MembreListeBean` - Tous remplacés par `LOGGER` (LOGGER ajouté)
- - ✅ `MembreInscriptionBean` - Tous remplacés par `LOGGER` (LOGGER ajouté)
-
-### 📝 Notes
-
-- Tous les Beans principaux migrés vers API réelles
-- `AnalyticsService` corrigé pour correspondre au backend (`/api/v1/analytics`)
-- Gestion d'erreurs avec try-catch et logging approprié
-- Structure prête pour intégration complète avec backend
-
-### 🔄 Actions Restantes
-
-- [x] Remplacer `System.out.println` dans tous les Beans JSF ✅
-- [ ] Vérifier et supprimer les TODOs dans les 3 fichiers
-- [ ] Implémenter les endpoints backend pour Documents (si nécessaire)
-
----
-
-## 4. 📱 Module `unionflow-mobile-apps`
-
-**Type** : Module Flutter (Dart)
-**Rôle** : Application mobile Flutter
-**Packaging** : Application mobile
-
-### ✅ État de la Migration UUID
-
-| Composant | État | Détails |
-|-----------|------|---------|
-| **Models** | ✅ **TERMINÉ** | Tous utilisent `String` pour les IDs (UUID en String) |
-| **Repositories** | ✅ **TERMINÉ** | Tous utilisent UUID (String) |
-| **DataSources** | ✅ **TERMINÉ** | Tous utilisent UUID (String) |
-| **BLoC** | ✅ **TERMINÉ** | Tous utilisent UUID (String) |
-
-### ✅ État du Nettoyage
-
-| Aspect | État | Détails |
-|--------|------|---------|
-| **Données mockées** | ✅ **SUPPRIMÉES** | `dashboard_mock_datasource.dart` supprimé |
-| **Flags useMockData** | ✅ **DÉSACTIVÉS** | `useMockData = false` dans `dashboard_config.dart` |
-| **Mock DataSources** | ✅ **SUPPRIMÉS** | Tous les mock datasources supprimés |
-| **TODOs** | ✅ **AUCUN** | Aucun TODO trouvé dans le code principal |
-
-### 📊 Statistiques
-
-- **Features** : 12 features (dashboard, authentication, members, events, contributions, organizations, profile, reports, settings, help, backup, logs)
-- **Architecture** : Clean Architecture + BLoC Pattern
-- **DataSources mockées supprimées** : 1 (`dashboard_mock_datasource.dart`)
-- **Flags useMockData** : 1 désactivé (`dashboard_config.dart`)
-
-### 📝 Notes
-
-- Application mobile utilise UUIDs en format String (standard Flutter/Dart)
-- Toutes les données mockées supprimées (`dashboard_mock_datasource.dart` supprimé)
-- Flag `useMockData = false` dans `dashboard_config.dart`
-- Utilisation stricte de l'API réelle
-- Architecture propre avec séparation des couches (Clean Architecture + BLoC)
-- 12 features implémentées avec architecture complète
-
-### 🔄 Actions Restantes
-
-- [ ] Vérifier que tous les appels API utilisent bien les UUIDs
-- [ ] Tester l'application mobile avec l'API réelle
-
----
-
-## 📊 Résumé Global
-
-### Migration UUID
-
-| Module | État | Progression | Détails |
-|--------|------|------------|---------|
-| **unionflow-server-api** | ✅ **TERMINÉ** | 100% | Tous les DTOs et interfaces utilisent UUID |
-| **unionflow-server-impl-quarkus** | ✅ **TERMINÉ** | 100% | Entités, repositories, services, resources migrés |
-| **unionflow-client-quarkus-primefaces-freya** | ✅ **TERMINÉ** | 100% | Services, DTOs, Beans JSF migrés |
-| **unionflow-mobile-apps** | ✅ **TERMINÉ** | 100% | Models, repositories, datasources utilisent UUID (String) |
-
-**Total** : ✅ **100% TERMINÉ**
-
-### Nettoyage du Code
-
-| Module | Données Mockées | TODOs | System.out.println | API Réelles |
-|--------|----------------|-------|-------------------|-------------|
-| **unionflow-server-api** | ✅ Aucune | ✅ Aucun | ✅ Aucun | N/A |
-| **unionflow-server-impl-quarkus** | ✅ Supprimées | ⚠️ 1 fichier | ✅ Supprimés | ✅ 100% |
-| **unionflow-client-quarkus-primefaces-freya** | ✅ Supprimées | ⚠️ 3 fichiers | ✅ Supprimés | ✅ 100% |
-| **unionflow-mobile-apps** | ✅ Supprimées | ✅ Aucun | ✅ Aucun | ✅ 100% |
-
-**Total** : 🟢 **Nettoyage principal terminé** | 🟡 **Détails restants à finaliser**
-
----
-
-## 🎯 Prochaines Étapes Prioritaires
-
-### Priorité Haute 🔴
-
-1. **Tester la migration Flyway** sur une base de données de test
-2. **Exécuter les tests complets** pour valider la migration UUID
-3. ~~**Remplacer System.out.println restants** dans les Beans JSF~~ ✅ **TERMINÉ**
-
-### Priorité Moyenne 🟡
-
-4. ~~**Remplacer System.out.println** dans `AuthCallbackResource.java`~~ ✅ **TERMINÉ**
-5. ~~**Vérifier et supprimer les TODOs** restants (4 fichiers au total)~~ ✅ **TERMINÉ**
-6. ~~**Corriger les erreurs de compilation** (backend et client)~~ ✅ **TERMINÉ**
-7. **Implémenter les endpoints backend pour Documents** (si nécessaire)
-
-### Priorité Basse 🟢
-
-7. **Mettre à jour la documentation OpenAPI/Swagger**
-8. **Vérifier et supprimer IdConverter** (si non utilisé)
-9. **Surveiller les performances** avec UUID
-10. **Finaliser la documentation de migration**
-
----
-
-## 📈 Métriques de Qualité
-
-### Couverture de Code
-- **unionflow-server-api** : 100% requis (configuré)
-- **unionflow-server-impl-quarkus** : À vérifier
-- **unionflow-client-quarkus-primefaces-freya** : À vérifier
-- **unionflow-mobile-apps** : À vérifier
-
-### Standards de Code
-- **Checkstyle** : Configuré pour `unionflow-server-api`
-- **Lombok** : Utilisé dans tous les modules Java
-- **Architecture** : Clean Architecture respectée
-
----
-
-## 📝 Notes Finales
-
-- ✅ **Migration UUID complète** sur tous les modules (100%)
-- ✅ **Nettoyage principal terminé** - Données mockées supprimées des Beans principaux
-- ⚠️ **Détails restants** - TODOs (4 fichiers) à finaliser
-- ✅ **System.out.println** - Tous remplacés par LOGGER (100%)
-- ✅ **API réelles** - Tous les modules utilisent strictement l'API réelle
-- ✅ **Services REST** - 8 services REST client créés et configurés
-- ✅ **Beans JSF** - 14/14 Beans migrés vers API réelles (100%)
-- 🟡 **Tests** - À exécuter pour validation complète
-- 🟡 **Migration Flyway** - À tester sur base de test
-
-**Le projet est prêt pour les tests et la validation finale.**
-
-### 🎯 Points Clés
-
-1. **Architecture cohérente** : Tous les modules suivent les mêmes patterns
-2. **Séparation des responsabilités** : API, implémentation, client, mobile bien séparés
-3. **Qualité du code** : Standards élevés avec Checkstyle, Jacoco, tests
-4. **Documentation** : Documentation complète de la migration et de l'état des modules
-
----
-
-**Dernière mise à jour** : 17 janvier 2025
-**Version du document** : 2.0
-
diff --git a/FONCTIONNALITES_PRETES_PRODUCTION.md b/FONCTIONNALITES_PRETES_PRODUCTION.md
deleted file mode 100644
index bb46cb7..0000000
--- a/FONCTIONNALITES_PRETES_PRODUCTION.md
+++ /dev/null
@@ -1,373 +0,0 @@
-# ✅ FONCTIONNALITÉS PRÊTES POUR DÉPLOIEMENT RAPIDE - UNIONFLOW
-
-**Date** : 2025-12-01
-**Statut** : ✅ **PRÊT POUR PRODUCTION** (après configuration variables d'environnement)
-
----
-
-## 📊 RÉSUMÉ EXÉCUTIF
-
-**Backend** : ✅ **100% COMPLET** - Tous les services, resources, entities et repositories sont implémentés et fonctionnels.
-
-**Frontend** : ✅ **70-80% COMPLET** pour les fonctionnalités core - Pages principales fonctionnelles avec validation et gestion d'erreurs.
-
-**Sécurité** : ✅ **CORRIGÉE** - Secrets hardcodés supprimés, CORS configuré, mapper Keycloak corrigé.
-
----
-
-## 🎯 FONCTIONNALITÉS PRÊTES POUR DÉPLOIEMENT IMMÉDIAT
-
-### ✅ 1. AUTHENTIFICATION & SÉCURITÉ ⭐⭐⭐⭐⭐
-
-**Statut** : ✅ **100% PRÊT**
-
-#### Backend
-- ✅ `KeycloakService` : Intégration complète Keycloak OIDC
-- ✅ Filtres de sécurité en place
-- ✅ Gestion des rôles et permissions
-
-#### Frontend
-- ✅ Page de login fonctionnelle
-- ✅ Filtre d'authentification (`AuthenticationFilter`)
-- ✅ Gestion des sessions
-- ✅ Navigation sécurisée
-- ✅ Extraction des rôles depuis JWT
-
-#### Configuration
-- ✅ Secrets via variables d'environnement
-- ✅ CORS configuré avec origines spécifiques
-- ✅ Mapper Keycloak corrigé
-- ✅ Vérification token activée
-
-**Temps de déploiement** : **Immédiat** (après configuration variables)
-
----
-
-### ✅ 2. GESTION DES MEMBRES ⭐⭐⭐⭐⭐
-
-**Statut** : ✅ **80% PRÊT** - Fonctionnel avec quelques améliorations possibles
-
-#### Backend (100% Complet)
-- ✅ `MembreResource` : 26 endpoints REST
- - CRUD complet (GET, POST, PUT, DELETE)
- - Recherche avancée avec filtres
- - Export Excel/PDF/CSV
- - Autocomplete villes/professions
- - Statistiques membres
-- ✅ `MembreService` : Toutes les opérations métier
-- ✅ Validation côté serveur
-
-#### Frontend (80% Fonctionnel)
-- ✅ **`membre/liste.xhtml`** :
- - Liste complète avec filtres
- - Recherche avancée
- - Actions (Voir, Modifier, Contacter, Cotisations)
- - Dialogue de contact implémenté
- - Export/Import
- - Statistiques affichées
-- ✅ **`membre/inscription.xhtml`** :
- - Formulaire complet avec validation
- - Upload photo avec recadrage
- - Tous les champs du DTO
- - Validation côté client et serveur
-- ✅ **`membre/profil.xhtml`** :
- - Affichage complet du profil
- - Onglets (Informations, Cotisations, Événements, Historique)
- - Actions (Modifier, Exporter, Supprimer)
-- ✅ **`membre/recherche.xhtml`** :
- - Recherche avancée avec filtres multiples
-- ✅ **Beans fonctionnels** :
- - `MembreListeBean` : Complet avec dialogue contact
- - `MembreInscriptionBean` : Complet avec validation
- - `MembreProfilBean` : Complet
- - `MembreRechercheBean` : Complet
-
-#### Fonctionnalités
-- ✅ Inscription membre complète
-- ✅ Liste avec filtres et recherche
-- ✅ Profil détaillé
-- ✅ Contact membre (notification)
-- ✅ Export/Import
-- ✅ Statistiques
-
-**Améliorations possibles** (non bloquantes) :
-- Complétion villes/professions depuis serveur (déjà implémenté backend)
-- Quelques TODOs mineurs
-
-**Temps de déploiement** : **Immédiat** - Fonctionnel tel quel
-
----
-
-### ✅ 3. GESTION DES ORGANISATIONS ⭐⭐⭐⭐⭐
-
-**Statut** : ✅ **75% PRÊT** - Fonctionnel
-
-#### Backend (100% Complet)
-- ✅ `OrganisationResource` : 22 endpoints REST
- - CRUD complet
- - Recherche et filtres
- - Gestion logos
-- ✅ `TypeOrganisationResource` : Gestion des types
-- ✅ `OrganisationService` : Toutes les opérations
-
-#### Frontend (75% Fonctionnel)
-- ✅ **`organisation/liste.xhtml`** :
- - Liste avec filtres
- - Actions (Voir, Modifier, Supprimer)
- - Statistiques
-- ✅ **`organisation/nouvelle.xhtml`** :
- - Formulaire de création complet
- - Upload logo
- - Validation
-- ✅ **`organisation/detail.xhtml`** :
- - Affichage détaillé
- - Informations complètes
- - Actions
-- ✅ **Beans fonctionnels** :
- - `OrganisationsBean` : Complet
- - `OrganisationDetailBean` : Complet
- - `TypeOrganisationsAdminBean` : Complet
-
-**Temps de déploiement** : **Immédiat** - Fonctionnel tel quel
-
----
-
-### ✅ 4. DASHBOARD ⭐⭐⭐⭐
-
-**Statut** : ✅ **80% PRÊT**
-
-#### Backend (100% Complet)
-- ✅ `DashboardResource` : Statistiques complètes
-- ✅ `DashboardServiceImpl` : Calculs KPI
-- ✅ Endpoints pour toutes les métriques
-
-#### Frontend (80% Fonctionnel)
-- ✅ **`dashboard.xhtml`** :
- - Statistiques principales
- - Graphiques
- - Actions rapides
-- ✅ **`DashboardBean`** : Fonctionnel avec navigation outcomes
-
-**Temps de déploiement** : **Immédiat**
-
----
-
-### ✅ 5. GESTION DES COTISATIONS ⭐⭐⭐⭐⭐
-
-**Statut** : ✅ **70% PRÊT** - Fonctionnel avec 2 beans manquants
-
-#### Backend (100% Complet)
-- ✅ `CotisationResource` : 31 endpoints REST
- - CRUD complet
- - Paiements
- - Rappels groupés
- - Historique
-- ✅ `CotisationService` : Toutes les opérations
-- ✅ Intégration système de paiements
-
-#### Frontend (70% Fonctionnel)
-- ✅ **`cotisation/collect.xhtml`** : Collecte cotisations
-- ✅ **`cotisation/paiement.xhtml`** : Paiement
-- ✅ **`cotisation/historique.xhtml`** : Historique
-- ✅ **`cotisation/relances.xhtml`** : Relances (avec bean fonctionnel)
-- ✅ **`membre/cotisations.xhtml`** : Cotisations membre
-- ✅ **Beans fonctionnels** :
- - `CotisationsGestionBean` : Complet avec rappels
- - `CotisationsBean` : Complet
- - `MembreCotisationBean` : Complet
-- ⚠️ **Beans manquants** (2-4h de travail) :
- - `CotisationRemindersBean` (pour `reminders.xhtml`)
- - `CotisationReportBean` (pour `report.xhtml`)
-
-**Temps de déploiement** : **1-2 jours** (créer les 2 beans manquants)
-
----
-
-### ✅ 6. GESTION DES ÉVÉNEMENTS ⭐⭐⭐⭐
-
-**Statut** : ✅ **70% PRÊT** - Fonctionnel (corrigé récemment)
-
-#### Backend (100% Complet)
-- ✅ `EvenementResource` : CRUD complet
-- ✅ `EvenementService` : Toutes les opérations
-- ✅ Gestion participants et inscriptions
-
-#### Frontend (70% Fonctionnel)
-- ✅ **`evenement/gestion.xhtml`** : Gestion complète (corrigé)
-- ✅ **`evenement/creation.xhtml`** : Création
-- ✅ **`evenement/calendrier.xhtml`** : Calendrier
-- ✅ **`evenement/participants.xhtml`** : Participants
-- ✅ **`evenement/participation.xhtml`** : Participation
-- ✅ **`EvenementsBean`** : Fonctionnel (corrigé récemment)
-
-**Temps de déploiement** : **Immédiat** - Fonctionnel tel quel
-
----
-
-## 📋 MATRICE DE DÉPLOIEMENT
-
-| Fonctionnalité | Backend | Frontend | Bloquants | Temps Déploiement |
-|----------------|---------|----------|-----------|-------------------|
-| Authentification | ✅ 100% | ✅ 90% | Aucun | Immédiat |
-| Gestion Membres | ✅ 100% | ✅ 80% | Aucun | Immédiat |
-| Gestion Organisations | ✅ 100% | ✅ 75% | Aucun | Immédiat |
-| Dashboard | ✅ 100% | ✅ 80% | Aucun | Immédiat |
-| Gestion Cotisations | ✅ 100% | ✅ 70% | 2 beans manquants | 1-2 jours |
-| Gestion Événements | ✅ 100% | ✅ 70% | Aucun | Immédiat |
-| Rapports | ✅ 100% | ✅ 60% | 2 TODOs | 2-3h |
-
----
-
-## 🚀 PLAN DE DÉPLOIEMENT RECOMMANDÉ
-
-### 🎯 MVP (Minimum Viable Product) - 1 semaine
-
-**Fonctionnalités à déployer** :
-1. ✅ Authentification & Sécurité
-2. ✅ Gestion des Membres
-3. ✅ Gestion des Organisations
-4. ✅ Dashboard
-
-**Temps total** : **5-6 heures** (configuration + déploiement)
-
-**Valeur métier** : Permet de gérer les membres et organisations de base
-
----
-
-### 🎯 Version 1.0 Complète - 2-3 semaines
-
-**Fonctionnalités additionnelles** :
-5. ✅ Gestion des Cotisations (créer 2 beans : 4-6h)
-6. ✅ Gestion des Événements
-7. ✅ Rapports & Statistiques (implémenter 2 TODOs : 2-3h)
-
-**Temps total** : **10-15 jours** (développement + tests + déploiement)
-
-**Valeur métier** : Solution complète de gestion
-
----
-
-## ✅ VALIDATION & GESTION D'ERREURS
-
-### Déjà implémenté
-
-- ✅ **Validation JSF** : `required="true"`, `requiredMessage` sur tous les formulaires
-- ✅ **Gestion erreurs REST** : `RestClientExceptionMapper` avec exceptions personnalisées
-- ✅ **Messages utilisateur** : `FacesMessage` dans tous les beans
-- ✅ **Validation serveur** : Bean Validation sur DTOs
-- ✅ **Gestion exceptions** : Try-catch dans tous les beans avec messages
-
-### Améliorations possibles (non bloquantes)
-
-- Messages d'erreur plus détaillés
-- Validation en temps réel (AJAX) sur certains champs
-- Exception handlers globaux (amélioration future)
-
-**Conclusion** : La validation et gestion d'erreurs est **suffisante pour la production**.
-
----
-
-## 🔐 SÉCURITÉ
-
-### ✅ Corrections appliquées
-
-- ✅ Secrets hardcodés supprimés
-- ✅ CORS configuré correctement
-- ✅ Mapper Keycloak corrigé
-- ✅ Vérification token activée
-- ✅ Documentation `.env.example` créée
-
-### ⚠️ Actions requises avant production
-
-1. **Configurer variables d'environnement** :
- - `KEYCLOAK_CLIENT_SECRET`
- - `DB_PASSWORD`
- - `CORS_ORIGINS` (domaines production uniquement)
-
-2. **Tests de sécurité** :
- - Vérifier `@RolesAllowed` sur resources
- - Tester accès non autorisé
- - Vérifier CORS
-
-**Conclusion** : Sécurité **prête pour production** après configuration.
-
----
-
-## 📊 RÉSUMÉ PAR PRIORITÉ
-
-### Priorité 1 : Déploiement Immédiat (MVP)
-- ✅ Authentification
-- ✅ Gestion Membres
-- ✅ Gestion Organisations
-- ✅ Dashboard
-
-**Temps** : 5-6 heures
-**Valeur** : ⭐⭐⭐⭐⭐
-
-### Priorité 2 : Déploiement Rapide (1-2 jours)
-- ✅ Gestion Cotisations (créer 2 beans)
-
-**Temps** : 4-6 heures
-**Valeur** : ⭐⭐⭐⭐⭐
-
-### Priorité 3 : Déploiement Complet (2-3 semaines)
-- ✅ Gestion Événements
-- ✅ Rapports (implémenter TODOs)
-
-**Temps** : 8-13 heures
-**Valeur** : ⭐⭐⭐⭐
-
----
-
-## ✅ CHECKLIST DÉPLOIEMENT
-
-### Avant déploiement
-- [x] Backend 100% complet
-- [x] Frontend core 70-80% complet
-- [x] Sécurité corrigée
-- [x] Validation implémentée
-- [x] Gestion erreurs implémentée
-- [ ] Variables d'environnement configurées
-- [ ] Tests fonctionnels effectués
-- [ ] Tests de sécurité effectués
-
-### Déploiement
-- [ ] Base de données créée et migrée
-- [ ] Keycloak configuré
-- [ ] Backend déployé
-- [ ] Frontend déployé
-- [ ] HTTPS configuré
-- [ ] Monitoring configuré
-
-### Après déploiement
-- [ ] Tests de régression
-- [ ] Tests utilisateurs
-- [ ] Documentation utilisateur
-- [ ] Formation utilisateurs
-
----
-
-## 🎯 CONCLUSION
-
-**UnionFlow est prêt pour un déploiement rapide en production** avec les fonctionnalités core :
-
-✅ **MVP** : Prêt immédiatement (5-6h)
-✅ **Version 1.0** : Prêt en 1-2 semaines (10-15 jours)
-
-**Points forts** :
-- Backend 100% complet
-- Frontend core 70-80% fonctionnel
-- Sécurité corrigée
-- Validation et gestion d'erreurs en place
-
-**Prochaines étapes** :
-1. Configurer variables d'environnement
-2. Déployer MVP (Authentification, Membres, Organisations, Dashboard)
-3. Créer beans manquants pour Cotisations (4-6h)
-4. Déployer Version 1.0 complète
-
----
-
-**Date de création** : 2025-12-01
-**Statut** : ✅ **PRÊT POUR PRODUCTION**
-
diff --git a/MCD_UNIONFLOW.puml b/MCD_UNIONFLOW.puml
deleted file mode 100644
index 90519c1..0000000
--- a/MCD_UNIONFLOW.puml
+++ /dev/null
@@ -1,480 +0,0 @@
-@startuml MCD_UnionFlow
-!theme plain
-skinparam linetype ortho
-skinparam packageStyle rectangle
-skinparam classAttributeIconSize 0
-
-title Modèle Conceptuel de Données - UnionFlow
-
-' ============================================
-' ENTITÉS DE BASE
-' ============================================
-
-abstract class BaseEntity {
- {abstract} --
- + {PK} id : UUID <>
- + dateCreation : LocalDateTime <>
- + dateModification : LocalDateTime
- + creePar : String
- + modifiePar : String
- + version : Long <>
- + actif : Boolean <>
- --
- + onCreate() : void <<@PrePersist>>
- + onUpdate() : void <<@PreUpdate>>
-}
-
-' ============================================
-' ENTITÉS MÉTIER
-' ============================================
-
-class Organisation {
- + {PK} id : UUID <>
- + dateCreation : LocalDateTime <>
- + dateModification : LocalDateTime <>
- + creePar : String <>
- + modifiePar : String <>
- + version : Long <>
- + actif : Boolean <>
- --
- + nom : String <>
- + nomCourt : String <>
- + typeOrganisation : String <>
- + statut : String <>
- + description : String <>
- + dateFondation : LocalDate
- + numeroEnregistrement : String <>
- --
- ' Contact
- + email : String <>
- + telephone : String <>
- + telephoneSecondaire : String <>
- + emailSecondaire : String <>
- --
- ' Adresse
- + adresse : String <>
- + ville : String <>
- + codePostal : String <>
- + region : String <>
- + pays : String <>
- + latitude : BigDecimal <>
- + longitude : BigDecimal <>
- --
- ' Web
- + siteWeb : String <>
- + logo : String <>
- + reseauxSociaux : String <>
- --
- ' Hiérarchie
- + organisationParenteId : UUID
- + niveauHierarchique : Integer <>
- --
- ' Statistiques
- + nombreMembres : Integer <>
- + nombreAdministrateurs : Integer <>
- --
- ' Finances
- + budgetAnnuel : BigDecimal <>
- + devise : String <>
- + cotisationObligatoire : Boolean <>
- + montantCotisationAnnuelle : BigDecimal <>
- --
- ' Compléments
- + objectifs : String <>
- + activitesPrincipales : String <>
- + certifications : String <>
- + partenaires : String <>
- + notes : String <>
- + organisationPublique : Boolean <>
- + accepteNouveauxMembres : Boolean <>
- --
- + getNomComplet() : String
- + getAncienneteAnnees() : int
- + isRecente() : boolean
- + isActive() : boolean
- + ajouterMembre() : void
- + retirerMembre() : void
- + activer(String utilisateur) : void
- + suspendre(String utilisateur) : void
- + dissoudre(String utilisateur) : void
-}
-
-class Membre {
- + {PK} id : UUID <>
- + dateCreation : LocalDateTime <>
- + dateModification : LocalDateTime <>
- + creePar : String <>
- + modifiePar : String <>
- + version : Long <>
- + actif : Boolean <>
- --
- + numeroMembre : String <>
- + prenom : String <>
- + nom : String <>
- + email : String <>
- + motDePasse : String <>
- + telephone : String <>
- + dateNaissance : LocalDate <>
- + dateAdhesion : LocalDate <>
- + roles : String <>
- --
- + getNomComplet() : String
- + isMajeur() : boolean
- + getAge() : int
-}
-
-class TypeOrganisationEntity {
- + {PK} id : UUID <>
- + dateCreation : LocalDateTime <>
- + dateModification : LocalDateTime <>
- + creePar : String <>
- + modifiePar : String <>
- + version : Long <>
- + actif : Boolean <>
- --
- + code : String <>
- + libelle : String <>
- + description : String <>
- + ordreAffichage : Integer
-}
-
-class Cotisation {
- + {PK} id : UUID <>
- + dateCreation : LocalDateTime <>
- + dateModification : LocalDateTime <>
- + creePar : String <>
- + modifiePar : String <>
- + version : Long <>
- + actif : Boolean <>
- --
- + numeroReference : String <>
- + typeCotisation : String <>
- + montantDu : BigDecimal <>
- + montantPaye : BigDecimal <>
- + codeDevise : String <>
- + statut : String <>
- + dateEcheance : LocalDate <>
- + datePaiement : LocalDateTime
- + description : String <>
- + periode : String <>
- + annee : Integer <>
- + mois : Integer <>
- + observations : String <>
- + recurrente : Boolean <>
- + nombreRappels : Integer <>
- + dateDernierRappel : LocalDateTime
- + valideParId : UUID
- + nomValidateur : String <>
- + dateValidation : LocalDateTime
- + methodePaiement : String <>
- + referencePaiement : String <>
- --
- + getMontantRestant() : BigDecimal
- + isEntierementPayee() : boolean
- + isEnRetard() : boolean
- + genererNumeroReference() : String <>
-}
-
-class Adhesion {
- + {PK} id : UUID <>
- + dateCreation : LocalDateTime <>
- + dateModification : LocalDateTime <>
- + creePar : String <>
- + modifiePar : String <>
- + version : Long <>
- + actif : Boolean <>
- --
- + numeroReference : String <>
- + dateDemande : LocalDate <>
- + fraisAdhesion : BigDecimal <>
- + montantPaye : BigDecimal <>
- + codeDevise : String <>
- + statut : String <>
- + dateApprobation : LocalDate
- + datePaiement : LocalDateTime
- + methodePaiement : String <>
- + referencePaiement : String <>
- + motifRejet : String <>
- + observations : String <>
- + approuvePar : String <>
- + dateValidation : LocalDate
- --
- + isPayeeIntegralement() : boolean
- + isEnAttentePaiement() : boolean
- + getMontantRestant() : BigDecimal
-}
-
-class Evenement {
- + {PK} id : UUID <>
- + dateCreation : LocalDateTime <>
- + dateModification : LocalDateTime <>
- + creePar : String <>
- + modifiePar : String <>
- + version : Long <>
- + actif : Boolean <>
- --
- + titre : String <>
- + description : String <>
- + dateDebut : LocalDateTime <>
- + dateFin : LocalDateTime
- + lieu : String <>
- + adresse : String <>
- + typeEvenement : TypeEvenement <>
- + statut : StatutEvenement <>
- + capaciteMax : Integer <>
- + prix : BigDecimal <>
- + inscriptionRequise : Boolean <>
- + dateLimiteInscription : LocalDateTime
- + instructionsParticulieres : String <>
- + contactOrganisateur : String <>
- + materielRequis : String <>
- + visiblePublic : Boolean <>
- --
- + isOuvertAuxInscriptions() : boolean
- + getNombreInscrits() : int
- + isComplet() : boolean
- + isEnCours() : boolean
- + isTermine() : boolean
- + getDureeEnHeures() : Long
- + getPlacesRestantes() : Integer
- + isMemberInscrit(UUID membreId) : boolean
- + getTauxRemplissage() : Double
-}
-
-class InscriptionEvenement {
- + {PK} id : UUID <>
- + dateCreation : LocalDateTime <>
- + dateModification : LocalDateTime <>
- + creePar : String <>
- + modifiePar : String <>
- + version : Long <>
- + actif : Boolean <>
- --
- + dateInscription : LocalDateTime <>
- + statut : StatutInscription <>
- + commentaire : String <>
- --
- + isConfirmee() : boolean
- + isEnAttente() : boolean
- + isAnnulee() : boolean
- + confirmer() : void
- + annuler(String commentaire) : void
- + mettreEnAttente(String commentaire) : void
- + refuser(String commentaire) : void
-}
-
-class DemandeAide {
- + {PK} id : UUID <>
- + dateCreation : LocalDateTime <>
- + dateModification : LocalDateTime <>
- + creePar : String <>
- + modifiePar : String <>
- + version : Long <>
- + actif : Boolean <>
- --
- + titre : String <>
- + description : String <>
- + typeAide : TypeAide <>
- + statut : StatutAide <>
- + montantDemande : BigDecimal <>
- + montantApprouve : BigDecimal <>
- + dateDemande : LocalDateTime <>
- + dateEvaluation : LocalDateTime
- + dateVersement : LocalDateTime
- + justification : String <>
- + commentaireEvaluation : String <>
- + urgence : Boolean <>
- + documentsFournis : String
- --
- + isEnAttente() : boolean
- + isApprouvee() : boolean
- + isRejetee() : boolean
- + isUrgente() : boolean
- + getPourcentageApprobation() : BigDecimal
-}
-
-class AuditLog {
- + {PK} id : UUID <>
- + dateCreation : LocalDateTime <>
- + dateModification : LocalDateTime <>
- + creePar : String <>
- + modifiePar : String <>
- + version : Long <>
- + actif : Boolean <>
- --
- + typeAction : String <>
- + severite : String <>
- + utilisateur : String <