feat: BackupService real pg_dump, OrganisationService region stats, SystemConfigService overrides

- BackupService: DB-persisted metadata (BackupRecord/BackupConfig entities + V16 Flyway migration),
  real pg_dump execution via ProcessBuilder, soft-delete on deleteBackup, pg_restore manual guidance
- OrganisationService: repartitionRegion now queries Adresse entities (was Map.of() stub)
- SystemConfigService: in-memory config overrides via AtomicReference (no DB dependency)
- SystemMetricsService: null-guard on MemoryMXBean in getSystemStatus() (fixes test NPE)
- Souscription workflow: SouscriptionService, SouscriptionResource, FormuleAbonnementRepository,
  V11 Flyway migration, admin REST clients
- Flyway V8-V15: notes membres, types référence, type orga constraint, seed roles,
  première connexion, Wave checkout URL, Wave telephone column length fix
- .gitignore: added uploads/ and .claude/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
dahoud
2026-04-04 16:14:30 +00:00
parent 9c66909eff
commit e00a9301d8
98 changed files with 5571 additions and 636 deletions

View File

@@ -38,7 +38,7 @@ public class ApprovalResource {
ApprovalService approvalService;
@POST
@RolesAllowed({"ORG_ADMIN", "SUPER_ADMIN", "MEMBRE"})
@RolesAllowed({"ADMIN_ORGANISATION", "SUPER_ADMIN", "MEMBRE"})
@Operation(summary = "Demande une approbation de transaction",
description = "Crée une demande d'approbation pour une transaction financière")
public Response requestApproval(Map<String, Object> request) {
@@ -76,7 +76,7 @@ public class ApprovalResource {
@GET
@Path("/pending")
@RolesAllowed({"ORG_ADMIN", "SUPER_ADMIN"})
@RolesAllowed({"ADMIN_ORGANISATION", "SUPER_ADMIN"})
@Operation(summary = "Récupère les approbations en attente",
description = "Liste toutes les approbations de transactions en attente pour une organisation")
public Response getPendingApprovals(@QueryParam("organizationId") UUID organizationId) {
@@ -95,7 +95,7 @@ public class ApprovalResource {
@GET
@Path("/{approvalId}")
@RolesAllowed({"ORG_ADMIN", "SUPER_ADMIN"})
@RolesAllowed({"ADMIN_ORGANISATION", "SUPER_ADMIN"})
@Operation(summary = "Récupère une approbation par ID",
description = "Retourne les détails d'une approbation spécifique")
public Response getApprovalById(@PathParam("approvalId") UUID approvalId) {
@@ -118,7 +118,7 @@ public class ApprovalResource {
@POST
@Path("/{approvalId}/approve")
@RolesAllowed({"ORG_ADMIN", "SUPER_ADMIN"})
@RolesAllowed({"ADMIN_ORGANISATION", "SUPER_ADMIN"})
@Operation(summary = "Approuve une transaction",
description = "Approuve une demande de transaction avec un commentaire optionnel")
public Response approveTransaction(
@@ -147,7 +147,7 @@ public class ApprovalResource {
@POST
@Path("/{approvalId}/reject")
@RolesAllowed({"ORG_ADMIN", "SUPER_ADMIN"})
@RolesAllowed({"ADMIN_ORGANISATION", "SUPER_ADMIN"})
@Operation(summary = "Rejette une transaction",
description = "Rejette une demande de transaction avec une raison obligatoire")
public Response rejectTransaction(
@@ -176,7 +176,7 @@ public class ApprovalResource {
@GET
@Path("/history")
@RolesAllowed({"ORG_ADMIN", "SUPER_ADMIN"})
@RolesAllowed({"ADMIN_ORGANISATION", "SUPER_ADMIN"})
@Operation(summary = "Récupère l'historique des approbations",
description = "Liste l'historique des approbations avec filtres optionnels")
public Response getApprovalsHistory(
@@ -209,7 +209,7 @@ public class ApprovalResource {
@GET
@Path("/count/pending")
@RolesAllowed({"ORG_ADMIN", "SUPER_ADMIN"})
@RolesAllowed({"ADMIN_ORGANISATION", "SUPER_ADMIN"})
@Operation(summary = "Compte les approbations en attente",
description = "Retourne le nombre d'approbations en attente pour une organisation")
public Response countPendingApprovals(@QueryParam("organizationId") UUID organizationId) {