16415 lines
403 KiB
YAML
16415 lines
403 KiB
YAML
---
|
|
openapi: 3.0.3
|
|
info:
|
|
title: UnionFlow Server API
|
|
description: API REST pour la gestion d'union avec authentification Keycloak
|
|
version: 1.0.0
|
|
servers:
|
|
- url: https://api.lions.dev/unionflow
|
|
tags:
|
|
- name: Adhésions
|
|
description: Gestion des demandes d'adhésion des membres
|
|
- name: Admin - Association
|
|
description: Associer un utilisateur à une organisation (SUPER_ADMIN)
|
|
- name: Admin - Utilisateurs
|
|
description: Gestion des utilisateurs Keycloak (SUPER_ADMIN)
|
|
- name: Alertes LCB-FT
|
|
description: Gestion des alertes Lutte Contre le Blanchiment
|
|
- name: Analytics
|
|
description: APIs pour les analytics et métriques
|
|
- name: Audit
|
|
description: Gestion des logs d'audit
|
|
- name: Comptabilité
|
|
description: "Gestion comptable : comptes, journaux et écritures comptables"
|
|
- name: Compte Adhérent
|
|
description: Vue financière unifiée du membre connecté
|
|
- name: Configuration
|
|
description: Gestion de la configuration système
|
|
- name: Cotisations
|
|
description: Gestion des cotisations des membres
|
|
- name: Dashboard
|
|
description: APIs pour la gestion du dashboard
|
|
- name: Dashboard Membre
|
|
description: API pour le tableau de bord personnel des membres
|
|
- name: Demandes d'aide
|
|
description: Gestion des demandes d'aide solidarité
|
|
- name: Documents
|
|
description: "Gestion documentaire : documents et pièces jointes"
|
|
- name: Export
|
|
description: API d'export des données
|
|
- name: Favoris
|
|
description: Gestion des favoris utilisateur
|
|
- name: Feedback
|
|
description: Commentaires et suggestions utilisateur
|
|
- name: Finance - Approvals
|
|
description: Gestion des approbations de transactions financières
|
|
- name: Finance - Budgets
|
|
description: Gestion des budgets organisationnels
|
|
- name: Finance - Workflow
|
|
description: Statistiques et audits des workflows financiers
|
|
- name: Logs & Monitoring
|
|
description: Gestion des logs système et monitoring
|
|
- name: Membres
|
|
description: API de gestion des membres
|
|
- name: Messagerie
|
|
description: "Messagerie instantanée — conversations, messages, notes vocales"
|
|
- name: Notifications
|
|
description: "Gestion des notifications : envoi, templates et notifications groupé\
|
|
es"
|
|
- name: Organisations
|
|
description: Gestion des organisations
|
|
- name: Paiements
|
|
description: Paiements de cotisations — Wave Checkout et manuel
|
|
- name: Paramètres LCB-FT
|
|
description: Gestion des seuils anti-blanchiment (LCB-FT)
|
|
- name: Propositions d'aide
|
|
description: Gestion des propositions d'aide solidarité
|
|
- name: Préférences
|
|
description: API de gestion des préférences utilisateur
|
|
- name: Rôles
|
|
description: Gestion des rôles et permissions
|
|
- name: Sauvegardes
|
|
description: Gestion des sauvegardes et restaurations
|
|
- name: Status
|
|
description: API de statut du serveur
|
|
- name: Suggestions
|
|
description: Gestion des suggestions utilisateur
|
|
- name: Système
|
|
description: Gestion de la configuration système
|
|
- name: Tickets
|
|
description: Gestion des tickets support
|
|
- name: Types de référence
|
|
description: Gestion des données de référence paramétrables
|
|
- name: Versements
|
|
description: Versements de cotisations — Wave et manuel
|
|
- name: Wave Mobile Money
|
|
description: Gestion des comptes et transactions Wave Mobile Money
|
|
- name: Événements
|
|
description: Gestion des événements de l'union
|
|
paths:
|
|
/api/adhesions:
|
|
get:
|
|
tags:
|
|
- Adhésions
|
|
summary: Lister toutes les adhésions
|
|
description: Récupère la liste paginée de toutes les adhésions
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: Numéro de page (0-based)
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
minimum: 0
|
|
type: integer
|
|
example: 0
|
|
- name: size
|
|
in: query
|
|
description: Taille de la page
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
minimum: 1
|
|
type: integer
|
|
example: 20
|
|
responses:
|
|
"200":
|
|
description: Liste des adhésions récupérée avec succès
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AdhesionResponse"
|
|
"400":
|
|
description: Paramètres de pagination invalides
|
|
"500":
|
|
description: Erreur interne du serveur
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
post:
|
|
tags:
|
|
- Adhésions
|
|
summary: Créer une nouvelle adhésion
|
|
description: Crée une nouvelle demande d'adhésion pour un membre
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateAdhesionRequest"
|
|
responses:
|
|
"201":
|
|
description: Adhésion créée avec succès
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AdhesionResponse"
|
|
"400":
|
|
description: Données invalides
|
|
"404":
|
|
description: Membre ou organisation non trouvé
|
|
"500":
|
|
description: Erreur interne du serveur
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/adhesions/en-attente:
|
|
get:
|
|
tags:
|
|
- Adhésions
|
|
summary: Lister les adhésions en attente
|
|
description: Récupère toutes les adhésions en attente d'approbation
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: Numéro de page
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
minimum: 0
|
|
type: integer
|
|
example: 0
|
|
- name: size
|
|
in: query
|
|
description: Taille de la page
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
minimum: 1
|
|
type: integer
|
|
example: 20
|
|
responses:
|
|
"200":
|
|
description: Liste des adhésions en attente
|
|
"500":
|
|
description: Erreur interne du serveur
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/adhesions/membre/{membreId}:
|
|
get:
|
|
tags:
|
|
- Adhésions
|
|
summary: Lister les adhésions d'un membre
|
|
description: Récupère toutes les adhésions d'un membre spécifique
|
|
parameters:
|
|
- name: membreId
|
|
in: path
|
|
description: Identifiant du membre
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: page
|
|
in: query
|
|
description: Numéro de page
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
minimum: 0
|
|
type: integer
|
|
example: 0
|
|
- name: size
|
|
in: query
|
|
description: Taille de la page
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
minimum: 1
|
|
type: integer
|
|
example: 20
|
|
responses:
|
|
"200":
|
|
description: Liste des adhésions du membre
|
|
"404":
|
|
description: Membre non trouvé
|
|
"500":
|
|
description: Erreur interne du serveur
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/adhesions/organisation/{organisationId}:
|
|
get:
|
|
tags:
|
|
- Adhésions
|
|
summary: Lister les adhésions d'une organisation
|
|
description: Récupère toutes les adhésions d'une organisation spécifique
|
|
parameters:
|
|
- name: organisationId
|
|
in: path
|
|
description: Identifiant de l'organisation
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: page
|
|
in: query
|
|
description: Numéro de page
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
minimum: 0
|
|
type: integer
|
|
example: 0
|
|
- name: size
|
|
in: query
|
|
description: Taille de la page
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
minimum: 1
|
|
type: integer
|
|
example: 20
|
|
responses:
|
|
"200":
|
|
description: Liste des adhésions de l'organisation
|
|
"404":
|
|
description: Organisation non trouvée
|
|
"500":
|
|
description: Erreur interne du serveur
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/adhesions/reference/{numeroReference}:
|
|
get:
|
|
tags:
|
|
- Adhésions
|
|
summary: Récupérer une adhésion par référence
|
|
description: Récupère une adhésion par son numéro de référence unique
|
|
parameters:
|
|
- name: numeroReference
|
|
in: path
|
|
description: Numéro de référence de l'adhésion
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Adhésion trouvée
|
|
"404":
|
|
description: Adhésion non trouvée
|
|
"500":
|
|
description: Erreur interne du serveur
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/adhesions/stats:
|
|
get:
|
|
tags:
|
|
- Adhésions
|
|
summary: Statistiques des adhésions
|
|
description: Récupère les statistiques globales des adhésions
|
|
responses:
|
|
"200":
|
|
description: Statistiques récupérées avec succès
|
|
"500":
|
|
description: Erreur interne du serveur
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/adhesions/statut/{statut}:
|
|
get:
|
|
tags:
|
|
- Adhésions
|
|
summary: Lister les adhésions par statut
|
|
description: Récupère toutes les adhésions ayant un statut spécifique
|
|
parameters:
|
|
- name: statut
|
|
in: path
|
|
description: Statut des adhésions
|
|
required: true
|
|
schema:
|
|
type: string
|
|
example: EN_ATTENTE
|
|
- name: page
|
|
in: query
|
|
description: Numéro de page
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
minimum: 0
|
|
type: integer
|
|
example: 0
|
|
- name: size
|
|
in: query
|
|
description: Taille de la page
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
minimum: 1
|
|
type: integer
|
|
example: 20
|
|
responses:
|
|
"200":
|
|
description: Liste des adhésions avec le statut spécifié
|
|
"400":
|
|
description: Statut invalide
|
|
"500":
|
|
description: Erreur interne du serveur
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/adhesions/{id}:
|
|
get:
|
|
tags:
|
|
- Adhésions
|
|
summary: Récupérer une adhésion par ID
|
|
description: Récupère les détails d'une adhésion spécifique
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: Identifiant de l'adhésion
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Adhésion trouvée
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AdhesionResponse"
|
|
"404":
|
|
description: Adhésion non trouvée
|
|
"500":
|
|
description: Erreur interne du serveur
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
put:
|
|
tags:
|
|
- Adhésions
|
|
summary: Mettre à jour une adhésion
|
|
description: Met à jour les données d'une adhésion existante
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: Identifiant de l'adhésion
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UpdateAdhesionRequest"
|
|
responses:
|
|
"200":
|
|
description: Adhésion mise à jour avec succès
|
|
"400":
|
|
description: Données invalides
|
|
"404":
|
|
description: Adhésion non trouvée
|
|
"500":
|
|
description: Erreur interne du serveur
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
delete:
|
|
tags:
|
|
- Adhésions
|
|
summary: Supprimer une adhésion
|
|
description: Supprime (annule) une adhésion
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: Identifiant de l'adhésion
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"204":
|
|
description: Adhésion supprimée avec succès
|
|
"404":
|
|
description: Adhésion non trouvée
|
|
"409":
|
|
description: Impossible de supprimer une adhésion payée
|
|
"500":
|
|
description: Erreur interne du serveur
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
/api/adhesions/{id}/approuver:
|
|
post:
|
|
tags:
|
|
- Adhésions
|
|
summary: Approuver une adhésion
|
|
description: Approuve une demande d'adhésion en attente
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: Identifiant de l'adhésion
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: approuvePar
|
|
in: query
|
|
description: Nom de l'utilisateur qui approuve
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Adhésion approuvée avec succès
|
|
"400":
|
|
description: L'adhésion ne peut pas être approuvée
|
|
"404":
|
|
description: Adhésion non trouvée
|
|
"500":
|
|
description: Erreur interne du serveur
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/adhesions/{id}/paiement:
|
|
post:
|
|
tags:
|
|
- Adhésions
|
|
summary: Enregistrer un paiement
|
|
description: Enregistre un paiement pour une adhésion approuvée
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: Identifiant de l'adhésion
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: methodePaiement
|
|
in: query
|
|
description: Méthode de paiement
|
|
schema:
|
|
type: string
|
|
- name: montantPaye
|
|
in: query
|
|
description: Montant payé
|
|
required: true
|
|
schema:
|
|
type: number
|
|
- name: referencePaiement
|
|
in: query
|
|
description: Référence du paiement
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Paiement enregistré avec succès
|
|
"400":
|
|
description: L'adhésion ne peut pas recevoir de paiement
|
|
"404":
|
|
description: Adhésion non trouvée
|
|
"500":
|
|
description: Erreur interne du serveur
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/adhesions/{id}/rejeter:
|
|
post:
|
|
tags:
|
|
- Adhésions
|
|
summary: Rejeter une adhésion
|
|
description: Rejette une demande d'adhésion en attente
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: Identifiant de l'adhésion
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: motifRejet
|
|
in: query
|
|
description: Motif du rejet
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Adhésion rejetée avec succès
|
|
"400":
|
|
description: L'adhésion ne peut pas être rejetée
|
|
"404":
|
|
description: Adhésion non trouvée
|
|
"500":
|
|
description: Erreur interne du serveur
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/admin/associer-organisation:
|
|
post:
|
|
tags:
|
|
- Admin - Association
|
|
summary: Associer un compte à une organisation
|
|
description: "En tant que super admin, associe l'utilisateur (email) à une organisation.\
|
|
\ Si aucun Membre n'existe pour cet email, une fiche minimale est créée. L'utilisateur\
|
|
\ pourra alors voir cette organisation dans « Mes organisations »."
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AssocierOrganisationRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
/api/admin/users:
|
|
get:
|
|
tags:
|
|
- Admin - Utilisateurs
|
|
summary: Lister les utilisateurs
|
|
description: Liste paginée des utilisateurs du realm
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: search
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
post:
|
|
tags:
|
|
- Admin - Utilisateurs
|
|
summary: Créer un utilisateur
|
|
description: Crée un nouvel utilisateur Keycloak (proxy lions-user-manager)
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UserDTO"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
/api/admin/users/roles:
|
|
get:
|
|
tags:
|
|
- Admin - Utilisateurs
|
|
summary: Liste des rôles realm
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
/api/admin/users/{id}:
|
|
get:
|
|
tags:
|
|
- Admin - Utilisateurs
|
|
summary: Détail utilisateur
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
put:
|
|
tags:
|
|
- Admin - Utilisateurs
|
|
summary: Mettre à jour un utilisateur
|
|
description: Met à jour un utilisateur (au minimum enabled)
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UserDTO"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
/api/admin/users/{id}/roles:
|
|
get:
|
|
tags:
|
|
- Admin - Utilisateurs
|
|
summary: Rôles d'un utilisateur
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
put:
|
|
tags:
|
|
- Admin - Utilisateurs
|
|
summary: Mettre à jour les rôles d'un utilisateur
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
/api/alertes-lcb-ft:
|
|
get:
|
|
tags:
|
|
- Alertes LCB-FT
|
|
summary: Liste des alertes LCB-FT
|
|
description: Récupère les alertes avec filtrage et pagination
|
|
parameters:
|
|
- name: dateDebut
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: dateFin
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: organisationId
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
type: integer
|
|
- name: traitee
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: typeAlerte
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/alertes-lcb-ft/stats/non-traitees:
|
|
get:
|
|
tags:
|
|
- Alertes LCB-FT
|
|
summary: Statistiques alertes
|
|
description: Nombre d'alertes non traitées
|
|
parameters:
|
|
- name: organisationId
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/alertes-lcb-ft/{id}:
|
|
get:
|
|
tags:
|
|
- Alertes LCB-FT
|
|
summary: Détails d'une alerte
|
|
description: Récupère une alerte par son ID
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/alertes-lcb-ft/{id}/traiter:
|
|
post:
|
|
tags:
|
|
- Alertes LCB-FT
|
|
summary: Traiter une alerte
|
|
description: Marque une alerte comme traitée avec un commentaire
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/alerts:
|
|
get:
|
|
tags:
|
|
- Logs & Monitoring
|
|
summary: Récupérer toutes les alertes actives
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/SystemAlertResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- MODERATEUR
|
|
/api/alerts/config:
|
|
get:
|
|
tags:
|
|
- Logs & Monitoring
|
|
summary: Récupérer la configuration des alertes système
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AlertConfigResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- MODERATEUR
|
|
put:
|
|
tags:
|
|
- Logs & Monitoring
|
|
summary: Mettre à jour la configuration des alertes système
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UpdateAlertConfigRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AlertConfigResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/alerts/{id}/acknowledge:
|
|
post:
|
|
tags:
|
|
- Logs & Monitoring
|
|
summary: Acquitter une alerte
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- MODERATEUR
|
|
/api/audit:
|
|
get:
|
|
tags:
|
|
- Audit
|
|
summary: Liste tous les logs d'audit
|
|
description: Récupère tous les logs avec pagination
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 50
|
|
type: integer
|
|
- name: sortBy
|
|
in: query
|
|
schema:
|
|
default: dateHeure
|
|
type: string
|
|
- name: sortOrder
|
|
in: query
|
|
schema:
|
|
default: desc
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
post:
|
|
tags:
|
|
- Audit
|
|
summary: Enregistre un nouveau log d'audit
|
|
description: Crée une nouvelle entrée dans le journal d'audit
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateAuditLogRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/audit/rechercher:
|
|
post:
|
|
tags:
|
|
- Audit
|
|
summary: Recherche des logs avec filtres
|
|
description: Recherche avancée avec filtres multiples
|
|
parameters:
|
|
- name: dateDebut
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: dateFin
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: ipAddress
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: module
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: severite
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 50
|
|
type: integer
|
|
- name: typeAction
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: utilisateur
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/audit/statistiques:
|
|
get:
|
|
tags:
|
|
- Audit
|
|
summary: Récupère les statistiques d'audit
|
|
description: Retourne les statistiques globales des logs
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/backups:
|
|
get:
|
|
tags:
|
|
- Sauvegardes
|
|
summary: Lister toutes les sauvegardes disponibles
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/BackupResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- MODERATEUR
|
|
post:
|
|
tags:
|
|
- Sauvegardes
|
|
summary: Créer une nouvelle sauvegarde
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateBackupRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/backups/config:
|
|
get:
|
|
tags:
|
|
- Sauvegardes
|
|
summary: Récupérer la configuration des sauvegardes automatiques
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BackupConfigResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- MODERATEUR
|
|
put:
|
|
tags:
|
|
- Sauvegardes
|
|
summary: Mettre à jour la configuration des sauvegardes automatiques
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UpdateBackupConfigRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BackupConfigResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/backups/restore:
|
|
post:
|
|
tags:
|
|
- Sauvegardes
|
|
summary: Restaurer une sauvegarde
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/RestoreBackupRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/backups/restore-point:
|
|
post:
|
|
tags:
|
|
- Sauvegardes
|
|
summary: Créer un point de restauration
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/backups/{id}:
|
|
get:
|
|
tags:
|
|
- Sauvegardes
|
|
summary: Récupérer une sauvegarde par ID
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BackupResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- MODERATEUR
|
|
delete:
|
|
tags:
|
|
- Sauvegardes
|
|
summary: Supprimer une sauvegarde
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/comptabilite/comptes:
|
|
get:
|
|
tags:
|
|
- Comptabilité
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
post:
|
|
tags:
|
|
- Comptabilité
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateCompteComptableRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/comptabilite/comptes/{id}:
|
|
get:
|
|
tags:
|
|
- Comptabilité
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/comptabilite/ecritures:
|
|
post:
|
|
tags:
|
|
- Comptabilité
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateEcritureComptableRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/comptabilite/ecritures/journal/{journalId}:
|
|
get:
|
|
tags:
|
|
- Comptabilité
|
|
parameters:
|
|
- name: journalId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/comptabilite/ecritures/organisation/{organisationId}:
|
|
get:
|
|
tags:
|
|
- Comptabilité
|
|
parameters:
|
|
- name: organisationId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/comptabilite/ecritures/{id}:
|
|
get:
|
|
tags:
|
|
- Comptabilité
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/comptabilite/journaux:
|
|
get:
|
|
tags:
|
|
- Comptabilité
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
post:
|
|
tags:
|
|
- Comptabilité
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateJournalComptableRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/comptabilite/journaux/{id}:
|
|
get:
|
|
tags:
|
|
- Comptabilité
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/configuration:
|
|
get:
|
|
tags:
|
|
- Configuration
|
|
summary: Lister toutes les configurations
|
|
responses:
|
|
"200":
|
|
description: Liste des configurations récupérée avec succès
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
/api/configuration/{cle}:
|
|
get:
|
|
tags:
|
|
- Configuration
|
|
summary: Récupérer une configuration par clé
|
|
parameters:
|
|
- name: cle
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Configuration trouvée
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
put:
|
|
tags:
|
|
- Configuration
|
|
summary: Mettre à jour une configuration
|
|
parameters:
|
|
- name: cle
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UpdateConfigurationRequest"
|
|
responses:
|
|
"200":
|
|
description: Configuration mise à jour avec succès
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
/api/cotisations:
|
|
get:
|
|
tags:
|
|
- Cotisations
|
|
summary: Lister toutes les cotisations
|
|
description: Récupère la liste paginée (format résumé)
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
minimum: 0
|
|
type: integer
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
minimum: 1
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: Liste récupérée
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CotisationSummaryResponse"
|
|
"500":
|
|
description: Erreur interne
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
post:
|
|
tags:
|
|
- Cotisations
|
|
summary: Créer une cotisation
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateCotisationRequest"
|
|
responses:
|
|
"201":
|
|
description: Créée
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CotisationResponse"
|
|
"400":
|
|
description: Invalide
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/cotisations/en-retard:
|
|
get:
|
|
tags:
|
|
- Cotisations
|
|
summary: Cotisations en retard
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/cotisations/membre/{membreId}:
|
|
get:
|
|
tags:
|
|
- Cotisations
|
|
summary: Cotisations d'un membre
|
|
parameters:
|
|
- name: membreId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/cotisations/mes-cotisations:
|
|
get:
|
|
tags:
|
|
- Cotisations
|
|
summary: Mes cotisations
|
|
description: Liste toutes les cotisations du membre connecté
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 50
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: Liste récupérée
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- MEMBRE
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/cotisations/mes-cotisations/en-attente:
|
|
get:
|
|
tags:
|
|
- Cotisations
|
|
summary: Mes cotisations en attente
|
|
description: Cotisations personnelles en attente de paiement
|
|
responses:
|
|
"200":
|
|
description: Liste récupérée
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- MEMBRE
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/cotisations/mes-cotisations/synthese:
|
|
get:
|
|
tags:
|
|
- Cotisations
|
|
summary: Synthèse de mes cotisations
|
|
description: "KPI personnels : cotisations à payer, montant dû, etc."
|
|
responses:
|
|
"200":
|
|
description: Synthèse récupérée
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- MEMBRE
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/cotisations/public:
|
|
get:
|
|
tags:
|
|
- Cotisations
|
|
summary: Cotisations publiques
|
|
description: Liste des cotisations simplifiée
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
minimum: 0
|
|
type: integer
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
minimum: 1
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: Liste des cotisations
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/cotisations/rappels/groupes:
|
|
post:
|
|
tags:
|
|
- Cotisations
|
|
summary: Rappels groupés
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
format: uuid
|
|
pattern: "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/cotisations/recherche:
|
|
get:
|
|
tags:
|
|
- Cotisations
|
|
summary: Recherche avancée
|
|
parameters:
|
|
- name: annee
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
type: integer
|
|
- name: membreId
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: mois
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
type: integer
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
type: integer
|
|
- name: statut
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: typeCotisation
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/cotisations/reference/{numeroReference}:
|
|
get:
|
|
tags:
|
|
- Cotisations
|
|
summary: Cotisation par référence
|
|
parameters:
|
|
- name: numeroReference
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/cotisations/statistiques:
|
|
get:
|
|
tags:
|
|
- Cotisations
|
|
summary: Statistiques globales
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/cotisations/statistiques/periode:
|
|
get:
|
|
tags:
|
|
- Cotisations
|
|
summary: Statistiques par période
|
|
parameters:
|
|
- name: annee
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
type: integer
|
|
- name: mois
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/cotisations/stats:
|
|
get:
|
|
tags:
|
|
- Cotisations
|
|
summary: Statistiques globales
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/cotisations/statut/{statut}:
|
|
get:
|
|
tags:
|
|
- Cotisations
|
|
summary: Cotisations par statut
|
|
parameters:
|
|
- name: statut
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/cotisations/{id}:
|
|
get:
|
|
tags:
|
|
- Cotisations
|
|
summary: Détails d'une cotisation
|
|
description: Récupère les détails complets
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Succès
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CotisationResponse"
|
|
"404":
|
|
description: Non trouvé
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
put:
|
|
tags:
|
|
- Cotisations
|
|
summary: Mettre à jour une cotisation
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UpdateCotisationRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
delete:
|
|
tags:
|
|
- Cotisations
|
|
summary: Annuler une cotisation
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
/api/cotisations/{id}/payer:
|
|
put:
|
|
tags:
|
|
- Cotisations
|
|
summary: Payer une cotisation
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties: {}
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- TRESORIER
|
|
/api/dashboard/membre/me:
|
|
get:
|
|
tags:
|
|
- Dashboard Membre
|
|
summary: Récupérer la synthèse du dashboard pour le membre connecté
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- MEMBRE
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/demandes-aide:
|
|
get:
|
|
tags:
|
|
- Demandes d'aide
|
|
summary: Liste les demandes d'aide avec pagination
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/DemandeAideResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- MEMBRE
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
post:
|
|
tags:
|
|
- Demandes d'aide
|
|
summary: Crée une nouvelle demande d'aide
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateDemandeAideRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- MEMBRE
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/demandes-aide/mes:
|
|
get:
|
|
tags:
|
|
- Demandes d'aide
|
|
summary: Mes demandes d'aide
|
|
description: Liste les demandes du membre connecté
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 50
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/DemandeAideResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- MEMBRE
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/demandes-aide/search:
|
|
get:
|
|
tags:
|
|
- Demandes d'aide
|
|
summary: "Recherche les demandes d'aide avec filtres (statut, type, urgence)"
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
type: integer
|
|
- name: statut
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: type
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: urgence
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/DemandeAideResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- MEMBRE
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/demandes-aide/{id}:
|
|
get:
|
|
tags:
|
|
- Demandes d'aide
|
|
summary: Récupère une demande d'aide par son ID
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DemandeAideResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- MEMBRE
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
put:
|
|
tags:
|
|
- Demandes d'aide
|
|
summary: Met à jour une demande d'aide
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UpdateDemandeAideRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DemandeAideResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- MEMBRE
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/demandes-aide/{id}/approuver:
|
|
put:
|
|
tags:
|
|
- Demandes d'aide
|
|
summary: Approuver une demande d'aide
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: motif
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DemandeAideResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- MEMBRE
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/demandes-aide/{id}/rejeter:
|
|
put:
|
|
tags:
|
|
- Demandes d'aide
|
|
summary: Rejeter une demande d'aide
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: motif
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DemandeAideResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- MEMBRE
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/documents:
|
|
post:
|
|
tags:
|
|
- Documents
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateDocumentRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/documents/mes-documents:
|
|
get:
|
|
tags:
|
|
- Documents
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/documents/pieces-jointes:
|
|
post:
|
|
tags:
|
|
- Documents
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreatePieceJointeRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/documents/upload:
|
|
post:
|
|
tags:
|
|
- Documents
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
file:
|
|
$ref: "#/components/schemas/FileUpload"
|
|
description:
|
|
type: string
|
|
typeDocument:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/documents/{documentId}/pieces-jointes:
|
|
get:
|
|
tags:
|
|
- Documents
|
|
parameters:
|
|
- name: documentId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/documents/{id}:
|
|
get:
|
|
tags:
|
|
- Documents
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/documents/{id}/telechargement:
|
|
post:
|
|
tags:
|
|
- Documents
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/evenements:
|
|
get:
|
|
tags:
|
|
- Événements
|
|
summary: Lister tous les événements actifs
|
|
description: Récupère la liste paginée des événements actifs
|
|
parameters:
|
|
- name: direction
|
|
in: query
|
|
description: Direction du tri (asc/desc)
|
|
schema:
|
|
default: asc
|
|
type: string
|
|
example: asc
|
|
- name: page
|
|
in: query
|
|
description: Numéro de page (0-based)
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
minimum: 0
|
|
type: integer
|
|
example: 0
|
|
- name: size
|
|
in: query
|
|
description: Taille de la page
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
minimum: 1
|
|
type: integer
|
|
example: 20
|
|
- name: sort
|
|
in: query
|
|
description: Champ de tri
|
|
schema:
|
|
default: dateDebut
|
|
type: string
|
|
example: dateDebut
|
|
responses:
|
|
"200":
|
|
description: Liste des événements actifs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PagedResponseEvenementMobileDTO"
|
|
"401":
|
|
description: Non authentifié
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- PRESIDENT
|
|
- SECRETAIRE
|
|
- ORGANISATEUR_EVENEMENT
|
|
- MEMBRE
|
|
- USER
|
|
post:
|
|
tags:
|
|
- Événements
|
|
summary: Créer un nouvel événement
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Evenement"
|
|
responses:
|
|
"201":
|
|
description: Événement créé avec succès
|
|
"400":
|
|
description: Données invalides
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- PRESIDENT
|
|
- SECRETAIRE
|
|
- ORGANISATEUR_EVENEMENT
|
|
/api/evenements/a-venir:
|
|
get:
|
|
tags:
|
|
- Événements
|
|
summary: Événements à venir
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 10
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- PRESIDENT
|
|
- SECRETAIRE
|
|
- ORGANISATEUR_EVENEMENT
|
|
- MEMBRE
|
|
/api/evenements/count:
|
|
get:
|
|
tags:
|
|
- Événements
|
|
summary: Compter les événements
|
|
description: Compte le nombre d'événements dans la base
|
|
responses:
|
|
"200":
|
|
description: Nombre d'événements
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/evenements/mes-inscriptions:
|
|
get:
|
|
tags:
|
|
- Événements
|
|
summary: Mes inscriptions aux événements
|
|
responses:
|
|
"200":
|
|
description: Liste de mes inscriptions
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- PRESIDENT
|
|
- SECRETAIRE
|
|
- ORGANISATEUR_EVENEMENT
|
|
- MEMBRE
|
|
- USER
|
|
/api/evenements/publics:
|
|
get:
|
|
tags:
|
|
- Événements
|
|
summary: Événements publics
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/api/evenements/recherche:
|
|
get:
|
|
tags:
|
|
- Événements
|
|
summary: Rechercher des événements
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: q
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- PRESIDENT
|
|
- SECRETAIRE
|
|
- ORGANISATEUR_EVENEMENT
|
|
- MEMBRE
|
|
/api/evenements/statistiques:
|
|
get:
|
|
tags:
|
|
- Événements
|
|
summary: Statistiques des événements
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- PRESIDENT
|
|
- SECRETAIRE
|
|
- ORGANISATEUR_EVENEMENT
|
|
/api/evenements/test:
|
|
get:
|
|
tags:
|
|
- Événements
|
|
summary: Test de connectivité
|
|
description: Endpoint public pour tester la connectivité
|
|
responses:
|
|
"200":
|
|
description: Test réussi
|
|
/api/evenements/type/{type}:
|
|
get:
|
|
tags:
|
|
- Événements
|
|
summary: Événements par type
|
|
parameters:
|
|
- name: type
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- PRESIDENT
|
|
- SECRETAIRE
|
|
- ORGANISATEUR_EVENEMENT
|
|
- MEMBRE
|
|
/api/evenements/{id}:
|
|
get:
|
|
tags:
|
|
- Événements
|
|
summary: Récupérer un événement par ID
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: UUID de l'événement
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Événement trouvé
|
|
"404":
|
|
description: Événement non trouvé
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- PRESIDENT
|
|
- SECRETAIRE
|
|
- ORGANISATEUR_EVENEMENT
|
|
- MEMBRE
|
|
put:
|
|
tags:
|
|
- Événements
|
|
summary: Mettre à jour un événement
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Evenement"
|
|
responses:
|
|
"200":
|
|
description: Événement mis à jour avec succès
|
|
"404":
|
|
description: Événement non trouvé
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- PRESIDENT
|
|
- SECRETAIRE
|
|
- ORGANISATEUR_EVENEMENT
|
|
delete:
|
|
tags:
|
|
- Événements
|
|
summary: Supprimer un événement
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"204":
|
|
description: Événement supprimé avec succès
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- PRESIDENT
|
|
- ORGANISATEUR_EVENEMENT
|
|
/api/evenements/{id}/feedback:
|
|
post:
|
|
tags:
|
|
- Événements
|
|
summary: Soumettre un feedback sur l'événement
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties: {}
|
|
responses:
|
|
"201":
|
|
description: Feedback créé
|
|
"400":
|
|
description: Données invalides ou feedback déjà soumis
|
|
"404":
|
|
description: Événement non trouvé
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- PRESIDENT
|
|
- SECRETAIRE
|
|
- ORGANISATEUR_EVENEMENT
|
|
- MEMBRE
|
|
- USER
|
|
/api/evenements/{id}/feedbacks:
|
|
get:
|
|
tags:
|
|
- Événements
|
|
summary: Liste des feedbacks de l'événement
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Liste des feedbacks
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- PRESIDENT
|
|
- SECRETAIRE
|
|
- ORGANISATEUR_EVENEMENT
|
|
- MEMBRE
|
|
- USER
|
|
/api/evenements/{id}/inscriptions:
|
|
post:
|
|
tags:
|
|
- Événements
|
|
summary: S'inscrire à un événement
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"201":
|
|
description: Inscription créée
|
|
"400":
|
|
description: Déjà inscrit ou événement complet
|
|
"404":
|
|
description: Événement non trouvé
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- PRESIDENT
|
|
- SECRETAIRE
|
|
- ORGANISATEUR_EVENEMENT
|
|
- MEMBRE
|
|
- USER
|
|
delete:
|
|
tags:
|
|
- Événements
|
|
summary: Se désinscrire d'un événement
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"204":
|
|
description: Désinscription effectuée
|
|
"404":
|
|
description: Inscription non trouvée
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- PRESIDENT
|
|
- SECRETAIRE
|
|
- ORGANISATEUR_EVENEMENT
|
|
- MEMBRE
|
|
- USER
|
|
/api/evenements/{id}/me/inscrit:
|
|
get:
|
|
tags:
|
|
- Événements
|
|
summary: Statut d'inscription de l'utilisateur connecté
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: UUID de l'événement
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Statut d'inscription
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- PRESIDENT
|
|
- SECRETAIRE
|
|
- ORGANISATEUR_EVENEMENT
|
|
- MEMBRE
|
|
- USER
|
|
/api/evenements/{id}/participants:
|
|
get:
|
|
tags:
|
|
- Événements
|
|
summary: Liste des participants
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Liste des participants
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- PRESIDENT
|
|
- SECRETAIRE
|
|
- ORGANISATEUR_EVENEMENT
|
|
- MEMBRE
|
|
/api/evenements/{id}/statut:
|
|
patch:
|
|
tags:
|
|
- Événements
|
|
summary: Changer le statut d'un événement
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: statut
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- PRESIDENT
|
|
- ORGANISATEUR_EVENEMENT
|
|
/api/export/cotisations/csv:
|
|
get:
|
|
tags:
|
|
- Export
|
|
summary: Exporter les cotisations en CSV
|
|
parameters:
|
|
- name: associationId
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: statut
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: type
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Fichier CSV généré
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
post:
|
|
tags:
|
|
- Export
|
|
summary: Exporter des cotisations spécifiques en CSV
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
format: uuid
|
|
pattern: "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Fichier CSV généré
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/export/cotisations/recus:
|
|
post:
|
|
tags:
|
|
- Export
|
|
summary: Générer des reçus groupés
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
format: uuid
|
|
pattern: "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Reçus générés
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/export/cotisations/{cotisationId}/recu:
|
|
get:
|
|
tags:
|
|
- Export
|
|
summary: Générer un reçu de paiement
|
|
parameters:
|
|
- name: cotisationId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Reçu généré
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/export/cotisations/{cotisationId}/recu/pdf:
|
|
get:
|
|
tags:
|
|
- Export
|
|
summary: Générer un reçu de paiement en PDF
|
|
parameters:
|
|
- name: cotisationId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: PDF généré
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/export/rapport/mensuel:
|
|
get:
|
|
tags:
|
|
- Export
|
|
summary: Générer un rapport mensuel
|
|
parameters:
|
|
- name: annee
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
type: integer
|
|
- name: associationId
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: mois
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: Rapport généré
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/export/rapport/mensuel/pdf:
|
|
get:
|
|
tags:
|
|
- Export
|
|
summary: Générer un rapport mensuel en PDF
|
|
parameters:
|
|
- name: annee
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
type: integer
|
|
- name: associationId
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: mois
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: PDF généré
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/favoris:
|
|
post:
|
|
tags:
|
|
- Favoris
|
|
summary: Créer un nouveau favori
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateFavoriRequest"
|
|
responses:
|
|
"201":
|
|
description: Favori créé avec succès
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/favoris/utilisateur/{utilisateurId}:
|
|
get:
|
|
tags:
|
|
- Favoris
|
|
summary: Lister les favoris d'un utilisateur
|
|
parameters:
|
|
- name: utilisateurId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Liste des favoris récupérée avec succès
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/favoris/utilisateur/{utilisateurId}/statistiques:
|
|
get:
|
|
tags:
|
|
- Favoris
|
|
summary: Obtenir les statistiques des favoris d'un utilisateur
|
|
parameters:
|
|
- name: utilisateurId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Statistiques récupérées avec succès
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/favoris/{id}:
|
|
delete:
|
|
tags:
|
|
- Favoris
|
|
summary: Supprimer un favori
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"204":
|
|
description: Favori supprimé avec succès
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/feedback:
|
|
post:
|
|
tags:
|
|
- Feedback
|
|
summary: Envoyer un commentaire / feedback
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/FeedbackRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/finance/approvals:
|
|
post:
|
|
tags:
|
|
- Finance - Approvals
|
|
summary: Demande une approbation de transaction
|
|
description: Crée une demande d'approbation pour une transaction financière
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties: {}
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
- MEMBRE
|
|
/api/finance/approvals/count/pending:
|
|
get:
|
|
tags:
|
|
- Finance - Approvals
|
|
summary: Compte les approbations en attente
|
|
description: Retourne le nombre d'approbations en attente pour une organisation
|
|
parameters:
|
|
- name: organizationId
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/finance/approvals/history:
|
|
get:
|
|
tags:
|
|
- Finance - Approvals
|
|
summary: Récupère l'historique des approbations
|
|
description: Liste l'historique des approbations avec filtres optionnels
|
|
parameters:
|
|
- name: endDate
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: organizationId
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: startDate
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: status
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/finance/approvals/pending:
|
|
get:
|
|
tags:
|
|
- Finance - Approvals
|
|
summary: Récupère les approbations en attente
|
|
description: Liste toutes les approbations de transactions en attente pour une
|
|
organisation
|
|
parameters:
|
|
- name: organizationId
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/finance/approvals/{approvalId}:
|
|
get:
|
|
tags:
|
|
- Finance - Approvals
|
|
summary: Récupère une approbation par ID
|
|
description: Retourne les détails d'une approbation spécifique
|
|
parameters:
|
|
- name: approvalId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/finance/approvals/{approvalId}/approve:
|
|
post:
|
|
tags:
|
|
- Finance - Approvals
|
|
summary: Approuve une transaction
|
|
description: Approuve une demande de transaction avec un commentaire optionnel
|
|
parameters:
|
|
- name: approvalId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApproveTransactionRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/finance/approvals/{approvalId}/reject:
|
|
post:
|
|
tags:
|
|
- Finance - Approvals
|
|
summary: Rejette une transaction
|
|
description: Rejette une demande de transaction avec une raison obligatoire
|
|
parameters:
|
|
- name: approvalId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/RejectTransactionRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/finance/audit-logs:
|
|
get:
|
|
tags:
|
|
- Finance - Workflow
|
|
summary: Récupère les logs d'audit financier
|
|
description: Liste les logs d'audit avec filtres optionnels
|
|
parameters:
|
|
- name: endDate
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: entityType
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: limit
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 100
|
|
type: integer
|
|
- name: operation
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: organizationId
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: severity
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: startDate
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/finance/audit-logs/anomalies:
|
|
get:
|
|
tags:
|
|
- Finance - Workflow
|
|
summary: Récupère les anomalies financières détectées
|
|
description: Liste les anomalies et transactions suspectes
|
|
parameters:
|
|
- name: endDate
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: organizationId
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: startDate
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/finance/audit-logs/export:
|
|
post:
|
|
tags:
|
|
- Finance - Workflow
|
|
summary: Exporte les logs d'audit
|
|
description: Génère un export des logs d'audit au format spécifié (CSV/PDF)
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties: {}
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/finance/budgets:
|
|
get:
|
|
tags:
|
|
- Finance - Budgets
|
|
summary: Récupère les budgets
|
|
description: Liste tous les budgets d'une organisation avec filtres optionnels
|
|
parameters:
|
|
- name: organizationId
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: status
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: year
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
post:
|
|
tags:
|
|
- Finance - Budgets
|
|
summary: Crée un nouveau budget
|
|
description: Crée un budget avec ses lignes budgétaires
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateBudgetRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/finance/budgets/{budgetId}:
|
|
get:
|
|
tags:
|
|
- Finance - Budgets
|
|
summary: Récupère un budget par ID
|
|
description: Retourne les détails complets d'un budget
|
|
parameters:
|
|
- name: budgetId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
put:
|
|
tags:
|
|
- Finance - Budgets
|
|
summary: Met à jour un budget
|
|
description: "Modifie un budget existant (nom, description, lignes, statut)"
|
|
parameters:
|
|
- name: budgetId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties: {}
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
delete:
|
|
tags:
|
|
- Finance - Budgets
|
|
summary: Supprime un budget
|
|
description: Supprime logiquement un budget (soft delete)
|
|
parameters:
|
|
- name: budgetId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/finance/budgets/{budgetId}/tracking:
|
|
get:
|
|
tags:
|
|
- Finance - Budgets
|
|
summary: Récupère le suivi budgétaire
|
|
description: Retourne les statistiques de suivi et réalisation du budget
|
|
parameters:
|
|
- name: budgetId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/finance/stats:
|
|
get:
|
|
tags:
|
|
- Finance - Workflow
|
|
summary: Statistiques du workflow financier
|
|
description: Retourne les statistiques globales du workflow financier
|
|
parameters:
|
|
- name: endDate
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: organizationId
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: startDate
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/logs/export:
|
|
get:
|
|
tags:
|
|
- Logs & Monitoring
|
|
summary: Exporter les logs en CSV
|
|
parameters:
|
|
- name: level
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: source
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: timeRange
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/logs/search:
|
|
post:
|
|
tags:
|
|
- Logs & Monitoring
|
|
summary: Rechercher dans les logs système
|
|
description: "Recherche avec filtres (niveau, source, texte, dates)"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/LogSearchRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/SystemLogResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- MODERATEUR
|
|
/api/membres:
|
|
get:
|
|
tags:
|
|
- Membres
|
|
summary: Lister les membres
|
|
parameters:
|
|
- name: direction
|
|
in: query
|
|
description: Direction du tri (asc/desc)
|
|
schema:
|
|
default: asc
|
|
type: string
|
|
- name: page
|
|
in: query
|
|
description: Numéro de page (0-based)
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: size
|
|
in: query
|
|
description: Taille de la page
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
type: integer
|
|
- name: sort
|
|
in: query
|
|
description: Champ de tri
|
|
schema:
|
|
default: nom
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Liste des membres avec pagination
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PagedResponseMembreSummaryResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MODERATEUR
|
|
post:
|
|
tags:
|
|
- Membres
|
|
summary: Créer un nouveau membre
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateMembreRequest"
|
|
responses:
|
|
"201":
|
|
description: Membre créé avec succès
|
|
"400":
|
|
description: Données invalides
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/membres/accepter-invitation/{token}:
|
|
post:
|
|
tags:
|
|
- Membres
|
|
summary: Accepter une invitation
|
|
description: Valide le token d'invitation et passe l'adhésion en EN_ATTENTE_VALIDATION.
|
|
parameters:
|
|
- name: token
|
|
in: path
|
|
description: Token d'invitation
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Invitation acceptée
|
|
"400":
|
|
description: Token invalide ou expiré
|
|
/api/membres/actifs:
|
|
get:
|
|
tags:
|
|
- Membres
|
|
summary: Membres actifs
|
|
description: Liste tous les membres dont le compte est actif
|
|
responses:
|
|
"200":
|
|
description: Liste des membres actifs
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- TRESORIER
|
|
/api/membres/auth/change-password:
|
|
post:
|
|
tags:
|
|
- Compte Adhérent
|
|
summary: Changer le mot de passe (mobile)
|
|
description: Endpoint dédié à l'application mobile. Bypass lions-user-manager
|
|
via API Admin Keycloak directe.
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak: []
|
|
/api/membres/autocomplete/professions:
|
|
get:
|
|
tags:
|
|
- Membres
|
|
summary: Obtenir la liste des professions pour autocomplétion
|
|
parameters:
|
|
- name: query
|
|
in: query
|
|
description: Terme de recherche (optionnel)
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Liste des professions distinctes
|
|
/api/membres/autocomplete/villes:
|
|
get:
|
|
tags:
|
|
- Membres
|
|
summary: Obtenir la liste des villes pour autocomplétion
|
|
parameters:
|
|
- name: query
|
|
in: query
|
|
description: Terme de recherche (optionnel)
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Liste des villes distinctes
|
|
/api/membres/export:
|
|
get:
|
|
tags:
|
|
- Membres
|
|
summary: "Exporter des membres en Excel, CSV ou PDF"
|
|
parameters:
|
|
- name: associationId
|
|
in: query
|
|
description: ID de l'organisation (optionnel)
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: colonnes
|
|
in: query
|
|
description: Colonnes à exporter
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
- name: dateAdhesionDebut
|
|
in: query
|
|
description: Date adhésion début
|
|
schema:
|
|
type: string
|
|
- name: dateAdhesionFin
|
|
in: query
|
|
description: Date adhésion fin
|
|
schema:
|
|
type: string
|
|
- name: format
|
|
in: query
|
|
description: Format d'export
|
|
schema:
|
|
default: EXCEL
|
|
type: string
|
|
- name: formaterDates
|
|
in: query
|
|
description: Formater les dates
|
|
schema:
|
|
default: true
|
|
type: boolean
|
|
- name: inclureHeaders
|
|
in: query
|
|
description: Inclure les en-têtes
|
|
schema:
|
|
default: true
|
|
type: boolean
|
|
- name: inclureStatistiques
|
|
in: query
|
|
description: Inclure un onglet statistiques (Excel uniquement)
|
|
schema:
|
|
default: false
|
|
type: boolean
|
|
- name: motDePasse
|
|
in: query
|
|
description: Mot de passe pour chiffrer le fichier (optionnel)
|
|
schema:
|
|
type: string
|
|
- name: statut
|
|
in: query
|
|
description: Statut des membres
|
|
schema:
|
|
type: string
|
|
- name: type
|
|
in: query
|
|
description: Type de membre
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Fichier exporté
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/membres/export/count:
|
|
get:
|
|
tags:
|
|
- Membres
|
|
summary: Compter les membres selon les filtres pour l'export
|
|
parameters:
|
|
- name: associationId
|
|
in: query
|
|
description: ID de l'organisation (optionnel)
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: dateAdhesionDebut
|
|
in: query
|
|
description: Date adhésion début
|
|
schema:
|
|
type: string
|
|
- name: dateAdhesionFin
|
|
in: query
|
|
description: Date adhésion fin
|
|
schema:
|
|
type: string
|
|
- name: statut
|
|
in: query
|
|
description: Statut des membres
|
|
schema:
|
|
type: string
|
|
- name: type
|
|
in: query
|
|
description: Type de membre
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Nombre de membres correspondant aux critères
|
|
/api/membres/export/selection:
|
|
post:
|
|
tags:
|
|
- Membres
|
|
summary: Exporter une sélection de membres en Excel
|
|
parameters:
|
|
- name: format
|
|
in: query
|
|
description: Format d'export
|
|
schema:
|
|
default: EXCEL
|
|
type: string
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
format: uuid
|
|
pattern: "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Fichier Excel généré
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/membres/import:
|
|
post:
|
|
tags:
|
|
- Membres
|
|
summary: Importer des membres depuis un fichier Excel ou CSV
|
|
description: "Format strict (colonnes obligatoires: nom, prenom, email, telephone).\
|
|
\ Si organisationId est fourni, les membres sont rattachés à l'organisation\
|
|
\ et le quota souscription (tranche) est respecté."
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
file:
|
|
$ref: "#/components/schemas/FileUpload"
|
|
fileName:
|
|
type: string
|
|
organisationId:
|
|
type: string
|
|
typeMembreDefaut:
|
|
type: string
|
|
mettreAJourExistants:
|
|
type: boolean
|
|
ignorerErreurs:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: Import terminé
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/membres/import/modele:
|
|
get:
|
|
tags:
|
|
- Membres
|
|
summary: Télécharger le modèle Excel pour l'import
|
|
responses:
|
|
"200":
|
|
description: Modèle Excel généré
|
|
/api/membres/me:
|
|
get:
|
|
tags:
|
|
- Membres
|
|
summary: Récupérer le membre connecté
|
|
responses:
|
|
"200":
|
|
description: Membre connecté trouvé ou auto-provisionné
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- MEMBRE
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/membres/me/suivis:
|
|
get:
|
|
tags:
|
|
- Membres
|
|
summary: Liste des ids des membres suivis (réseau)
|
|
responses:
|
|
"200":
|
|
description: Liste des UUID suivis
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- MEMBRE
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MODERATEUR
|
|
- CONSULTANT
|
|
- SECRETAIRE
|
|
- GESTIONNAIRE_RH
|
|
/api/membres/mes-organisations:
|
|
get:
|
|
tags:
|
|
- Membres
|
|
summary: Organisations du membre connecté
|
|
description: Retourne la liste des organisations auxquelles le membre connecté
|
|
appartient (multi-org)
|
|
responses:
|
|
"200":
|
|
description: Liste des organisations
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- MEMBRE
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
- MODERATEUR
|
|
/api/membres/mon-compte:
|
|
get:
|
|
tags:
|
|
- Compte Adhérent
|
|
summary: Compte adhérent du membre connecté
|
|
description: "Agrège cotisations, épargne et crédit en une vue financière unifié\
|
|
e."
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- MEMBRE
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/membres/mon-compte/mot-de-passe:
|
|
put:
|
|
tags:
|
|
- Compte Adhérent
|
|
summary: Changer le mot de passe au premier login
|
|
description: Met à jour le mot de passe Keycloak et lève le flag premiereConnexion.
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak: []
|
|
/api/membres/mon-statut:
|
|
get:
|
|
tags:
|
|
- Compte Adhérent
|
|
summary: Statut du compte du membre connecté
|
|
description: "Retourne statutCompte : ACTIF, EN_ATTENTE_VALIDATION, SUSPENDU\
|
|
\ ou DESACTIVE."
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak: []
|
|
/api/membres/numero/{numeroMembre}:
|
|
get:
|
|
tags:
|
|
- Membres
|
|
summary: Trouver un membre par son numéro
|
|
parameters:
|
|
- name: numeroMembre
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Membre trouvé
|
|
"404":
|
|
description: Membre non trouvé
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MODERATEUR
|
|
- MEMBRE
|
|
- USER
|
|
/api/membres/organisation/{organisationId}:
|
|
get:
|
|
tags:
|
|
- Membres
|
|
summary: Membres d'une organisation
|
|
description: Liste les membres actifs d'une organisation
|
|
parameters:
|
|
- name: organisationId
|
|
in: path
|
|
description: UUID de l'organisation
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Liste des membres
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- TRESORIER
|
|
/api/membres/recherche:
|
|
get:
|
|
tags:
|
|
- Membres
|
|
summary: Rechercher des membres par nom ou prénom
|
|
parameters:
|
|
- name: direction
|
|
in: query
|
|
description: Direction du tri (asc/desc)
|
|
schema:
|
|
default: asc
|
|
type: string
|
|
- name: page
|
|
in: query
|
|
description: Numéro de page (0-based)
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: q
|
|
in: query
|
|
description: Terme de recherche
|
|
schema:
|
|
type: string
|
|
- name: size
|
|
in: query
|
|
description: Taille de la page
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
type: integer
|
|
- name: sort
|
|
in: query
|
|
description: Champ de tri
|
|
schema:
|
|
default: nom
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Résultats de la recherche
|
|
/api/membres/recherche-avancee:
|
|
get:
|
|
tags:
|
|
- Membres
|
|
summary: Recherche avancée de membres avec filtres multiples (DEPRECATED)
|
|
parameters:
|
|
- name: actif
|
|
in: query
|
|
description: Statut actif (true/false)
|
|
schema:
|
|
type: boolean
|
|
- name: dateAdhesionMax
|
|
in: query
|
|
description: Date d'adhésion maximum (YYYY-MM-DD)
|
|
schema:
|
|
type: string
|
|
- name: dateAdhesionMin
|
|
in: query
|
|
description: Date d'adhésion minimum (YYYY-MM-DD)
|
|
schema:
|
|
type: string
|
|
- name: direction
|
|
in: query
|
|
description: Direction du tri (asc/desc)
|
|
schema:
|
|
default: asc
|
|
type: string
|
|
- name: page
|
|
in: query
|
|
description: Numéro de page (0-based)
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: q
|
|
in: query
|
|
description: Terme de recherche
|
|
schema:
|
|
type: string
|
|
- name: size
|
|
in: query
|
|
description: Taille de la page
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
type: integer
|
|
- name: sort
|
|
in: query
|
|
description: Champ de tri
|
|
schema:
|
|
default: nom
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Résultats de la recherche avancée
|
|
deprecated: true
|
|
/api/membres/search/advanced:
|
|
post:
|
|
tags:
|
|
- Membres
|
|
summary: Recherche avancée de membres avec critères multiples
|
|
description: |
|
|
Recherche sophistiquée de membres avec de nombreux critères de filtrage :
|
|
- Recherche textuelle dans nom, prénom, email
|
|
- Filtres par organisation, rôles, statut
|
|
- Filtres par âge, région, profession
|
|
- Filtres par dates d'adhésion
|
|
- Résultats paginés avec statistiques
|
|
|
|
Réservée aux super administrateurs et administrateurs.
|
|
parameters:
|
|
- name: direction
|
|
in: query
|
|
description: Direction du tri (asc/desc)
|
|
schema:
|
|
default: asc
|
|
type: string
|
|
example: asc
|
|
- name: page
|
|
in: query
|
|
description: Numéro de page (0-based)
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
example: 0
|
|
- name: size
|
|
in: query
|
|
description: Taille de la page
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
type: integer
|
|
example: 20
|
|
- name: sort
|
|
in: query
|
|
description: Champ de tri
|
|
schema:
|
|
default: nom
|
|
type: string
|
|
example: nom
|
|
requestBody:
|
|
description: Critères de recherche avancée
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/MembreSearchCriteria"
|
|
examples:
|
|
Exemple de critères:
|
|
value:
|
|
query: marie
|
|
statut: ACTIF
|
|
ageMin: 25
|
|
ageMax: 45
|
|
region: Dakar
|
|
roles:
|
|
- PRESIDENT
|
|
- SECRETAIRE
|
|
dateAdhesionMin: 2020-01-01
|
|
includeInactifs: false
|
|
required: false
|
|
responses:
|
|
"200":
|
|
description: Recherche effectuée avec succès
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/MembreSearchResultDTO"
|
|
examples:
|
|
Exemple de résultats:
|
|
value: |-
|
|
{
|
|
"membres": [...],
|
|
"totalElements": 247,
|
|
"totalPages": 13,
|
|
"currentPage": 0,
|
|
"pageSize": 20,
|
|
"hasNext": true,
|
|
"hasPrevious": false,
|
|
"executionTimeMs": 45,
|
|
"statistics": {
|
|
"membresActifs": 230,
|
|
"membresInactifs": 17,
|
|
"ageMoyen": 34.5,
|
|
"nombreOrganisations": 12
|
|
}
|
|
}
|
|
"400":
|
|
description: Critères de recherche invalides
|
|
content:
|
|
application/json:
|
|
examples: {}
|
|
"403":
|
|
description: "Accès non autorisé - Rôle SUPER_ADMIN, ADMIN ou ADMIN_ORGANISATION\
|
|
\ requis"
|
|
"500":
|
|
description: Erreur interne du serveur
|
|
security:
|
|
- keycloak: []
|
|
/api/membres/stats:
|
|
get:
|
|
tags:
|
|
- Membres
|
|
summary: Obtenir les statistiques avancées des membres
|
|
responses:
|
|
"200":
|
|
description: Statistiques complètes des membres
|
|
/api/membres/{id}:
|
|
get:
|
|
tags:
|
|
- Membres
|
|
summary: Récupérer un membre par son ID
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: UUID du membre
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Membre trouvé
|
|
"404":
|
|
description: Membre non trouvé
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MODERATEUR
|
|
- MEMBRE
|
|
- USER
|
|
put:
|
|
tags:
|
|
- Membres
|
|
summary: Mettre à jour un membre existant
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: UUID du membre
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UpdateMembreRequest"
|
|
responses:
|
|
"200":
|
|
description: Membre mis à jour avec succès
|
|
"404":
|
|
description: Membre non trouvé
|
|
"400":
|
|
description: Données invalides
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
delete:
|
|
tags:
|
|
- Membres
|
|
summary: Désactiver un membre
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: UUID du membre
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"204":
|
|
description: Membre désactivé avec succès
|
|
"404":
|
|
description: Membre non trouvé
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
/api/membres/{id}/activer:
|
|
put:
|
|
tags:
|
|
- Membres
|
|
summary: Activer un membre
|
|
description: Passe le membre en statut ACTIF et lui assigne le rôle MEMBRE_ACTIF
|
|
dans Keycloak.
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: UUID du membre
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Membre activé avec succès
|
|
"404":
|
|
description: Membre non trouvé
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
/api/membres/{id}/affecter-organisation:
|
|
put:
|
|
tags:
|
|
- Membres
|
|
summary: Affecter un membre à une organisation
|
|
description: Crée le lien MembreOrganisation (statut EN_ATTENTE_VALIDATION)
|
|
si le membre n'est pas encore rattaché à une organisation. Idempotent.
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: UUID du membre
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: organisationId
|
|
in: query
|
|
description: UUID de l'organisation
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Membre affecté à l'organisation
|
|
"404":
|
|
description: Membre ou organisation non trouvé
|
|
"403":
|
|
description: Accès réservé aux ADMIN / SUPER_ADMIN
|
|
"401":
|
|
description: Not Authorized
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
/api/membres/{id}/promouvoir-admin-organisation:
|
|
put:
|
|
tags:
|
|
- Membres
|
|
summary: Promouvoir un membre en administrateur d'organisation
|
|
description: Passe le membre en statut ACTIF et lui assigne le rôle ADMIN_ORGANISATION
|
|
dans Keycloak. Réservé aux super administrateurs de la plateforme. Le compte
|
|
est immédiatement opérationnel sans validation intermédiaire.
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: UUID du membre à promouvoir
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Membre promu administrateur d'organisation
|
|
"404":
|
|
description: Membre non trouvé
|
|
"403":
|
|
description: Accès réservé aux ADMIN / SUPER_ADMIN
|
|
"401":
|
|
description: Not Authorized
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
/api/membres/{id}/reinitialiser-mot-de-passe:
|
|
put:
|
|
tags:
|
|
- Membres
|
|
summary: Réinitialiser le mot de passe d'un membre
|
|
description: Génère un nouveau mot de passe temporaire et le définit dans Keycloak.
|
|
Le nouveau mot de passe est retourné une seule fois dans la réponse.
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: UUID du membre
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: "Mot de passe réinitialisé, retourné dans motDePasseTemporaire"
|
|
"404":
|
|
description: Membre non trouvé
|
|
"400":
|
|
description: Le membre n'a pas de compte Keycloak
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/membres/{id}/suivre:
|
|
post:
|
|
tags:
|
|
- Membres
|
|
summary: Suivre un membre (réseau)
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: UUID du membre à suivre
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Suivi activé
|
|
"400":
|
|
description: Requête invalide
|
|
"404":
|
|
description: Membre cible non trouvé
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- MEMBRE
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MODERATEUR
|
|
- CONSULTANT
|
|
- SECRETAIRE
|
|
- GESTIONNAIRE_RH
|
|
delete:
|
|
tags:
|
|
- Membres
|
|
summary: Ne plus suivre un membre (réseau)
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: UUID du membre à ne plus suivre
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Suivi désactivé
|
|
"400":
|
|
description: Requête invalide
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- MEMBRE
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MODERATEUR
|
|
- CONSULTANT
|
|
- SECRETAIRE
|
|
- GESTIONNAIRE_RH
|
|
/api/membres/{membreId}/adhesion:
|
|
get:
|
|
tags:
|
|
- Membres
|
|
summary: Statut d'adhésion d'un membre dans une organisation
|
|
parameters:
|
|
- name: membreId
|
|
in: path
|
|
description: UUID du membre
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: organisationId
|
|
in: query
|
|
description: UUID de l'organisation
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Statut d'adhésion
|
|
"404":
|
|
description: Aucun lien membre-organisation trouvé
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/membres/{membreId}/adhesion/activer:
|
|
put:
|
|
tags:
|
|
- Membres
|
|
summary: Activer l'adhésion par membreId + organisationId
|
|
parameters:
|
|
- name: membreId
|
|
in: path
|
|
description: UUID du membre
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: organisationId
|
|
in: query
|
|
description: UUID de l'organisation
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Adhésion activée
|
|
"404":
|
|
description: Lien membre-organisation introuvable
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/membres/{membreId}/adhesion/radier:
|
|
put:
|
|
tags:
|
|
- Membres
|
|
summary: Radier par membreId + organisationId
|
|
parameters:
|
|
- name: membreId
|
|
in: path
|
|
description: UUID du membre
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: organisationId
|
|
in: query
|
|
description: UUID de l'organisation
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Adhésion radiée
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/membres/{membreId}/adhesion/suspendre:
|
|
put:
|
|
tags:
|
|
- Membres
|
|
summary: Suspendre l'adhésion par membreId + organisationId
|
|
parameters:
|
|
- name: membreId
|
|
in: path
|
|
description: UUID du membre
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: organisationId
|
|
in: query
|
|
description: UUID de l'organisation
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Adhésion suspendue
|
|
"404":
|
|
description: Lien membre-organisation introuvable
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/membres/{membreId}/inviter-organisation:
|
|
put:
|
|
tags:
|
|
- Membres
|
|
summary: Inviter un membre dans une organisation
|
|
description: Crée une invitation (statut INVITE) pour un membre existant. Token
|
|
valable 7 jours.
|
|
parameters:
|
|
- name: membreId
|
|
in: path
|
|
description: UUID du membre à inviter
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: organisationId
|
|
in: query
|
|
description: UUID de l'organisation
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: roleOrg
|
|
in: query
|
|
description: Rôle proposé (optionnel)
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Invitation créée
|
|
"404":
|
|
description: Membre ou organisation introuvable
|
|
"409":
|
|
description: Membre déjà lié à cette organisation
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/membres/{membreOrgId}/activer-adhesion:
|
|
put:
|
|
tags:
|
|
- Membres
|
|
summary: Activer une adhésion
|
|
description: "Transitions autorisées : EN_ATTENTE_VALIDATION, INVITE, SUSPENDU\
|
|
\ → ACTIF."
|
|
parameters:
|
|
- name: membreOrgId
|
|
in: path
|
|
description: UUID du lien membre-organisation
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Adhésion activée
|
|
"404":
|
|
description: Lien membre-organisation introuvable
|
|
"409":
|
|
description: Transition non autorisée depuis le statut actuel
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/membres/{membreOrgId}/archiver-adhesion:
|
|
put:
|
|
tags:
|
|
- Membres
|
|
summary: Archiver une adhésion
|
|
description: Conserve l'historique sans supprimer le lien membre-organisation.
|
|
parameters:
|
|
- name: membreOrgId
|
|
in: path
|
|
description: UUID du lien membre-organisation
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Adhésion archivée
|
|
"404":
|
|
description: Lien membre-organisation introuvable
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/membres/{membreOrgId}/radier-adhesion:
|
|
put:
|
|
tags:
|
|
- Membres
|
|
summary: Radier un membre d'une organisation
|
|
parameters:
|
|
- name: membreOrgId
|
|
in: path
|
|
description: UUID du lien membre-organisation
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Adhésion radiée
|
|
"404":
|
|
description: Lien membre-organisation introuvable
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/membres/{membreOrgId}/suspendre-adhesion:
|
|
put:
|
|
tags:
|
|
- Membres
|
|
summary: Suspendre une adhésion
|
|
description: "Transition autorisée : ACTIF → SUSPENDU."
|
|
parameters:
|
|
- name: membreOrgId
|
|
in: path
|
|
description: UUID du lien membre-organisation
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Adhésion suspendue
|
|
"404":
|
|
description: Lien membre-organisation introuvable
|
|
"409":
|
|
description: Transition non autorisée
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/messagerie/blocages:
|
|
get:
|
|
tags:
|
|
- Messagerie
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
post:
|
|
tags:
|
|
- Messagerie
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BloquerMembreRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/messagerie/blocages/{membreId}:
|
|
delete:
|
|
tags:
|
|
- Messagerie
|
|
parameters:
|
|
- name: membreId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: organisationId
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/messagerie/conversations:
|
|
get:
|
|
tags:
|
|
- Messagerie
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/messagerie/conversations/directe:
|
|
post:
|
|
tags:
|
|
- Messagerie
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DemarrerConversationDirecteRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/messagerie/conversations/role:
|
|
post:
|
|
tags:
|
|
- Messagerie
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DemarrerConversationRoleRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/messagerie/conversations/{conversationId}/messages/{messageId}:
|
|
delete:
|
|
tags:
|
|
- Messagerie
|
|
parameters:
|
|
- name: conversationId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: messageId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/messagerie/conversations/{id}:
|
|
get:
|
|
tags:
|
|
- Messagerie
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
delete:
|
|
tags:
|
|
- Messagerie
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/messagerie/conversations/{id}/lire:
|
|
put:
|
|
tags:
|
|
- Messagerie
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/messagerie/conversations/{id}/messages:
|
|
get:
|
|
tags:
|
|
- Messagerie
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
post:
|
|
tags:
|
|
- Messagerie
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EnvoyerMessageRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/messagerie/politique/{organisationId}:
|
|
get:
|
|
tags:
|
|
- Messagerie
|
|
parameters:
|
|
- name: organisationId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
put:
|
|
tags:
|
|
- Messagerie
|
|
parameters:
|
|
- name: organisationId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/MettreAJourPolitiqueRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/monitoring/metrics:
|
|
get:
|
|
tags:
|
|
- Logs & Monitoring
|
|
summary: Récupérer les métriques système en temps réel
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SystemMetricsResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- MODERATEUR
|
|
/api/notifications:
|
|
post:
|
|
tags:
|
|
- Notifications
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateNotificationRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/notifications/en-attente-envoi:
|
|
get:
|
|
tags:
|
|
- Notifications
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MODERATEUR
|
|
- MEMBRE
|
|
- USER
|
|
/api/notifications/groupees:
|
|
post:
|
|
tags:
|
|
- Notifications
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NotificationGroupeeRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/notifications/me:
|
|
get:
|
|
tags:
|
|
- Notifications
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MODERATEUR
|
|
- MEMBRE
|
|
- USER
|
|
/api/notifications/me/non-lues:
|
|
get:
|
|
tags:
|
|
- Notifications
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MODERATEUR
|
|
- MEMBRE
|
|
- USER
|
|
/api/notifications/membre/{membreId}:
|
|
get:
|
|
tags:
|
|
- Notifications
|
|
parameters:
|
|
- name: membreId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MODERATEUR
|
|
- MEMBRE
|
|
- USER
|
|
/api/notifications/membre/{membreId}/non-lues:
|
|
get:
|
|
tags:
|
|
- Notifications
|
|
parameters:
|
|
- name: membreId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MODERATEUR
|
|
- MEMBRE
|
|
- USER
|
|
/api/notifications/templates:
|
|
post:
|
|
tags:
|
|
- Notifications
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateTemplateNotificationRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/notifications/{id}:
|
|
get:
|
|
tags:
|
|
- Notifications
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MODERATEUR
|
|
- MEMBRE
|
|
- USER
|
|
/api/notifications/{id}/marquer-lue:
|
|
post:
|
|
tags:
|
|
- Notifications
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MODERATEUR
|
|
- MEMBRE
|
|
- USER
|
|
/api/organisations:
|
|
get:
|
|
tags:
|
|
- Organisations
|
|
summary: Lister les organisations
|
|
description: Récupère la liste des organisations actives avec pagination
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: Numéro de page (commence à 0)
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
example: 0
|
|
- name: recherche
|
|
in: query
|
|
description: Terme de recherche (nom ou nom court)
|
|
schema:
|
|
type: string
|
|
- name: size
|
|
in: query
|
|
description: Taille de la page
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
type: integer
|
|
example: 20
|
|
responses:
|
|
"200":
|
|
description: Liste des organisations récupérée avec succès
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PagedResponse"
|
|
"401":
|
|
description: Non authentifié
|
|
"403":
|
|
description: Non autorisé
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
post:
|
|
tags:
|
|
- Organisations
|
|
summary: Créer une nouvelle organisation
|
|
description: Crée une nouvelle organisation dans le système
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateOrganisationRequest"
|
|
responses:
|
|
"201":
|
|
description: Organisation créée avec succès
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/OrganisationResponse"
|
|
"400":
|
|
description: Données invalides
|
|
"409":
|
|
description: Organisation déjà existante
|
|
"401":
|
|
description: Non authentifié
|
|
"403":
|
|
description: Non autorisé
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
/api/organisations/mes:
|
|
get:
|
|
tags:
|
|
- Organisations
|
|
summary: Mes organisations
|
|
description: Liste les organisations auxquelles le membre connecté appartient
|
|
(pour ADMIN_ORGANISATION)
|
|
responses:
|
|
"200":
|
|
description: Liste des organisations du membre
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/OrganisationResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/organisations/recherche:
|
|
get:
|
|
tags:
|
|
- Organisations
|
|
summary: Recherche avancée
|
|
description: Recherche d'organisations avec critères multiples
|
|
parameters:
|
|
- name: nom
|
|
in: query
|
|
description: Nom de l'organisation
|
|
schema:
|
|
type: string
|
|
- name: page
|
|
in: query
|
|
description: Numéro de page
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: pays
|
|
in: query
|
|
description: Pays
|
|
schema:
|
|
type: string
|
|
- name: region
|
|
in: query
|
|
description: Région
|
|
schema:
|
|
type: string
|
|
- name: size
|
|
in: query
|
|
description: Taille de la page
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
type: integer
|
|
- name: statut
|
|
in: query
|
|
description: Statut
|
|
schema:
|
|
type: string
|
|
- name: type
|
|
in: query
|
|
description: Type d'organisation
|
|
schema:
|
|
type: string
|
|
- name: ville
|
|
in: query
|
|
description: Ville
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Résultats de recherche
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/OrganisationResponse"
|
|
"401":
|
|
description: Non authentifié
|
|
"403":
|
|
description: Non autorisé
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/organisations/statistiques:
|
|
get:
|
|
tags:
|
|
- Organisations
|
|
summary: Statistiques des organisations
|
|
description: Récupère les statistiques globales des organisations
|
|
responses:
|
|
"200":
|
|
description: Statistiques récupérées avec succès
|
|
"401":
|
|
description: Non authentifié
|
|
"403":
|
|
description: Non autorisé
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/organisations/{id}:
|
|
get:
|
|
tags:
|
|
- Organisations
|
|
summary: Récupérer une organisation
|
|
description: Récupère une organisation par son ID
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: UUID de l'organisation
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Organisation trouvée
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/OrganisationResponse"
|
|
"404":
|
|
description: Organisation non trouvée
|
|
"401":
|
|
description: Non authentifié
|
|
"403":
|
|
description: Non autorisé
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
put:
|
|
tags:
|
|
- Organisations
|
|
summary: Mettre à jour une organisation
|
|
description: Met à jour les informations d'une organisation
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: UUID de l'organisation
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UpdateOrganisationRequest"
|
|
responses:
|
|
"200":
|
|
description: Organisation mise à jour avec succès
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/OrganisationResponse"
|
|
"400":
|
|
description: Données invalides
|
|
"404":
|
|
description: Organisation non trouvée
|
|
"409":
|
|
description: Conflit de données
|
|
"401":
|
|
description: Non authentifié
|
|
"403":
|
|
description: Non autorisé
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
delete:
|
|
tags:
|
|
- Organisations
|
|
summary: Supprimer une organisation
|
|
description: Supprime une organisation (soft delete)
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: UUID de l'organisation
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"204":
|
|
description: Organisation supprimée avec succès
|
|
"404":
|
|
description: Organisation non trouvée
|
|
"409":
|
|
description: Impossible de supprimer l'organisation
|
|
"401":
|
|
description: Non authentifié
|
|
"403":
|
|
description: Non autorisé
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
/api/organisations/{id}/activer:
|
|
post:
|
|
tags:
|
|
- Organisations
|
|
summary: Activer une organisation
|
|
description: Active une organisation suspendue
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: UUID de l'organisation
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Organisation activée avec succès
|
|
"404":
|
|
description: Organisation non trouvée
|
|
"401":
|
|
description: Non authentifié
|
|
"403":
|
|
description: Non autorisé
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/organisations/{id}/membres/count:
|
|
get:
|
|
tags:
|
|
- Organisations
|
|
summary: Nombre de membres
|
|
description: Retourne le nombre de membres actifs de l'organisation.
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/organisations/{id}/modules-actifs:
|
|
get:
|
|
tags:
|
|
- Organisations
|
|
summary: Modules actifs de l'organisation
|
|
description: Retourne la liste des modules disponibles selon le type de l'organisation
|
|
(Option C)
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: UUID de l'organisation
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Liste des modules actifs
|
|
"404":
|
|
description: Organisation non trouvée
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/organisations/{id}/suspendre:
|
|
post:
|
|
tags:
|
|
- Organisations
|
|
summary: Suspendre une organisation
|
|
description: Suspend une organisation active
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: UUID de l'organisation
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Organisation suspendue avec succès
|
|
"404":
|
|
description: Organisation non trouvée
|
|
"401":
|
|
description: Non authentifié
|
|
"403":
|
|
description: Non autorisé
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/paiements:
|
|
post:
|
|
tags:
|
|
- Paiements
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreatePaiementRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/paiements/declarer-manuel:
|
|
post:
|
|
tags:
|
|
- Paiements
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DeclarerPaiementManuelRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- MEMBRE
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/paiements/initier-paiement-en-ligne:
|
|
post:
|
|
tags:
|
|
- Paiements
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/InitierPaiementEnLigneRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- MEMBRE
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- USER
|
|
/api/paiements/membre/{membreId}:
|
|
get:
|
|
tags:
|
|
- Paiements
|
|
parameters:
|
|
- name: membreId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/paiements/mon-historique:
|
|
get:
|
|
tags:
|
|
- Paiements
|
|
parameters:
|
|
- name: limit
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- MEMBRE
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/paiements/reference/{numeroReference}:
|
|
get:
|
|
tags:
|
|
- Paiements
|
|
parameters:
|
|
- name: numeroReference
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/paiements/statut-intention/{intentionId}:
|
|
get:
|
|
tags:
|
|
- Paiements
|
|
parameters:
|
|
- name: intentionId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- MEMBRE
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- USER
|
|
/api/paiements/{id}:
|
|
get:
|
|
tags:
|
|
- Paiements
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/paiements/{id}/annuler:
|
|
post:
|
|
tags:
|
|
- Paiements
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/paiements/{id}/valider:
|
|
post:
|
|
tags:
|
|
- Paiements
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/parametres-lcb-ft:
|
|
get:
|
|
tags:
|
|
- Paramètres LCB-FT
|
|
summary: Récupérer les paramètres LCB-FT
|
|
description: Retourne les seuils anti-blanchiment pour une organisation ou la
|
|
plateforme
|
|
parameters:
|
|
- name: codeDevise
|
|
in: query
|
|
description: Code devise (XOF par défaut)
|
|
schema:
|
|
default: XOF
|
|
type: string
|
|
- name: organisationId
|
|
in: query
|
|
description: ID de l'organisation (optionnel)
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Paramètres récupérés
|
|
"404":
|
|
description: Paramètres non configurés
|
|
post:
|
|
tags:
|
|
- Paramètres LCB-FT
|
|
summary: Créer ou mettre à jour les paramètres LCB-FT
|
|
description: Admin uniquement - Configure les seuils pour une organisation ou
|
|
la plateforme
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ParametresLcbFtRequest"
|
|
responses:
|
|
"200":
|
|
description: Paramètres sauvegardés
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
/api/parametres-lcb-ft/seuil-justification:
|
|
get:
|
|
tags:
|
|
- Paramètres LCB-FT
|
|
summary: Récupérer le seuil de justification uniquement
|
|
description: Endpoint léger pour récupérer juste le montant seuil (utilisé par
|
|
mobile)
|
|
parameters:
|
|
- name: codeDevise
|
|
in: query
|
|
schema:
|
|
default: XOF
|
|
type: string
|
|
- name: organisationId
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Seuil récupéré
|
|
/api/preferences/{utilisateurId}:
|
|
get:
|
|
tags:
|
|
- Préférences
|
|
summary: Obtenir les préférences d'un utilisateur
|
|
parameters:
|
|
- name: utilisateurId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Préférences récupérées avec succès
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
put:
|
|
tags:
|
|
- Préférences
|
|
summary: Mettre à jour les préférences d'un utilisateur
|
|
parameters:
|
|
- name: utilisateurId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
responses:
|
|
"204":
|
|
description: Préférences mises à jour avec succès
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
/api/preferences/{utilisateurId}/export:
|
|
get:
|
|
tags:
|
|
- Préférences
|
|
summary: Exporter les préférences d'un utilisateur
|
|
parameters:
|
|
- name: utilisateurId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Préférences exportées avec succès
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
/api/preferences/{utilisateurId}/reinitialiser:
|
|
post:
|
|
tags:
|
|
- Préférences
|
|
summary: Réinitialiser les préférences d'un utilisateur
|
|
parameters:
|
|
- name: utilisateurId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"204":
|
|
description: Préférences réinitialisées avec succès
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
/api/propositions-aide:
|
|
get:
|
|
tags:
|
|
- Propositions d'aide
|
|
summary: Liste les propositions d'aide avec pagination
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/PropositionAideResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
post:
|
|
tags:
|
|
- Propositions d'aide
|
|
summary: Crée une nouvelle proposition d'aide
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreatePropositionAideRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/propositions-aide/meilleures:
|
|
get:
|
|
tags:
|
|
- Propositions d'aide
|
|
summary: Récupère les meilleures propositions
|
|
parameters:
|
|
- name: limite
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 5
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/PropositionAideResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/propositions-aide/{id}:
|
|
get:
|
|
tags:
|
|
- Propositions d'aide
|
|
summary: Récupère une proposition d'aide par son ID
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PropositionAideResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
put:
|
|
tags:
|
|
- Propositions d'aide
|
|
summary: Met à jour une proposition d'aide
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UpdatePropositionAideRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PropositionAideResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/references/types-organisation:
|
|
get:
|
|
tags:
|
|
- Type Organisation Reference Resource
|
|
parameters:
|
|
- name: onlyActifs
|
|
in: query
|
|
schema:
|
|
default: true
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
post:
|
|
tags:
|
|
- Type Organisation Reference Resource
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateTypeReferenceRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/references/types-organisation/{id}:
|
|
put:
|
|
tags:
|
|
- Type Organisation Reference Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UpdateTypeReferenceRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
delete:
|
|
tags:
|
|
- Type Organisation Reference Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/roles:
|
|
get:
|
|
tags:
|
|
- Rôles
|
|
summary: Liste tous les rôles actifs
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/RoleResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/souscriptions/admin/en-attente:
|
|
get:
|
|
tags:
|
|
- Souscription Resource
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
/api/souscriptions/admin/organisation/{organisationId}/active:
|
|
get:
|
|
tags:
|
|
- Souscription Resource
|
|
parameters:
|
|
- name: organisationId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
/api/souscriptions/admin/toutes:
|
|
get:
|
|
tags:
|
|
- Souscription Resource
|
|
parameters:
|
|
- name: organisationId
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: page
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 0
|
|
type: integer
|
|
- name: size
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 1000
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
/api/souscriptions/admin/{id}/approuver:
|
|
post:
|
|
tags:
|
|
- Souscription Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
/api/souscriptions/admin/{id}/rejeter:
|
|
post:
|
|
tags:
|
|
- Souscription Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
/api/souscriptions/confirmer-paiement:
|
|
post:
|
|
tags:
|
|
- Souscription Resource
|
|
parameters:
|
|
- name: id
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: wave_id
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/api/souscriptions/demande:
|
|
post:
|
|
tags:
|
|
- Souscription Resource
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SouscriptionDemandeRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak: []
|
|
/api/souscriptions/formules:
|
|
get:
|
|
tags:
|
|
- Souscription Resource
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/api/souscriptions/ma-souscription:
|
|
get:
|
|
tags:
|
|
- Souscription Resource
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak: []
|
|
/api/souscriptions/{id}/initier-paiement:
|
|
post:
|
|
tags:
|
|
- Souscription Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak: []
|
|
/api/status:
|
|
get:
|
|
tags:
|
|
- Status
|
|
summary: Vérifier le statut du serveur
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/api/suggestions:
|
|
get:
|
|
tags:
|
|
- Suggestions
|
|
summary: Lister toutes les suggestions
|
|
responses:
|
|
"200":
|
|
description: Liste des suggestions récupérée avec succès
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
post:
|
|
tags:
|
|
- Suggestions
|
|
summary: Créer une nouvelle suggestion
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateSuggestionRequest"
|
|
responses:
|
|
"201":
|
|
description: Suggestion créée avec succès
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/suggestions/statistiques:
|
|
get:
|
|
tags:
|
|
- Suggestions
|
|
summary: Obtenir les statistiques des suggestions
|
|
responses:
|
|
"200":
|
|
description: Statistiques récupérées avec succès
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/suggestions/{id}/voter:
|
|
post:
|
|
tags:
|
|
- Suggestions
|
|
summary: Voter pour une suggestion
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: utilisateurId
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Vote enregistré avec succès
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/system/audit/report:
|
|
get:
|
|
tags:
|
|
- Système
|
|
summary: Générer un rapport d'audit
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- MODERATEUR
|
|
/api/system/auth/logout-all:
|
|
post:
|
|
tags:
|
|
- Système
|
|
summary: Forcer la déconnexion de tous les utilisateurs
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
/api/system/backup/create:
|
|
post:
|
|
tags:
|
|
- Système
|
|
summary: Créer une sauvegarde du système
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/system/cache/clear:
|
|
post:
|
|
tags:
|
|
- Système
|
|
summary: Vider le cache système
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/system/cache/stats:
|
|
get:
|
|
tags:
|
|
- Système
|
|
summary: Récupérer les statistiques du cache système
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CacheStatsResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- MODERATEUR
|
|
/api/system/config:
|
|
get:
|
|
tags:
|
|
- Système
|
|
summary: Récupérer la configuration système
|
|
description: Retourne la configuration système complète
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SystemConfigResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- MODERATEUR
|
|
put:
|
|
tags:
|
|
- Système
|
|
summary: Mettre à jour la configuration système
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UpdateSystemConfigRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SystemConfigResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/system/data/purge:
|
|
post:
|
|
tags:
|
|
- Système
|
|
summary: Purger les données expirées (RGPD)
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
/api/system/database/optimize:
|
|
post:
|
|
tags:
|
|
- Système
|
|
summary: Optimiser la base de données (VACUUM ANALYZE)
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/system/gdpr/export:
|
|
post:
|
|
tags:
|
|
- Système
|
|
summary: Initier un export RGPD des données utilisateurs
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
/api/system/logs/cleanup:
|
|
post:
|
|
tags:
|
|
- Système
|
|
summary: Nettoyer les anciens logs selon la politique de rétention
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/system/logs/export:
|
|
get:
|
|
tags:
|
|
- Système
|
|
summary: Exporter les logs des dernières 24h
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/system/maintenance/emergency:
|
|
post:
|
|
tags:
|
|
- Système
|
|
summary: Activer le mode maintenance d'urgence
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
/api/system/maintenance/schedule:
|
|
post:
|
|
tags:
|
|
- Système
|
|
summary: Planifier une maintenance
|
|
parameters:
|
|
- name: reason
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: scheduledAt
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/system/metrics:
|
|
get:
|
|
tags:
|
|
- Système
|
|
summary: Récupérer les métriques système en temps réel
|
|
description: "Retourne toutes les métriques système (CPU, RAM, disque, utilisateurs\
|
|
\ actifs, etc.)"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SystemMetricsResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- MODERATEUR
|
|
/api/system/performance/analyze:
|
|
post:
|
|
tags:
|
|
- Système
|
|
summary: Analyser les performances du système
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/system/reports/usage:
|
|
get:
|
|
tags:
|
|
- Système
|
|
summary: Générer un rapport d'utilisation du système
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/system/sessions/cleanup:
|
|
post:
|
|
tags:
|
|
- Système
|
|
summary: Nettoyer les sessions expirées
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/system/test/database:
|
|
post:
|
|
tags:
|
|
- Système
|
|
summary: Tester la connexion à la base de données
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SystemTestResultResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/system/test/email:
|
|
post:
|
|
tags:
|
|
- Système
|
|
summary: Tester la configuration email
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SystemTestResultResponse"
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/system/updates/check:
|
|
get:
|
|
tags:
|
|
- Système
|
|
summary: Vérifier les mises à jour disponibles
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/tickets:
|
|
post:
|
|
tags:
|
|
- Tickets
|
|
summary: Créer un nouveau ticket
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateTicketRequest"
|
|
responses:
|
|
"201":
|
|
description: Ticket créé avec succès
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/tickets/utilisateur/{utilisateurId}:
|
|
get:
|
|
tags:
|
|
- Tickets
|
|
summary: Lister les tickets d'un utilisateur
|
|
parameters:
|
|
- name: utilisateurId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Liste des tickets récupérée avec succès
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/tickets/utilisateur/{utilisateurId}/statistiques:
|
|
get:
|
|
tags:
|
|
- Tickets
|
|
summary: Obtenir les statistiques des tickets d'un utilisateur
|
|
parameters:
|
|
- name: utilisateurId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Statistiques récupérées avec succès
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/tickets/{id}:
|
|
get:
|
|
tags:
|
|
- Tickets
|
|
summary: Récupérer un ticket par ID
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Ticket trouvé
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- USER
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/v1/agricole/campagnes:
|
|
post:
|
|
tags:
|
|
- Campagne Agricole Resource
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CampagneAgricoleDTO"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- COOP_RESP
|
|
/api/v1/agricole/campagnes/cooperative/{organisationId}:
|
|
get:
|
|
tags:
|
|
- Campagne Agricole Resource
|
|
parameters:
|
|
- name: organisationId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- COOP_RESP
|
|
/api/v1/agricole/campagnes/{id}:
|
|
get:
|
|
tags:
|
|
- Campagne Agricole Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- COOP_RESP
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/analytics/dashboard/widgets:
|
|
get:
|
|
tags:
|
|
- Analytics
|
|
summary: Obtenir les widgets du tableau de bord
|
|
description: Récupère tous les widgets configurés pour le tableau de bord de
|
|
l'utilisateur
|
|
parameters:
|
|
- name: organisationId
|
|
in: query
|
|
description: ID de l'organisation (optionnel)
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: utilisateurId
|
|
in: query
|
|
description: ID de l'utilisateur
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Widgets récupérés avec succès
|
|
"403":
|
|
description: Accès non autorisé
|
|
"401":
|
|
description: Not Authorized
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/v1/analytics/evolutions:
|
|
get:
|
|
tags:
|
|
- Analytics
|
|
summary: Obtenir les évolutions des KPI
|
|
description: Récupère les évolutions des KPI par rapport à la période précédente
|
|
parameters:
|
|
- name: organisationId
|
|
in: query
|
|
description: ID de l'organisation (optionnel)
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: periode
|
|
in: query
|
|
description: Période d'analyse
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/PeriodeAnalyse"
|
|
responses:
|
|
"200":
|
|
description: Évolutions récupérées avec succès
|
|
"400":
|
|
description: Paramètres invalides
|
|
"403":
|
|
description: Accès non autorisé
|
|
"401":
|
|
description: Not Authorized
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/v1/analytics/kpis:
|
|
get:
|
|
tags:
|
|
- Analytics
|
|
summary: Obtenir tous les KPI
|
|
description: Récupère tous les KPI calculés pour une organisation et période
|
|
données
|
|
parameters:
|
|
- name: organisationId
|
|
in: query
|
|
description: ID de l'organisation (optionnel)
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: periode
|
|
in: query
|
|
description: Période d'analyse
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/PeriodeAnalyse"
|
|
responses:
|
|
"200":
|
|
description: KPI récupérés avec succès
|
|
"400":
|
|
description: Paramètres invalides
|
|
"403":
|
|
description: Accès non autorisé
|
|
"401":
|
|
description: Not Authorized
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/v1/analytics/metriques/{typeMetrique}:
|
|
get:
|
|
tags:
|
|
- Analytics
|
|
summary: Calculer une métrique analytics
|
|
description: Calcule une métrique spécifique pour une période et organisation
|
|
données
|
|
parameters:
|
|
- name: typeMetrique
|
|
in: path
|
|
description: Type de métrique à calculer
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/TypeMetrique"
|
|
- name: organisationId
|
|
in: query
|
|
description: ID de l'organisation (optionnel)
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: periode
|
|
in: query
|
|
description: Période d'analyse
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/PeriodeAnalyse"
|
|
responses:
|
|
"200":
|
|
description: Métrique calculée avec succès
|
|
"400":
|
|
description: Paramètres invalides
|
|
"403":
|
|
description: Accès non autorisé
|
|
"401":
|
|
description: Not Authorized
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/v1/analytics/performance-globale:
|
|
get:
|
|
tags:
|
|
- Analytics
|
|
summary: Calculer la performance globale
|
|
description: Calcule le score de performance globale de l'organisation
|
|
parameters:
|
|
- name: organisationId
|
|
in: query
|
|
description: ID de l'organisation (optionnel)
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: periode
|
|
in: query
|
|
description: Période d'analyse
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/PeriodeAnalyse"
|
|
responses:
|
|
"200":
|
|
description: Performance globale calculée avec succès
|
|
"403":
|
|
description: Accès non autorisé
|
|
"401":
|
|
description: Not Authorized
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- SUPER_ADMIN
|
|
/api/v1/analytics/periodes-analyse:
|
|
get:
|
|
tags:
|
|
- Analytics
|
|
summary: Obtenir les périodes d'analyse disponibles
|
|
description: Récupère la liste de toutes les périodes d'analyse disponibles
|
|
responses:
|
|
"200":
|
|
description: Périodes d'analyse récupérées avec succès
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/v1/analytics/tendances/{typeMetrique}:
|
|
get:
|
|
tags:
|
|
- Analytics
|
|
summary: Calculer la tendance d'un KPI
|
|
description: Calcule l'évolution et les tendances d'un KPI sur une période donnée
|
|
parameters:
|
|
- name: typeMetrique
|
|
in: path
|
|
description: Type de métrique pour la tendance
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/TypeMetrique"
|
|
- name: organisationId
|
|
in: query
|
|
description: ID de l'organisation (optionnel)
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: periode
|
|
in: query
|
|
description: Période d'analyse
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/PeriodeAnalyse"
|
|
responses:
|
|
"200":
|
|
description: Tendance calculée avec succès
|
|
"400":
|
|
description: Paramètres invalides
|
|
"403":
|
|
description: Accès non autorisé
|
|
"401":
|
|
description: Not Authorized
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/v1/analytics/types-metriques:
|
|
get:
|
|
tags:
|
|
- Analytics
|
|
summary: Obtenir les types de métriques disponibles
|
|
description: Récupère la liste de tous les types de métriques disponibles
|
|
responses:
|
|
"200":
|
|
description: Types de métriques récupérés avec succès
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/v1/collectefonds/campagnes/organisation/{organisationId}:
|
|
get:
|
|
tags:
|
|
- Campagne Collecte Resource
|
|
parameters:
|
|
- name: organisationId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/v1/collectefonds/campagnes/{id}:
|
|
get:
|
|
tags:
|
|
- Campagne Collecte Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/collectefonds/campagnes/{id}/contribuer:
|
|
post:
|
|
tags:
|
|
- Campagne Collecte Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ContributionCollecteDTO"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/culte/dons:
|
|
post:
|
|
tags:
|
|
- Don Religieux Resource
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DonReligieuxDTO"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/culte/dons/organisation/{organisationId}:
|
|
get:
|
|
tags:
|
|
- Don Religieux Resource
|
|
parameters:
|
|
- name: organisationId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- CULTE_RESP
|
|
/api/v1/culte/dons/{id}:
|
|
get:
|
|
tags:
|
|
- Don Religieux Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- CULTE_RESP
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/dashboard/activities:
|
|
get:
|
|
tags:
|
|
- Dashboard
|
|
summary: Récupérer les activités récentes
|
|
description: Retourne la liste des activités récentes avec pagination
|
|
parameters:
|
|
- name: limit
|
|
in: query
|
|
description: Nombre maximum d'activités à retourner
|
|
required: false
|
|
schema:
|
|
format: int32
|
|
default: 10
|
|
type: integer
|
|
- name: organizationId
|
|
in: query
|
|
description: ID de l'organisation
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: userId
|
|
in: query
|
|
description: ID de l'utilisateur
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Activités récupérées avec succès
|
|
"400":
|
|
description: Paramètres invalides
|
|
"500":
|
|
description: Erreur serveur
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
- SUPER_ADMIN
|
|
/api/v1/dashboard/data:
|
|
get:
|
|
tags:
|
|
- Dashboard
|
|
summary: Récupérer toutes les données du dashboard
|
|
description: "Retourne les statistiques, activités récentes et événements à\
|
|
\ venir"
|
|
parameters:
|
|
- name: organizationId
|
|
in: query
|
|
description: ID de l'organisation
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: userId
|
|
in: query
|
|
description: ID de l'utilisateur
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Données récupérées avec succès
|
|
"400":
|
|
description: Paramètres invalides
|
|
"500":
|
|
description: Erreur serveur
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
- SUPER_ADMIN
|
|
/api/v1/dashboard/events/upcoming:
|
|
get:
|
|
tags:
|
|
- Dashboard
|
|
summary: Récupérer les événements à venir
|
|
description: Retourne la liste des événements à venir avec pagination
|
|
parameters:
|
|
- name: limit
|
|
in: query
|
|
description: Nombre maximum d'événements à retourner
|
|
required: false
|
|
schema:
|
|
format: int32
|
|
default: 5
|
|
type: integer
|
|
- name: organizationId
|
|
in: query
|
|
description: ID de l'organisation
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: userId
|
|
in: query
|
|
description: ID de l'utilisateur
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Événements récupérés avec succès
|
|
"400":
|
|
description: Paramètres invalides
|
|
"500":
|
|
description: Erreur serveur
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
- SUPER_ADMIN
|
|
/api/v1/dashboard/health:
|
|
get:
|
|
tags:
|
|
- Dashboard
|
|
summary: Vérifier la santé du service dashboard
|
|
description: Retourne le statut de santé du service dashboard
|
|
responses:
|
|
"200":
|
|
description: Service en bonne santé
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
- SUPER_ADMIN
|
|
/api/v1/dashboard/refresh:
|
|
post:
|
|
tags:
|
|
- Dashboard
|
|
summary: Rafraîchir les données du dashboard
|
|
description: Force la mise à jour des données du dashboard
|
|
parameters:
|
|
- name: organizationId
|
|
in: query
|
|
description: ID de l'organisation
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: userId
|
|
in: query
|
|
description: ID de l'utilisateur
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Données rafraîchies avec succès
|
|
"400":
|
|
description: Paramètres invalides
|
|
"500":
|
|
description: Erreur serveur
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
- SUPER_ADMIN
|
|
/api/v1/dashboard/stats:
|
|
get:
|
|
tags:
|
|
- Dashboard
|
|
summary: Récupérer les statistiques du dashboard
|
|
description: Retourne uniquement les statistiques principales
|
|
parameters:
|
|
- name: organizationId
|
|
in: query
|
|
description: ID de l'organisation
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: userId
|
|
in: query
|
|
description: ID de l'utilisateur
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Statistiques récupérées avec succès
|
|
"400":
|
|
description: Paramètres invalides
|
|
"500":
|
|
description: Erreur serveur
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
- SUPER_ADMIN
|
|
/api/v1/epargne/comptes:
|
|
post:
|
|
tags:
|
|
- Compte Epargne Resource
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CompteEpargneRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MUTUELLE_RESP
|
|
/api/v1/epargne/comptes/membre/{membreId}:
|
|
get:
|
|
tags:
|
|
- Compte Epargne Resource
|
|
parameters:
|
|
- name: membreId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MUTUELLE_RESP
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/epargne/comptes/mes-comptes:
|
|
get:
|
|
tags:
|
|
- Compte Epargne Resource
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MUTUELLE_RESP
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/epargne/comptes/organisation/{organisationId}:
|
|
get:
|
|
tags:
|
|
- Compte Epargne Resource
|
|
parameters:
|
|
- name: organisationId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MUTUELLE_RESP
|
|
/api/v1/epargne/comptes/{id}:
|
|
get:
|
|
tags:
|
|
- Compte Epargne Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MUTUELLE_RESP
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/epargne/comptes/{id}/statut:
|
|
patch:
|
|
tags:
|
|
- Compte Epargne Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: statut
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/StatutCompteEpargne"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MUTUELLE_RESP
|
|
/api/v1/epargne/transactions:
|
|
post:
|
|
tags:
|
|
- Transaction Epargne Resource
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TransactionEpargneRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MUTUELLE_RESP
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/epargne/transactions/compte/{compteId}:
|
|
get:
|
|
tags:
|
|
- Transaction Epargne Resource
|
|
parameters:
|
|
- name: compteId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MUTUELLE_RESP
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/epargne/transactions/transfert:
|
|
post:
|
|
tags:
|
|
- Transaction Epargne Resource
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TransactionEpargneRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MUTUELLE_RESP
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/gouvernance/organigramme:
|
|
post:
|
|
tags:
|
|
- Echelon Organigramme Resource
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EchelonOrganigrammeDTO"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/v1/gouvernance/organigramme/organisation/{organisationId}:
|
|
get:
|
|
tags:
|
|
- Echelon Organigramme Resource
|
|
parameters:
|
|
- name: organisationId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/gouvernance/organigramme/{id}:
|
|
get:
|
|
tags:
|
|
- Echelon Organigramme Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/mutuelle/credits:
|
|
post:
|
|
tags:
|
|
- Demande Credit Resource
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DemandeCreditRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/mutuelle/credits/membre/{membreId}:
|
|
get:
|
|
tags:
|
|
- Demande Credit Resource
|
|
parameters:
|
|
- name: membreId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MUTUELLE_RESP
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/mutuelle/credits/{id}:
|
|
get:
|
|
tags:
|
|
- Demande Credit Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MUTUELLE_RESP
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/mutuelle/credits/{id}/approbation:
|
|
post:
|
|
tags:
|
|
- Demande Credit Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: duree
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
type: integer
|
|
- name: montant
|
|
in: query
|
|
schema:
|
|
type: number
|
|
- name: notes
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: taux
|
|
in: query
|
|
schema:
|
|
type: number
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MUTUELLE_RESP
|
|
/api/v1/mutuelle/credits/{id}/decaissement:
|
|
post:
|
|
tags:
|
|
- Demande Credit Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: datePremiereEcheance
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MUTUELLE_RESP
|
|
/api/v1/mutuelle/credits/{id}/statut:
|
|
patch:
|
|
tags:
|
|
- Demande Credit Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: notes
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: statut
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/StatutDemandeCredit"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MUTUELLE_RESP
|
|
/api/v1/ong/projets:
|
|
post:
|
|
tags:
|
|
- Projet Ong Resource
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ProjetOngDTO"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- ONG_RESP
|
|
/api/v1/ong/projets/ong/{organisationId}:
|
|
get:
|
|
tags:
|
|
- Projet Ong Resource
|
|
parameters:
|
|
- name: organisationId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- ONG_RESP
|
|
/api/v1/ong/projets/{id}:
|
|
get:
|
|
tags:
|
|
- Projet Ong Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/ong/projets/{id}/statut:
|
|
patch:
|
|
tags:
|
|
- Projet Ong Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: statut
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/StatutProjetOng"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- ONG_RESP
|
|
/api/v1/registre/agrements:
|
|
post:
|
|
tags:
|
|
- Agrement Professionnel Resource
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AgrementProfessionnelDTO"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- REGISTRE_RESP
|
|
/api/v1/registre/agrements/membre/{membreId}:
|
|
get:
|
|
tags:
|
|
- Agrement Professionnel Resource
|
|
parameters:
|
|
- name: membreId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/registre/agrements/organisation/{organisationId}:
|
|
get:
|
|
tags:
|
|
- Agrement Professionnel Resource
|
|
parameters:
|
|
- name: organisationId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- REGISTRE_RESP
|
|
/api/v1/registre/agrements/{id}:
|
|
get:
|
|
tags:
|
|
- Agrement Professionnel Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/tontines:
|
|
post:
|
|
tags:
|
|
- Tontine Resource
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TontineRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- TONTINE_RESP
|
|
/api/v1/tontines/organisation/{organisationId}:
|
|
get:
|
|
tags:
|
|
- Tontine Resource
|
|
parameters:
|
|
- name: organisationId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- TONTINE_RESP
|
|
/api/v1/tontines/{id}:
|
|
get:
|
|
tags:
|
|
- Tontine Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- TONTINE_RESP
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/tontines/{id}/statut:
|
|
patch:
|
|
tags:
|
|
- Tontine Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: statut
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/StatutTontine"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- TONTINE_RESP
|
|
/api/v1/types-reference:
|
|
get:
|
|
tags:
|
|
- Types de référence
|
|
summary: Lister par domaine
|
|
description: Récupère les valeurs actives d'un domaine donné
|
|
parameters:
|
|
- name: domaine
|
|
in: query
|
|
description: Domaine fonctionnel
|
|
required: true
|
|
schema:
|
|
type: string
|
|
example: STATUT_ORGANISATION
|
|
- name: organisationId
|
|
in: query
|
|
description: UUID de l'organisation
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
example: 550e8400-e29b-41d4-a716-446655440000
|
|
responses:
|
|
"200":
|
|
description: Liste récupérée
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TypeReferenceResponse"
|
|
"401":
|
|
description: Non authentifié
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- MEMBRE
|
|
- USER
|
|
post:
|
|
tags:
|
|
- Types de référence
|
|
summary: Créer une référence
|
|
description: Ajoute une nouvelle valeur dans un domaine
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateTypeReferenceRequest"
|
|
responses:
|
|
"201":
|
|
description: Référence créée
|
|
"400":
|
|
description: Données invalides ou code dupliqué
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
/api/v1/types-reference/defaut:
|
|
get:
|
|
tags:
|
|
- Types de référence
|
|
summary: Valeur par défaut
|
|
description: Récupère la valeur par défaut d'un domaine
|
|
parameters:
|
|
- name: domaine
|
|
in: query
|
|
description: Domaine fonctionnel
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: organisationId
|
|
in: query
|
|
description: UUID de l'organisation
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/types-reference/domaines:
|
|
get:
|
|
tags:
|
|
- Types de référence
|
|
summary: Lister les domaines
|
|
description: Récupère la liste des domaines disponibles
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/types-reference/{id}:
|
|
get:
|
|
tags:
|
|
- Types de référence
|
|
summary: Détail d'une référence
|
|
description: Récupère une référence par son identifiant
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Référence trouvée
|
|
"404":
|
|
description: Référence non trouvée
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
- MEMBRE
|
|
- USER
|
|
put:
|
|
tags:
|
|
- Types de référence
|
|
summary: Modifier une référence
|
|
description: Met à jour une valeur existante
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UpdateTypeReferenceRequest"
|
|
responses:
|
|
"200":
|
|
description: Référence modifiée
|
|
"400":
|
|
description: Données invalides
|
|
"404":
|
|
description: Référence non trouvée
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
- ADMIN
|
|
delete:
|
|
tags:
|
|
- Types de référence
|
|
summary: Supprimer une référence
|
|
description: Supprime une valeur non système
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"204":
|
|
description: Référence supprimée
|
|
"400":
|
|
description: Valeur système non supprimable
|
|
"404":
|
|
description: Référence non trouvée
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- SUPER_ADMIN
|
|
/api/v1/vote/campagnes:
|
|
post:
|
|
tags:
|
|
- Campagne Vote Resource
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CampagneVoteRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- VOTE_RESP
|
|
/api/v1/vote/campagnes/organisation/{organisationId}:
|
|
get:
|
|
tags:
|
|
- Campagne Vote Resource
|
|
parameters:
|
|
- name: organisationId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- VOTE_RESP
|
|
/api/v1/vote/campagnes/{id}:
|
|
get:
|
|
tags:
|
|
- Campagne Vote Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- VOTE_RESP
|
|
- MEMBRE
|
|
- USER
|
|
/api/v1/vote/campagnes/{id}/candidats:
|
|
post:
|
|
tags:
|
|
- Campagne Vote Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CandidatDTO"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- VOTE_RESP
|
|
/api/v1/vote/campagnes/{id}/statut:
|
|
patch:
|
|
tags:
|
|
- Campagne Vote Resource
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
- name: statut
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/StatutVote"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- SUPER_ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- VOTE_RESP
|
|
/api/versements/declarer-manuel:
|
|
post:
|
|
tags:
|
|
- Versements
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DeclarerVersementManuelRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- MEMBRE
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/versements/initier-depot-epargne:
|
|
post:
|
|
tags:
|
|
- Versements
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/InitierDepotEpargneRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- MEMBRE
|
|
- MEMBRE_ACTIF
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- USER
|
|
/api/versements/initier-wave:
|
|
post:
|
|
tags:
|
|
- Versements
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/InitierVersementWaveRequest"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- MEMBRE
|
|
- MEMBRE_ACTIF
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- USER
|
|
/api/versements/membre/{membreId}:
|
|
get:
|
|
tags:
|
|
- Versements
|
|
parameters:
|
|
- name: membreId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/versements/mes-versements:
|
|
get:
|
|
tags:
|
|
- Versements
|
|
parameters:
|
|
- name: limit
|
|
in: query
|
|
schema:
|
|
format: int32
|
|
default: 20
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- MEMBRE
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/versements/reference/{numeroReference}:
|
|
get:
|
|
tags:
|
|
- Versements
|
|
parameters:
|
|
- name: numeroReference
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/versements/statut/{intentionId}:
|
|
get:
|
|
tags:
|
|
- Versements
|
|
parameters:
|
|
- name: intentionId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- MEMBRE
|
|
- MEMBRE_ACTIF
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- USER
|
|
/api/versements/{id}:
|
|
get:
|
|
tags:
|
|
- Versements
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/versements/{id}/annuler:
|
|
post:
|
|
tags:
|
|
- Versements
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/versements/{id}/valider:
|
|
post:
|
|
tags:
|
|
- Versements
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
/api/wave-redirect/error:
|
|
get:
|
|
tags:
|
|
- Wave Redirect Resource
|
|
parameters:
|
|
- name: ref
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/api/wave-redirect/mock-complete:
|
|
get:
|
|
tags:
|
|
- Wave Redirect Resource
|
|
parameters:
|
|
- name: ref
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/api/wave-redirect/success:
|
|
get:
|
|
tags:
|
|
- Wave Redirect Resource
|
|
parameters:
|
|
- name: ref
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/api/wave-redirect/web-success:
|
|
get:
|
|
tags:
|
|
- Wave Redirect Resource
|
|
parameters:
|
|
- name: ref
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
/api/wave/comptes:
|
|
post:
|
|
tags:
|
|
- Wave Mobile Money
|
|
summary: Créer un compte Wave
|
|
description: Crée un nouveau compte Wave pour un membre ou une organisation
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CompteWaveDTO"
|
|
responses:
|
|
"201":
|
|
description: Compte Wave créé avec succès
|
|
"400":
|
|
description: Données invalides
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/wave/comptes/organisation/{organisationId}:
|
|
get:
|
|
tags:
|
|
- Wave Mobile Money
|
|
summary: Lister les comptes Wave d'une organisation
|
|
description: Retourne tous les comptes Wave associés à une organisation
|
|
parameters:
|
|
- name: organisationId
|
|
in: path
|
|
description: UUID de l'organisation
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Liste des comptes Wave
|
|
"400":
|
|
description: Erreur lors de la récupération
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/wave/comptes/telephone/{numeroTelephone}:
|
|
get:
|
|
tags:
|
|
- Wave Mobile Money
|
|
summary: Trouver un compte Wave par téléphone
|
|
description: Recherche un compte Wave par numéro de téléphone
|
|
parameters:
|
|
- name: numeroTelephone
|
|
in: path
|
|
description: Numéro de téléphone associé au compte Wave
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Compte Wave trouvé
|
|
"404":
|
|
description: Compte Wave non trouvé pour ce numéro
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/wave/comptes/{id}:
|
|
get:
|
|
tags:
|
|
- Wave Mobile Money
|
|
summary: Trouver un compte Wave par ID
|
|
description: Recherche un compte Wave par son identifiant unique
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: UUID du compte Wave
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Compte Wave trouvé
|
|
"404":
|
|
description: Compte Wave non trouvé
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
put:
|
|
tags:
|
|
- Wave Mobile Money
|
|
summary: Mettre à jour un compte Wave
|
|
description: Met à jour les informations d'un compte Wave existant
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: UUID du compte Wave
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CompteWaveDTO"
|
|
responses:
|
|
"200":
|
|
description: Compte Wave mis à jour
|
|
"404":
|
|
description: Compte Wave non trouvé
|
|
"400":
|
|
description: Données invalides
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/wave/comptes/{id}/verifier:
|
|
post:
|
|
tags:
|
|
- Wave Mobile Money
|
|
summary: Vérifier un compte Wave
|
|
description: Vérifie la validité d'un compte Wave
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: UUID du compte Wave
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/UUID"
|
|
responses:
|
|
"200":
|
|
description: Compte Wave vérifié
|
|
"404":
|
|
description: Compte Wave non trouvé
|
|
"400":
|
|
description: Erreur de vérification
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/wave/transactions:
|
|
post:
|
|
tags:
|
|
- Wave Mobile Money
|
|
summary: Créer une transaction Wave
|
|
description: Initie une nouvelle transaction de paiement Wave
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TransactionWaveDTO"
|
|
responses:
|
|
"201":
|
|
description: Transaction Wave créée
|
|
"400":
|
|
description: Données invalides ou erreur de traitement
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/api/wave/transactions/{waveTransactionId}:
|
|
get:
|
|
tags:
|
|
- Wave Mobile Money
|
|
summary: Trouver une transaction Wave
|
|
description: Recherche une transaction Wave par son identifiant Wave
|
|
parameters:
|
|
- name: waveTransactionId
|
|
in: path
|
|
description: Identifiant Wave de la transaction
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Transaction trouvée
|
|
"404":
|
|
description: Transaction non trouvée
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
- USER
|
|
/api/wave/transactions/{waveTransactionId}/statut:
|
|
put:
|
|
tags:
|
|
- Wave Mobile Money
|
|
summary: Mettre à jour le statut d'une transaction
|
|
description: "Met à jour le statut d'une transaction Wave (ex: COMPLETED, FAILED)"
|
|
parameters:
|
|
- name: waveTransactionId
|
|
in: path
|
|
description: Identifiant Wave de la transaction
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/StatutTransactionWave"
|
|
responses:
|
|
"200":
|
|
description: Statut mis à jour
|
|
"404":
|
|
description: Transaction non trouvée
|
|
"400":
|
|
description: Erreur de mise à jour
|
|
"401":
|
|
description: Not Authorized
|
|
"403":
|
|
description: Not Allowed
|
|
security:
|
|
- Keycloak:
|
|
- ADMIN
|
|
- ADMIN_ORGANISATION
|
|
- MEMBRE
|
|
/auth/callback:
|
|
get:
|
|
tags:
|
|
- Auth Callback Resource
|
|
parameters:
|
|
- name: code
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: error
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: error_description
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: session_state
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: state
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
components:
|
|
schemas:
|
|
AdhesionResponse:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
numeroReference:
|
|
type: string
|
|
membreId:
|
|
$ref: "#/components/schemas/UUID"
|
|
numeroMembre:
|
|
type: string
|
|
nomMembre:
|
|
type: string
|
|
emailMembre:
|
|
type: string
|
|
organisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
nomOrganisation:
|
|
type: string
|
|
dateDemande:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
fraisAdhesion:
|
|
type: number
|
|
montantPaye:
|
|
type: number
|
|
codeDevise:
|
|
type: string
|
|
statut:
|
|
type: string
|
|
dateApprobation:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
datePaiement:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
methodePaiement:
|
|
type: string
|
|
referencePaiement:
|
|
type: string
|
|
motifRejet:
|
|
type: string
|
|
observations:
|
|
type: string
|
|
approuvePar:
|
|
type: string
|
|
dateValidation:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
payeeIntegralement:
|
|
type: boolean
|
|
enAttentePaiement:
|
|
type: boolean
|
|
montantRestant:
|
|
type: number
|
|
pourcentagePaiement:
|
|
format: int32
|
|
type: integer
|
|
joursDepuisDemande:
|
|
format: int64
|
|
type: integer
|
|
statutLibelle:
|
|
type: string
|
|
statutSeverity:
|
|
type: string
|
|
statutIcon:
|
|
type: string
|
|
methodePaiementLibelle:
|
|
type: string
|
|
dateDemandeFormatee:
|
|
type: string
|
|
dateApprobationFormatee:
|
|
type: string
|
|
datePaiementFormatee:
|
|
type: string
|
|
fraisAdhesionFormatte:
|
|
type: string
|
|
montantPayeFormatte:
|
|
type: string
|
|
montantRestantFormatte:
|
|
type: string
|
|
AgrementProfessionnelDTO:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
nouveau:
|
|
type: boolean
|
|
membreId:
|
|
type: string
|
|
organisationId:
|
|
type: string
|
|
secteurOuOrdre:
|
|
type: string
|
|
numeroLicenceOuRegistre:
|
|
type: string
|
|
categorieClassement:
|
|
type: string
|
|
dateDelivrance:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
dateExpiration:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
statut:
|
|
$ref: "#/components/schemas/StatutAgrement"
|
|
AlertConfigResponse:
|
|
type: object
|
|
properties:
|
|
cpuHighAlertEnabled:
|
|
type: boolean
|
|
cpuThresholdPercent:
|
|
format: int32
|
|
type: integer
|
|
cpuDurationMinutes:
|
|
format: int32
|
|
type: integer
|
|
memoryLowAlertEnabled:
|
|
type: boolean
|
|
memoryThresholdPercent:
|
|
format: int32
|
|
type: integer
|
|
criticalErrorAlertEnabled:
|
|
type: boolean
|
|
errorAlertEnabled:
|
|
type: boolean
|
|
connectionFailureAlertEnabled:
|
|
type: boolean
|
|
connectionFailureThreshold:
|
|
format: int32
|
|
type: integer
|
|
connectionFailureWindowMinutes:
|
|
format: int32
|
|
type: integer
|
|
emailNotificationsEnabled:
|
|
type: boolean
|
|
pushNotificationsEnabled:
|
|
type: boolean
|
|
smsNotificationsEnabled:
|
|
type: boolean
|
|
alertEmailRecipients:
|
|
type: string
|
|
totalAlertsLast24h:
|
|
format: int32
|
|
type: integer
|
|
activeAlerts:
|
|
format: int32
|
|
type: integer
|
|
acknowledgedAlerts:
|
|
format: int32
|
|
type: integer
|
|
acknowledgedPercentage:
|
|
format: double
|
|
type: number
|
|
configValid:
|
|
type: boolean
|
|
ApiErrorDTO:
|
|
description: Réponse d'erreur standard
|
|
type: object
|
|
properties:
|
|
message:
|
|
description: Message d'erreur
|
|
type: string
|
|
ApproveTransactionRequest:
|
|
type: object
|
|
properties:
|
|
comment:
|
|
maxLength: 1000
|
|
type: string
|
|
AssocierOrganisationRequest:
|
|
required:
|
|
- email
|
|
- organisationId
|
|
type: object
|
|
properties:
|
|
email:
|
|
pattern: \S
|
|
type: string
|
|
organisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
AuditLogDTO:
|
|
description: Entrée d'audit des actions utilisateur
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Identifiant unique (UUID Keycloak)
|
|
type: string
|
|
example: f47ac10b-58cc-4372-a567-0e02b2c3d479
|
|
dateCreation:
|
|
description: Date de création
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDateTime"
|
|
example: 2025-01-15T10:30:00
|
|
dateModification:
|
|
description: Date de dernière modification
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDateTime"
|
|
example: 2025-01-15T14:20:00
|
|
creeParUsername:
|
|
description: Utilisateur ayant créé l'entité
|
|
type: string
|
|
example: admin@lions.dev
|
|
modifieParUsername:
|
|
description: Utilisateur ayant modifié l'entité
|
|
type: string
|
|
example: superadmin@lions.dev
|
|
version:
|
|
format: int64
|
|
description: Numéro de version pour gestion optimiste
|
|
type: integer
|
|
example: 1
|
|
acteurUserId:
|
|
description: ID de l'utilisateur qui a effectué l'action
|
|
type: string
|
|
example: f47ac10b-58cc-4372-a567-0e02b2c3d479
|
|
acteurUsername:
|
|
description: Username de l'utilisateur qui a effectué l'action
|
|
type: string
|
|
example: admin@lions.dev
|
|
acteurNomComplet:
|
|
description: Nom complet de l'acteur
|
|
type: string
|
|
example: Admin Principal
|
|
acteurRoles:
|
|
description: Rôles de l'acteur au moment de l'action
|
|
type: string
|
|
dateAction:
|
|
description: Date et heure de l'action
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDateTime"
|
|
example: 2025-01-15T10:30:00
|
|
typeAction:
|
|
description: Type d'action effectuée
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/TypeActionAudit"
|
|
example: USER_CREATE
|
|
ressourceType:
|
|
description: Type de ressource affectée
|
|
type: string
|
|
example: USER
|
|
ressourceId:
|
|
description: ID de la ressource affectée
|
|
type: string
|
|
example: a1b2c3d4-e5f6-7890-1234-567890abcdef
|
|
ressourceName:
|
|
description: Nom/Identifiant de la ressource
|
|
type: string
|
|
example: jdupont
|
|
realmName:
|
|
description: Nom du Realm
|
|
type: string
|
|
example: btpxpress
|
|
ipAddress:
|
|
description: Adresse IP de l'acteur
|
|
type: string
|
|
example: 192.168.1.100
|
|
userAgent:
|
|
description: User-Agent du client
|
|
type: string
|
|
example: Mozilla/5.0...
|
|
geolocation:
|
|
description: Localisation géographique
|
|
type: string
|
|
example: "Abidjan, Côte d'Ivoire"
|
|
apiEndpoint:
|
|
description: Endpoint API appelé
|
|
type: string
|
|
example: /api/users/create
|
|
httpMethod:
|
|
description: Méthode HTTP
|
|
type: string
|
|
example: POST
|
|
description:
|
|
description: Description de l'action
|
|
type: string
|
|
example: Création d'un nouvel utilisateur
|
|
detailsJson:
|
|
description: Détails de l'action au format JSON
|
|
type: string
|
|
oldValue:
|
|
description: Ancienne valeur (avant modification)
|
|
type: string
|
|
newValue:
|
|
description: Nouvelle valeur (après modification)
|
|
type: string
|
|
diff:
|
|
description: Différences entre ancienne et nouvelle valeur
|
|
type: string
|
|
success:
|
|
description: Succès de l'opération
|
|
type: boolean
|
|
example: true
|
|
errorCode:
|
|
description: Code d'erreur (si échec)
|
|
type: string
|
|
example: USER_ALREADY_EXISTS
|
|
errorMessage:
|
|
description: Message d'erreur (si échec)
|
|
type: string
|
|
stackTrace:
|
|
description: Trace d'erreur complète (si échec)
|
|
type: string
|
|
executionTimeMs:
|
|
format: int64
|
|
description: Durée d'exécution en millisecondes
|
|
type: integer
|
|
example: 145
|
|
sessionId:
|
|
description: ID de session/transaction
|
|
type: string
|
|
example: sess_abc123
|
|
correlationId:
|
|
description: ID de corrélation (pour tracer requêtes liées)
|
|
type: string
|
|
example: corr_xyz789
|
|
raison:
|
|
description: Raison de l'action
|
|
type: string
|
|
example: Demande du manager
|
|
commentaires:
|
|
description: Commentaires administratifs
|
|
type: string
|
|
example: Promotion suite à évaluation annuelle
|
|
metadata:
|
|
description: Métadonnées supplémentaires
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
critique:
|
|
description: Indique si l'action est critique
|
|
type: boolean
|
|
example: false
|
|
requiresAlert:
|
|
description: Indique si l'action nécessite une alerte
|
|
type: boolean
|
|
example: false
|
|
notified:
|
|
description: Indique si l'action a été notifiée
|
|
type: boolean
|
|
example: true
|
|
successful:
|
|
type: boolean
|
|
failed:
|
|
type: boolean
|
|
summary:
|
|
type: string
|
|
AuthorizedRealmsDTO:
|
|
description: Liste des realms autorisés pour un utilisateur
|
|
type: object
|
|
properties:
|
|
realms:
|
|
description: Liste des realms (peut être vide si super admin)
|
|
type: array
|
|
items:
|
|
type: string
|
|
isSuperAdmin:
|
|
description: L'utilisateur est super admin
|
|
type: boolean
|
|
superAdmin:
|
|
type: boolean
|
|
BackupConfigResponse:
|
|
type: object
|
|
properties:
|
|
autoBackupEnabled:
|
|
type: boolean
|
|
frequency:
|
|
type: string
|
|
retention:
|
|
type: string
|
|
retentionDays:
|
|
format: int32
|
|
type: integer
|
|
backupTime:
|
|
type: string
|
|
includeDatabase:
|
|
type: boolean
|
|
includeFiles:
|
|
type: boolean
|
|
includeConfiguration:
|
|
type: boolean
|
|
lastBackup:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
nextScheduledBackup:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
totalBackups:
|
|
format: int32
|
|
type: integer
|
|
totalSizeBytes:
|
|
format: int64
|
|
type: integer
|
|
totalSizeFormatted:
|
|
type: string
|
|
BackupResponse:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
type:
|
|
type: string
|
|
sizeBytes:
|
|
format: int64
|
|
type: integer
|
|
sizeFormatted:
|
|
type: string
|
|
status:
|
|
type: string
|
|
createdAt:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
completedAt:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
createdBy:
|
|
type: string
|
|
includesDatabase:
|
|
type: boolean
|
|
includesFiles:
|
|
type: boolean
|
|
includesConfiguration:
|
|
type: boolean
|
|
filePath:
|
|
type: string
|
|
errorMessage:
|
|
type: string
|
|
BaseDTO:
|
|
description: DTO de base contenant les attributs communs à tous les objets
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Identifiant unique (UUID Keycloak)
|
|
type: string
|
|
example: f47ac10b-58cc-4372-a567-0e02b2c3d479
|
|
dateCreation:
|
|
description: Date de création
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDateTime"
|
|
example: 2025-01-15T10:30:00
|
|
dateModification:
|
|
description: Date de dernière modification
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDateTime"
|
|
example: 2025-01-15T14:20:00
|
|
creeParUsername:
|
|
description: Utilisateur ayant créé l'entité
|
|
type: string
|
|
example: admin@lions.dev
|
|
modifieParUsername:
|
|
description: Utilisateur ayant modifié l'entité
|
|
type: string
|
|
example: superadmin@lions.dev
|
|
version:
|
|
format: int64
|
|
description: Numéro de version pour gestion optimiste
|
|
type: integer
|
|
example: 1
|
|
BeneficiaireAideDTO:
|
|
required:
|
|
- nomComplet
|
|
- relationDemandeur
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
nomComplet:
|
|
maxLength: 100
|
|
pattern: \S
|
|
type: string
|
|
relationDemandeur:
|
|
pattern: \S
|
|
type: string
|
|
dateNaissance:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
age:
|
|
format: int32
|
|
type: integer
|
|
genre:
|
|
type: string
|
|
telephone:
|
|
pattern: "^\\+?[0-9]{8,15}$"
|
|
type: string
|
|
email:
|
|
type: string
|
|
adresse:
|
|
maxLength: 200
|
|
type: string
|
|
situationParticuliere:
|
|
maxLength: 500
|
|
type: string
|
|
estDemandeurPrincipal:
|
|
type: boolean
|
|
pourcentageAide:
|
|
format: double
|
|
maximum: 100
|
|
minimum: 0
|
|
type: number
|
|
montantSpecifique:
|
|
format: double
|
|
minimum: 0
|
|
type: number
|
|
BloquerMembreRequest:
|
|
required:
|
|
- membreABloquerId
|
|
- organisationId
|
|
type: object
|
|
properties:
|
|
membreABloquerId:
|
|
$ref: "#/components/schemas/UUID"
|
|
organisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
CacheEntry:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
sizeBytes:
|
|
format: int64
|
|
type: integer
|
|
entries:
|
|
format: int32
|
|
type: integer
|
|
hitRate:
|
|
format: double
|
|
type: number
|
|
hits:
|
|
format: int64
|
|
type: integer
|
|
misses:
|
|
format: int64
|
|
type: integer
|
|
lastAccessed:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
CacheStatsResponse:
|
|
type: object
|
|
properties:
|
|
totalSizeBytes:
|
|
format: int64
|
|
type: integer
|
|
totalSizeFormatted:
|
|
type: string
|
|
totalEntries:
|
|
format: int32
|
|
type: integer
|
|
hitRate:
|
|
format: double
|
|
type: number
|
|
hits:
|
|
format: int64
|
|
type: integer
|
|
misses:
|
|
format: int64
|
|
type: integer
|
|
lastCleared:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
caches:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/CacheEntry"
|
|
CampagneAgricoleDTO:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
nouveau:
|
|
type: boolean
|
|
organisationCoopId:
|
|
type: string
|
|
designation:
|
|
type: string
|
|
typeCulturePrincipale:
|
|
type: string
|
|
surfaceTotaleEstimeeHectares:
|
|
type: number
|
|
volumePrevisionnelTonnes:
|
|
type: number
|
|
volumeReelTonnes:
|
|
type: number
|
|
statut:
|
|
$ref: "#/components/schemas/StatutCampagneAgricole"
|
|
CampagneCollecteResponse:
|
|
description: Campagne de levée de fonds (Crowdfunding / ONG)
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
nouveau:
|
|
type: boolean
|
|
organisationId:
|
|
type: string
|
|
titre:
|
|
type: string
|
|
courteDescription:
|
|
type: string
|
|
htmlDescriptionComplete:
|
|
type: string
|
|
imageBanniereUrl:
|
|
type: string
|
|
objectifFinancier:
|
|
description: Objectif monétaire escompté
|
|
type: number
|
|
montantCollecteActuel:
|
|
description: Somme totale déjà récoltée sur cette campagne
|
|
type: number
|
|
nombreDonateurs:
|
|
format: int32
|
|
type: integer
|
|
statut:
|
|
$ref: "#/components/schemas/StatutCampagneCollecte"
|
|
dateOuverture:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateCloturePrevue:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
estPublique:
|
|
type: boolean
|
|
CampagneVoteRequest:
|
|
description: Requête de création d'une campagne de vote électronique
|
|
required:
|
|
- titre
|
|
- organisationId
|
|
- typeVote
|
|
- modeScrutin
|
|
- dateOuverture
|
|
- dateFermeture
|
|
type: object
|
|
properties:
|
|
titre:
|
|
pattern: \S
|
|
type: string
|
|
descriptionOuResolution:
|
|
type: string
|
|
organisationId:
|
|
pattern: \S
|
|
type: string
|
|
typeVote:
|
|
$ref: "#/components/schemas/TypeVote"
|
|
modeScrutin:
|
|
$ref: "#/components/schemas/ModeScrutin"
|
|
dateOuverture:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateFermeture:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
restreindreMembresAJour:
|
|
description: Restreindre le vote aux membres à jour de cotisations (Optionnel)
|
|
type: boolean
|
|
autoriserVoteBlanc:
|
|
description: Permettre le vote blanc (Optionnel)
|
|
type: boolean
|
|
CandidatDTO:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
nouveau:
|
|
type: boolean
|
|
campagneVoteId:
|
|
type: string
|
|
nomCandidatureOuChoix:
|
|
type: string
|
|
membreIdAssocie:
|
|
type: string
|
|
professionDeFoi:
|
|
type: string
|
|
photoUrl:
|
|
type: string
|
|
nombreDeVoix:
|
|
format: int32
|
|
type: integer
|
|
pourcentageObtenu:
|
|
type: number
|
|
CommentaireAideResponse:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
contenu:
|
|
type: string
|
|
typeCommentaire:
|
|
type: string
|
|
auteurId:
|
|
$ref: "#/components/schemas/UUID"
|
|
auteurNom:
|
|
type: string
|
|
auteurRole:
|
|
type: string
|
|
estPrive:
|
|
type: boolean
|
|
estImportant:
|
|
type: boolean
|
|
commentaireParentId:
|
|
$ref: "#/components/schemas/UUID"
|
|
reponses:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/CommentaireAideResponse"
|
|
piecesJointes:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/PieceJustificativeDTO"
|
|
mentionsUtilisateurs:
|
|
type: array
|
|
items:
|
|
type: string
|
|
estModifie:
|
|
type: boolean
|
|
nombreReactions:
|
|
format: int32
|
|
type: integer
|
|
estResolu:
|
|
type: boolean
|
|
dateResolution:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
resoluteurId:
|
|
$ref: "#/components/schemas/UUID"
|
|
CompteEpargneRequest:
|
|
description: Requête d'ouverture d'un compte d'épargne
|
|
required:
|
|
- membreId
|
|
- organisationId
|
|
- typeCompte
|
|
type: object
|
|
properties:
|
|
membreId:
|
|
description: ID UUID du Membre détenteur
|
|
pattern: \S
|
|
type: string
|
|
organisationId:
|
|
description: ID UUID de l'Organisation / Mutuelle
|
|
pattern: \S
|
|
type: string
|
|
typeCompte:
|
|
description: Le type du compte d'épargne demandé
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/TypeCompteEpargne"
|
|
notesOuverture:
|
|
description: Notes ou détails éventuels lors de l'ouverture
|
|
type: string
|
|
CompteEpargneResponse:
|
|
description: Réponse des informations d'un compte épargne
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
nouveau:
|
|
type: boolean
|
|
membreId:
|
|
type: string
|
|
organisationId:
|
|
type: string
|
|
numeroCompte:
|
|
description: "Numéro de compte généré de manière unique (ex: MEC-00123)"
|
|
type: string
|
|
typeCompte:
|
|
$ref: "#/components/schemas/TypeCompteEpargne"
|
|
soldeActuel:
|
|
description: Solde principal disponible
|
|
type: number
|
|
soldeBloque:
|
|
description: Fonds gelés pour garantie de crédits
|
|
type: number
|
|
statut:
|
|
$ref: "#/components/schemas/StatutCompteEpargne"
|
|
dateOuverture:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
dateDerniereTransaction:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
description:
|
|
type: string
|
|
CompteWaveDTO:
|
|
required:
|
|
- numeroTelephone
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
nouveau:
|
|
type: boolean
|
|
numeroTelephone:
|
|
pattern: "^\\+225[0-9]{8}$"
|
|
type: string
|
|
statutCompte:
|
|
$ref: "#/components/schemas/StatutCompteWave"
|
|
waveAccountId:
|
|
type: string
|
|
environnement:
|
|
type: string
|
|
dateDerniereVerification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
commentaire:
|
|
type: string
|
|
organisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
membreId:
|
|
$ref: "#/components/schemas/UUID"
|
|
ContactProposantDTO:
|
|
type: object
|
|
properties:
|
|
telephonePrincipal:
|
|
pattern: "^\\+?[0-9]{8,15}$"
|
|
type: string
|
|
telephoneSecondaire:
|
|
pattern: "^\\+?[0-9]{8,15}$"
|
|
type: string
|
|
email:
|
|
type: string
|
|
emailSecondaire:
|
|
type: string
|
|
whatsapp:
|
|
pattern: "^\\+?[0-9]{8,15}$"
|
|
type: string
|
|
telegram:
|
|
maxLength: 50
|
|
type: string
|
|
autresContacts:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
adressePhysique:
|
|
maxLength: 200
|
|
type: string
|
|
rencontresPhysiquesPossibles:
|
|
type: boolean
|
|
appelsAcceptes:
|
|
type: boolean
|
|
smsAcceptes:
|
|
type: boolean
|
|
emailsAcceptes:
|
|
type: boolean
|
|
horairesDisponibilite:
|
|
maxLength: 200
|
|
type: string
|
|
languesPreferees:
|
|
type: array
|
|
items:
|
|
type: string
|
|
instructionsSpeciales:
|
|
maxLength: 300
|
|
type: string
|
|
ContactUrgenceDTO:
|
|
required:
|
|
- nomComplet
|
|
- relation
|
|
- telephonePrincipal
|
|
type: object
|
|
properties:
|
|
nomComplet:
|
|
maxLength: 100
|
|
pattern: \S
|
|
type: string
|
|
relation:
|
|
maxLength: 50
|
|
pattern: \S
|
|
type: string
|
|
telephonePrincipal:
|
|
pattern: "^\\+?[0-9]{8,15}$"
|
|
type: string
|
|
telephoneSecondaire:
|
|
pattern: "^\\+?[0-9]{8,15}$"
|
|
type: string
|
|
email:
|
|
type: string
|
|
adresse:
|
|
maxLength: 200
|
|
type: string
|
|
disponibilite:
|
|
maxLength: 100
|
|
type: string
|
|
peutPrendreDecisions:
|
|
type: boolean
|
|
notificationAutomatique:
|
|
type: boolean
|
|
commentaires:
|
|
maxLength: 300
|
|
type: string
|
|
ContributionCollecteDTO:
|
|
description: Don transactionnel reçu pour une campagne de collecte
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
nouveau:
|
|
type: boolean
|
|
campagneId:
|
|
type: string
|
|
membreDonateurId:
|
|
description: Id du membre (Null si le don est public/externe)
|
|
type: string
|
|
aliasDonateur:
|
|
description: Nom affiché si don public ou pour le mur de contributeurs
|
|
type: string
|
|
estAnonyme:
|
|
type: boolean
|
|
montantSoutien:
|
|
type: number
|
|
messageSoutien:
|
|
type: string
|
|
dateContribution:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
transactionPaiementId:
|
|
type: string
|
|
statutPaiement:
|
|
$ref: "#/components/schemas/StatutTransactionWave"
|
|
CotisationResponse:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
numeroReference:
|
|
type: string
|
|
membreId:
|
|
$ref: "#/components/schemas/UUID"
|
|
nomMembre:
|
|
type: string
|
|
nomCompletMembre:
|
|
type: string
|
|
numeroMembre:
|
|
type: string
|
|
initialesMembre:
|
|
type: string
|
|
typeMembre:
|
|
type: string
|
|
organisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
nomOrganisation:
|
|
type: string
|
|
regionOrganisation:
|
|
type: string
|
|
iconeOrganisation:
|
|
type: string
|
|
typeCotisation:
|
|
type: string
|
|
type:
|
|
type: string
|
|
typeCotisationLibelle:
|
|
type: string
|
|
typeLibelle:
|
|
type: string
|
|
typeSeverity:
|
|
type: string
|
|
typeIcon:
|
|
type: string
|
|
libelle:
|
|
type: string
|
|
description:
|
|
type: string
|
|
montantDu:
|
|
type: number
|
|
montant:
|
|
type: number
|
|
montantFormatte:
|
|
type: string
|
|
montantPaye:
|
|
type: number
|
|
montantRestant:
|
|
type: number
|
|
codeDevise:
|
|
type: string
|
|
statut:
|
|
type: string
|
|
statutLibelle:
|
|
type: string
|
|
statutSeverity:
|
|
type: string
|
|
statutIcon:
|
|
type: string
|
|
dateEcheance:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
dateEcheanceFormattee:
|
|
type: string
|
|
retardCouleur:
|
|
type: string
|
|
retardTexte:
|
|
type: string
|
|
datePaiementFormattee:
|
|
type: string
|
|
modePaiementIcon:
|
|
type: string
|
|
modePaiementLibelle:
|
|
type: string
|
|
datePaiement:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
periode:
|
|
type: string
|
|
annee:
|
|
format: int32
|
|
type: integer
|
|
mois:
|
|
format: int32
|
|
type: integer
|
|
observations:
|
|
type: string
|
|
recurrente:
|
|
type: boolean
|
|
nombreRappels:
|
|
format: int32
|
|
type: integer
|
|
dateDernierRappel:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
valideParId:
|
|
$ref: "#/components/schemas/UUID"
|
|
nomValidateur:
|
|
type: string
|
|
dateValidation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
pourcentagePaiement:
|
|
format: int32
|
|
type: integer
|
|
joursRetard:
|
|
format: int64
|
|
type: integer
|
|
enRetard:
|
|
type: boolean
|
|
methodePaiement:
|
|
type: string
|
|
referencePaiement:
|
|
type: string
|
|
waveSessionId:
|
|
type: string
|
|
montantDuFormatte:
|
|
type: string
|
|
montantPayeFormatte:
|
|
type: string
|
|
montantRestantFormatte:
|
|
type: string
|
|
montantRestantPositif:
|
|
type: boolean
|
|
methodePaiementLibelle:
|
|
type: string
|
|
CotisationSummaryResponse:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
numeroReference:
|
|
type: string
|
|
nomMembre:
|
|
type: string
|
|
montantDu:
|
|
type: number
|
|
montantPaye:
|
|
type: number
|
|
statut:
|
|
type: string
|
|
statutLibelle:
|
|
type: string
|
|
dateEcheance:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
annee:
|
|
format: int32
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
CountDTO:
|
|
description: Réponse de comptage générique
|
|
type: object
|
|
properties:
|
|
count:
|
|
format: int64
|
|
description: Nombre d'éléments
|
|
type: integer
|
|
CreateAdhesionRequest:
|
|
required:
|
|
- numeroReference
|
|
- membreId
|
|
- organisationId
|
|
- dateDemande
|
|
- fraisAdhesion
|
|
- codeDevise
|
|
type: object
|
|
properties:
|
|
numeroReference:
|
|
maxLength: 50
|
|
pattern: \S
|
|
type: string
|
|
membreId:
|
|
$ref: "#/components/schemas/UUID"
|
|
organisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateDemande:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
fraisAdhesion:
|
|
minimum: 0
|
|
exclusiveMinimum: true
|
|
pattern: "^\\d{1,10}([.]\\d{1,2})?$"
|
|
type: number
|
|
codeDevise:
|
|
pattern: "^[A-Z]{3}$"
|
|
type: string
|
|
observations:
|
|
maxLength: 1000
|
|
type: string
|
|
CreateAuditLogRequest:
|
|
type: object
|
|
properties:
|
|
typeAction:
|
|
type: string
|
|
severite:
|
|
type: string
|
|
utilisateur:
|
|
type: string
|
|
role:
|
|
type: string
|
|
module:
|
|
type: string
|
|
description:
|
|
type: string
|
|
details:
|
|
type: string
|
|
ipAddress:
|
|
type: string
|
|
userAgent:
|
|
type: string
|
|
sessionId:
|
|
type: string
|
|
dateHeure:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
donneesAvant:
|
|
type: string
|
|
donneesApres:
|
|
type: string
|
|
entiteId:
|
|
type: string
|
|
entiteType:
|
|
type: string
|
|
CreateBackupRequest:
|
|
required:
|
|
- name
|
|
type: object
|
|
properties:
|
|
name:
|
|
pattern: \S
|
|
type: string
|
|
description:
|
|
type: string
|
|
type:
|
|
type: string
|
|
includeDatabase:
|
|
type: boolean
|
|
includeFiles:
|
|
type: boolean
|
|
includeConfiguration:
|
|
type: boolean
|
|
CreateBudgetLineRequest:
|
|
required:
|
|
- category
|
|
- name
|
|
- amountPlanned
|
|
type: object
|
|
properties:
|
|
category:
|
|
pattern: ^(CONTRIBUTIONS|SAVINGS|SOLIDARITY|EVENTS|OPERATIONAL|INVESTMENTS|OTHER)$
|
|
type: string
|
|
name:
|
|
maxLength: 200
|
|
pattern: \S
|
|
type: string
|
|
description:
|
|
maxLength: 500
|
|
type: string
|
|
amountPlanned:
|
|
minimum: 0
|
|
pattern: "^\\d{1,14}([.]\\d{1,2})?$"
|
|
type: number
|
|
notes:
|
|
maxLength: 1000
|
|
type: string
|
|
CreateBudgetRequest:
|
|
required:
|
|
- name
|
|
- organizationId
|
|
- period
|
|
- year
|
|
- lines
|
|
type: object
|
|
properties:
|
|
name:
|
|
maxLength: 200
|
|
pattern: \S
|
|
type: string
|
|
description:
|
|
maxLength: 1000
|
|
type: string
|
|
organizationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
period:
|
|
pattern: ^(MONTHLY|QUARTERLY|SEMIANNUAL|ANNUAL)$
|
|
type: string
|
|
year:
|
|
format: int32
|
|
maximum: 2100
|
|
minimum: 2020
|
|
type: integer
|
|
month:
|
|
format: int32
|
|
maximum: 12
|
|
minimum: 1
|
|
type: integer
|
|
lines:
|
|
minItems: 1
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/CreateBudgetLineRequest"
|
|
currency:
|
|
pattern: "^[A-Z]{3}$"
|
|
type: string
|
|
CreateCompteComptableRequest:
|
|
required:
|
|
- numeroCompte
|
|
- libelle
|
|
- typeCompte
|
|
- classeComptable
|
|
type: object
|
|
properties:
|
|
numeroCompte:
|
|
pattern: \S
|
|
type: string
|
|
libelle:
|
|
pattern: \S
|
|
type: string
|
|
typeCompte:
|
|
$ref: "#/components/schemas/TypeCompteComptable"
|
|
classeComptable:
|
|
format: int32
|
|
maximum: 7
|
|
minimum: 1
|
|
type: integer
|
|
soldeInitial:
|
|
type: number
|
|
soldeActuel:
|
|
type: number
|
|
compteCollectif:
|
|
type: boolean
|
|
compteAnalytique:
|
|
type: boolean
|
|
description:
|
|
type: string
|
|
CreateCotisationRequest:
|
|
required:
|
|
- membreId
|
|
- organisationId
|
|
- typeCotisation
|
|
- libelle
|
|
- montantDu
|
|
- dateEcheance
|
|
type: object
|
|
properties:
|
|
membreId:
|
|
$ref: "#/components/schemas/UUID"
|
|
organisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
typeCotisation:
|
|
pattern: \S
|
|
type: string
|
|
libelle:
|
|
maxLength: 100
|
|
pattern: \S
|
|
type: string
|
|
description:
|
|
maxLength: 500
|
|
type: string
|
|
montantDu:
|
|
minimum: 0
|
|
exclusiveMinimum: true
|
|
pattern: "^\\d{1,10}([.]\\d{1,2})?$"
|
|
type: number
|
|
codeDevise:
|
|
maxLength: 3
|
|
minLength: 3
|
|
type: string
|
|
dateEcheance:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
periode:
|
|
maxLength: 50
|
|
type: string
|
|
annee:
|
|
format: int32
|
|
maximum: 2100
|
|
minimum: 2020
|
|
type: integer
|
|
mois:
|
|
format: int32
|
|
maximum: 12
|
|
minimum: 1
|
|
type: integer
|
|
recurrente:
|
|
type: boolean
|
|
observations:
|
|
maxLength: 1000
|
|
type: string
|
|
CreateDemandeAideRequest:
|
|
required:
|
|
- typeAide
|
|
- titre
|
|
- description
|
|
- membreDemandeurId
|
|
- associationId
|
|
type: object
|
|
properties:
|
|
typeAide:
|
|
$ref: "#/components/schemas/TypeAide"
|
|
titre:
|
|
maxLength: 200
|
|
pattern: \S
|
|
type: string
|
|
description:
|
|
maxLength: 2000
|
|
pattern: \S
|
|
type: string
|
|
justification:
|
|
maxLength: 1000
|
|
type: string
|
|
montantDemande:
|
|
minimum: 0
|
|
exclusiveMinimum: true
|
|
pattern: "^\\d{1,12}([.]\\d{1,2})?$"
|
|
type: number
|
|
devise:
|
|
pattern: "^[A-Z]{3}$"
|
|
type: string
|
|
membreDemandeurId:
|
|
$ref: "#/components/schemas/UUID"
|
|
associationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
priorite:
|
|
$ref: "#/components/schemas/PrioriteAide"
|
|
piecesJustificatives:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/PieceJustificativeDTO"
|
|
beneficiaires:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/BeneficiaireAideDTO"
|
|
donneesPersonnalisees:
|
|
type: object
|
|
additionalProperties: {}
|
|
tags:
|
|
type: array
|
|
items:
|
|
type: string
|
|
estConfidentielle:
|
|
type: boolean
|
|
localisation:
|
|
$ref: "#/components/schemas/LocalisationDTO"
|
|
contactUrgence:
|
|
$ref: "#/components/schemas/ContactUrgenceDTO"
|
|
dateLimite:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
CreateDocumentRequest:
|
|
required:
|
|
- nomFichier
|
|
- cheminStockage
|
|
- tailleOctets
|
|
type: object
|
|
properties:
|
|
nomFichier:
|
|
pattern: \S
|
|
type: string
|
|
nomOriginal:
|
|
type: string
|
|
cheminStockage:
|
|
pattern: \S
|
|
type: string
|
|
typeMime:
|
|
type: string
|
|
tailleOctets:
|
|
format: int64
|
|
minimum: 0
|
|
type: integer
|
|
typeDocument:
|
|
$ref: "#/components/schemas/TypeDocument"
|
|
hashMd5:
|
|
type: string
|
|
hashSha256:
|
|
type: string
|
|
description:
|
|
type: string
|
|
CreateEcritureComptableRequest:
|
|
required:
|
|
- numeroPiece
|
|
- dateEcriture
|
|
- libelle
|
|
- journalId
|
|
type: object
|
|
properties:
|
|
numeroPiece:
|
|
pattern: \S
|
|
type: string
|
|
dateEcriture:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
libelle:
|
|
pattern: \S
|
|
type: string
|
|
reference:
|
|
type: string
|
|
lettrage:
|
|
type: string
|
|
pointe:
|
|
type: boolean
|
|
montantDebit:
|
|
minimum: 0
|
|
pattern: "^\\d{1,12}([.]\\d{1,2})?$"
|
|
type: number
|
|
montantCredit:
|
|
minimum: 0
|
|
pattern: "^\\d{1,12}([.]\\d{1,2})?$"
|
|
type: number
|
|
commentaire:
|
|
type: string
|
|
journalId:
|
|
$ref: "#/components/schemas/UUID"
|
|
organisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
paiementId:
|
|
$ref: "#/components/schemas/UUID"
|
|
lignes:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/CreateLigneEcritureRequest"
|
|
CreateFavoriRequest:
|
|
type: object
|
|
properties:
|
|
utilisateurId:
|
|
$ref: "#/components/schemas/UUID"
|
|
typeFavori:
|
|
type: string
|
|
titre:
|
|
type: string
|
|
description:
|
|
type: string
|
|
url:
|
|
type: string
|
|
icon:
|
|
type: string
|
|
couleur:
|
|
type: string
|
|
categorie:
|
|
type: string
|
|
ordre:
|
|
format: int32
|
|
type: integer
|
|
nbVisites:
|
|
format: int32
|
|
type: integer
|
|
derniereVisite:
|
|
type: string
|
|
estPlusUtilise:
|
|
type: boolean
|
|
CreateJournalComptableRequest:
|
|
required:
|
|
- code
|
|
- libelle
|
|
- typeJournal
|
|
type: object
|
|
properties:
|
|
code:
|
|
pattern: \S
|
|
type: string
|
|
libelle:
|
|
pattern: \S
|
|
type: string
|
|
typeJournal:
|
|
$ref: "#/components/schemas/TypeJournalComptable"
|
|
dateDebut:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
dateFin:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
statut:
|
|
type: string
|
|
description:
|
|
type: string
|
|
CreateLigneEcritureRequest:
|
|
required:
|
|
- numeroLigne
|
|
- ecritureId
|
|
- compteComptableId
|
|
type: object
|
|
properties:
|
|
numeroLigne:
|
|
format: int32
|
|
minimum: 1
|
|
type: integer
|
|
montantDebit:
|
|
minimum: 0
|
|
pattern: "^\\d{1,12}([.]\\d{1,2})?$"
|
|
type: number
|
|
montantCredit:
|
|
minimum: 0
|
|
pattern: "^\\d{1,12}([.]\\d{1,2})?$"
|
|
type: number
|
|
libelle:
|
|
type: string
|
|
reference:
|
|
type: string
|
|
ecritureId:
|
|
$ref: "#/components/schemas/UUID"
|
|
compteComptableId:
|
|
$ref: "#/components/schemas/UUID"
|
|
CreateMembreRequest:
|
|
required:
|
|
- prenom
|
|
- nom
|
|
- email
|
|
- dateNaissance
|
|
type: object
|
|
properties:
|
|
prenom:
|
|
maxLength: 100
|
|
pattern: \S
|
|
type: string
|
|
nom:
|
|
maxLength: 100
|
|
pattern: \S
|
|
type: string
|
|
email:
|
|
maxLength: 255
|
|
pattern: \S
|
|
type: string
|
|
telephone:
|
|
maxLength: 20
|
|
type: string
|
|
telephoneWave:
|
|
maxLength: 20
|
|
type: string
|
|
dateNaissance:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
profession:
|
|
maxLength: 100
|
|
type: string
|
|
photoUrl:
|
|
maxLength: 500
|
|
type: string
|
|
statutMatrimonial:
|
|
maxLength: 50
|
|
type: string
|
|
nationalite:
|
|
maxLength: 100
|
|
type: string
|
|
typeIdentite:
|
|
maxLength: 50
|
|
type: string
|
|
numeroIdentite:
|
|
maxLength: 100
|
|
type: string
|
|
organisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
CreateNotificationRequest:
|
|
required:
|
|
- typeNotification
|
|
type: object
|
|
properties:
|
|
typeNotification:
|
|
type: string
|
|
priorite:
|
|
type: string
|
|
sujet:
|
|
type: string
|
|
corps:
|
|
type: string
|
|
dateEnvoiPrevue:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
donneesAdditionnelles:
|
|
type: string
|
|
membreId:
|
|
$ref: "#/components/schemas/UUID"
|
|
organisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
templateId:
|
|
$ref: "#/components/schemas/UUID"
|
|
CreateOrganisationRequest:
|
|
required:
|
|
- nom
|
|
- email
|
|
type: object
|
|
properties:
|
|
nom:
|
|
maxLength: 255
|
|
pattern: \S
|
|
type: string
|
|
nomCourt:
|
|
maxLength: 50
|
|
type: string
|
|
description:
|
|
maxLength: 2000
|
|
type: string
|
|
email:
|
|
maxLength: 255
|
|
pattern: \S
|
|
type: string
|
|
telephone:
|
|
maxLength: 20
|
|
type: string
|
|
telephoneSecondaire:
|
|
maxLength: 20
|
|
type: string
|
|
emailSecondaire:
|
|
maxLength: 255
|
|
type: string
|
|
siteWeb:
|
|
maxLength: 500
|
|
type: string
|
|
logo:
|
|
maxLength: 500
|
|
type: string
|
|
reseauxSociaux:
|
|
maxLength: 1000
|
|
type: string
|
|
typeOrganisation:
|
|
maxLength: 50
|
|
type: string
|
|
statut:
|
|
maxLength: 30
|
|
type: string
|
|
dateFondation:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
numeroEnregistrement:
|
|
maxLength: 100
|
|
type: string
|
|
devise:
|
|
maxLength: 3
|
|
type: string
|
|
budgetAnnuel:
|
|
type: number
|
|
cotisationObligatoire:
|
|
type: boolean
|
|
montantCotisationAnnuelle:
|
|
type: number
|
|
objectifs:
|
|
maxLength: 2000
|
|
type: string
|
|
activitesPrincipales:
|
|
maxLength: 2000
|
|
type: string
|
|
certifications:
|
|
maxLength: 500
|
|
type: string
|
|
partenaires:
|
|
maxLength: 1000
|
|
type: string
|
|
notes:
|
|
maxLength: 1000
|
|
type: string
|
|
latitude:
|
|
type: number
|
|
longitude:
|
|
type: number
|
|
adresse:
|
|
maxLength: 500
|
|
type: string
|
|
ville:
|
|
maxLength: 100
|
|
type: string
|
|
region:
|
|
maxLength: 100
|
|
type: string
|
|
pays:
|
|
maxLength: 100
|
|
type: string
|
|
codePostal:
|
|
maxLength: 20
|
|
type: string
|
|
organisationPublique:
|
|
type: boolean
|
|
accepteNouveauxMembres:
|
|
type: boolean
|
|
CreatePaiementRequest:
|
|
required:
|
|
- numeroReference
|
|
- montant
|
|
- codeDevise
|
|
- methodePaiement
|
|
type: object
|
|
properties:
|
|
numeroReference:
|
|
pattern: \S
|
|
type: string
|
|
montant:
|
|
minimum: 0.01
|
|
type: number
|
|
codeDevise:
|
|
pattern: \S
|
|
type: string
|
|
methodePaiement:
|
|
pattern: \S
|
|
type: string
|
|
commentaire:
|
|
type: string
|
|
membreId:
|
|
$ref: "#/components/schemas/UUID"
|
|
CreatePieceJointeRequest:
|
|
required:
|
|
- ordre
|
|
- documentId
|
|
- typeEntiteRattachee
|
|
- entiteRattacheeId
|
|
type: object
|
|
properties:
|
|
ordre:
|
|
format: int32
|
|
minimum: 1
|
|
type: integer
|
|
libelle:
|
|
type: string
|
|
commentaire:
|
|
type: string
|
|
documentId:
|
|
$ref: "#/components/schemas/UUID"
|
|
typeEntiteRattachee:
|
|
type: string
|
|
entiteRattacheeId:
|
|
$ref: "#/components/schemas/UUID"
|
|
CreatePropositionAideRequest:
|
|
type: object
|
|
properties:
|
|
typeAide:
|
|
$ref: "#/components/schemas/TypeAide"
|
|
titre:
|
|
type: string
|
|
description:
|
|
type: string
|
|
conditions:
|
|
type: string
|
|
montantMaximum:
|
|
type: number
|
|
nombreMaxBeneficiaires:
|
|
format: int32
|
|
type: integer
|
|
devise:
|
|
type: string
|
|
proposantId:
|
|
type: string
|
|
organisationId:
|
|
type: string
|
|
demandeAideId:
|
|
type: string
|
|
dateExpiration:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
delaiReponseHeures:
|
|
format: int32
|
|
type: integer
|
|
CreateSuggestionRequest:
|
|
required:
|
|
- utilisateurId
|
|
- titre
|
|
type: object
|
|
properties:
|
|
utilisateurId:
|
|
$ref: "#/components/schemas/UUID"
|
|
utilisateurNom:
|
|
type: string
|
|
titre:
|
|
pattern: \S
|
|
type: string
|
|
description:
|
|
type: string
|
|
justification:
|
|
type: string
|
|
categorie:
|
|
type: string
|
|
prioriteEstimee:
|
|
type: string
|
|
piecesJointes:
|
|
type: array
|
|
items:
|
|
type: string
|
|
CreateTemplateNotificationRequest:
|
|
required:
|
|
- code
|
|
type: object
|
|
properties:
|
|
code:
|
|
pattern: \S
|
|
type: string
|
|
sujet:
|
|
type: string
|
|
corpsTexte:
|
|
type: string
|
|
corpsHtml:
|
|
type: string
|
|
variablesDisponibles:
|
|
type: string
|
|
canauxSupportes:
|
|
type: string
|
|
langue:
|
|
type: string
|
|
description:
|
|
type: string
|
|
CreateTicketRequest:
|
|
required:
|
|
- utilisateurId
|
|
- sujet
|
|
- description
|
|
- categorie
|
|
- priorite
|
|
type: object
|
|
properties:
|
|
utilisateurId:
|
|
$ref: "#/components/schemas/UUID"
|
|
sujet:
|
|
maxLength: 200
|
|
pattern: \S
|
|
type: string
|
|
description:
|
|
maxLength: 2000
|
|
pattern: \S
|
|
type: string
|
|
categorie:
|
|
pattern: \S
|
|
type: string
|
|
priorite:
|
|
pattern: \S
|
|
type: string
|
|
piecesJointes:
|
|
type: array
|
|
items:
|
|
type: string
|
|
CreateTypeReferenceRequest:
|
|
required:
|
|
- domaine
|
|
- code
|
|
- libelle
|
|
type: object
|
|
properties:
|
|
domaine:
|
|
maxLength: 50
|
|
pattern: \S
|
|
type: string
|
|
code:
|
|
maxLength: 50
|
|
pattern: \S
|
|
type: string
|
|
libelle:
|
|
maxLength: 200
|
|
pattern: \S
|
|
type: string
|
|
description:
|
|
maxLength: 1000
|
|
type: string
|
|
icone:
|
|
maxLength: 100
|
|
type: string
|
|
couleur:
|
|
maxLength: 50
|
|
type: string
|
|
severity:
|
|
maxLength: 20
|
|
type: string
|
|
ordreAffichage:
|
|
format: int32
|
|
type: integer
|
|
estDefaut:
|
|
type: boolean
|
|
estSysteme:
|
|
type: boolean
|
|
organisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
categorie:
|
|
maxLength: 50
|
|
type: string
|
|
modulesRequis:
|
|
type: string
|
|
CreneauDisponibiliteDTO:
|
|
required:
|
|
- heureDebut
|
|
- heureFin
|
|
- type
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
jourSemaine:
|
|
$ref: "#/components/schemas/DayOfWeek"
|
|
dateSpecifique:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
heureDebut:
|
|
$ref: "#/components/schemas/LocalTime"
|
|
heureFin:
|
|
$ref: "#/components/schemas/LocalTime"
|
|
type:
|
|
$ref: "#/components/schemas/TypeCreneau"
|
|
estActif:
|
|
type: boolean
|
|
fuseauHoraire:
|
|
type: string
|
|
commentaires:
|
|
maxLength: 200
|
|
type: string
|
|
priorite:
|
|
format: int32
|
|
maximum: 5
|
|
minimum: 1
|
|
type: integer
|
|
dureeMaxMinutes:
|
|
format: int32
|
|
maximum: 480
|
|
minimum: 15
|
|
type: integer
|
|
pausesNecessaires:
|
|
type: boolean
|
|
dureePauseMinutes:
|
|
format: int32
|
|
minimum: 5
|
|
type: integer
|
|
valide:
|
|
type: boolean
|
|
dureeMinutes:
|
|
format: int64
|
|
type: integer
|
|
libelle:
|
|
type: string
|
|
CritereSelectionDTO:
|
|
required:
|
|
- nom
|
|
- type
|
|
- operateur
|
|
- valeur
|
|
type: object
|
|
properties:
|
|
nom:
|
|
maxLength: 100
|
|
pattern: \S
|
|
type: string
|
|
type:
|
|
pattern: \S
|
|
type: string
|
|
operateur:
|
|
pattern: \S
|
|
type: string
|
|
valeur:
|
|
pattern: \S
|
|
type: string
|
|
valeurMax:
|
|
type: string
|
|
estObligatoire:
|
|
type: boolean
|
|
poids:
|
|
format: int32
|
|
maximum: 10
|
|
minimum: 1
|
|
type: integer
|
|
description:
|
|
maxLength: 200
|
|
type: string
|
|
DayOfWeek:
|
|
enum:
|
|
- MONDAY
|
|
- TUESDAY
|
|
- WEDNESDAY
|
|
- THURSDAY
|
|
- FRIDAY
|
|
- SATURDAY
|
|
- SUNDAY
|
|
type: string
|
|
DeclarerPaiementManuelRequest:
|
|
required:
|
|
- cotisationId
|
|
- methodePaiement
|
|
type: object
|
|
properties:
|
|
cotisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
methodePaiement:
|
|
pattern: \S
|
|
type: string
|
|
reference:
|
|
type: string
|
|
commentaire:
|
|
type: string
|
|
DeclarerVersementManuelRequest:
|
|
required:
|
|
- cotisationId
|
|
- methodePaiement
|
|
type: object
|
|
properties:
|
|
cotisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
methodePaiement:
|
|
pattern: ^(ESPECES|VIREMENT|CHEQUE|AUTRE)$
|
|
type: string
|
|
reference:
|
|
maxLength: 100
|
|
type: string
|
|
commentaire:
|
|
maxLength: 500
|
|
type: string
|
|
origineFonds:
|
|
type: string
|
|
justificationLcbFt:
|
|
type: string
|
|
DemandeAideResponse:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
numeroReference:
|
|
type: string
|
|
typeAide:
|
|
$ref: "#/components/schemas/TypeAide"
|
|
titre:
|
|
type: string
|
|
description:
|
|
type: string
|
|
justification:
|
|
type: string
|
|
montantDemande:
|
|
type: number
|
|
montantApprouve:
|
|
type: number
|
|
montantVerse:
|
|
type: number
|
|
devise:
|
|
type: string
|
|
membreDemandeurId:
|
|
$ref: "#/components/schemas/UUID"
|
|
nomDemandeur:
|
|
type: string
|
|
numeroMembreDemandeur:
|
|
type: string
|
|
evaluateurId:
|
|
type: string
|
|
evaluateurNom:
|
|
type: string
|
|
approvateurId:
|
|
type: string
|
|
approvateurNom:
|
|
type: string
|
|
associationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
nomAssociation:
|
|
type: string
|
|
statut:
|
|
$ref: "#/components/schemas/StatutAide"
|
|
priorite:
|
|
$ref: "#/components/schemas/PrioriteAide"
|
|
motifRejet:
|
|
type: string
|
|
commentairesEvaluateur:
|
|
type: string
|
|
dateSoumission:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateLimiteTraitement:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateEvaluation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateApprobation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateVersement:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateCloture:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
piecesJustificatives:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/PieceJustificativeDTO"
|
|
beneficiaires:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/BeneficiaireAideDTO"
|
|
historiqueStatuts:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/HistoriqueStatutDTO"
|
|
commentaires:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/CommentaireAideResponse"
|
|
donneesPersonnalisees:
|
|
type: object
|
|
additionalProperties: {}
|
|
tags:
|
|
type: array
|
|
items:
|
|
type: string
|
|
estConfidentielle:
|
|
type: boolean
|
|
necessiteSuivi:
|
|
type: boolean
|
|
scorePriorite:
|
|
format: double
|
|
type: number
|
|
nombreVues:
|
|
format: int32
|
|
type: integer
|
|
localisation:
|
|
$ref: "#/components/schemas/LocalisationDTO"
|
|
contactUrgence:
|
|
$ref: "#/components/schemas/ContactUrgenceDTO"
|
|
dateLimite:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
justificatifsFournis:
|
|
type: boolean
|
|
documentsJoints:
|
|
type: string
|
|
dateDebutAide:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
dateFinAide:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
membreAidantId:
|
|
$ref: "#/components/schemas/UUID"
|
|
nomAidant:
|
|
type: string
|
|
modeVersement:
|
|
type: string
|
|
numeroTransaction:
|
|
type: string
|
|
rejeteParId:
|
|
$ref: "#/components/schemas/UUID"
|
|
rejetePar:
|
|
type: string
|
|
dateRejet:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
raisonRejet:
|
|
type: string
|
|
pourcentageAvancement:
|
|
format: double
|
|
type: number
|
|
delaiRestantHeures:
|
|
format: int64
|
|
type: integer
|
|
statutLibelle:
|
|
type: string
|
|
prioriteLibelle:
|
|
type: string
|
|
DemandeCreditRequest:
|
|
description: Requête initiale pour une demande de financement (Crédit)
|
|
required:
|
|
- membreId
|
|
- typeCredit
|
|
- montantDemande
|
|
- justificationDetaillee
|
|
type: object
|
|
properties:
|
|
membreId:
|
|
pattern: \S
|
|
type: string
|
|
typeCredit:
|
|
$ref: "#/components/schemas/TypeCredit"
|
|
montantDemande:
|
|
minimum: 1
|
|
type: number
|
|
dureeMois:
|
|
format: int32
|
|
minimum: 1
|
|
type: integer
|
|
compteLieId:
|
|
description: Compte épargne adossé (si remboursement automatique ou nantissement)
|
|
type: string
|
|
justificationDetaillee:
|
|
pattern: \S
|
|
type: string
|
|
documentIds:
|
|
description: Liste des IDs de documents justificatifs attachés au dossier
|
|
type: array
|
|
items:
|
|
type: string
|
|
garantiesProposees:
|
|
description: Liste des garanties proposées avec la demande
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/GarantieDemandeDTO"
|
|
DemandeCreditResponse:
|
|
description: Réponse avec le tableau de bord résumé d'un dossier de crédit
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
nouveau:
|
|
type: boolean
|
|
numeroDossier:
|
|
type: string
|
|
membreId:
|
|
type: string
|
|
typeCredit:
|
|
$ref: "#/components/schemas/TypeCredit"
|
|
compteLieId:
|
|
type: string
|
|
montantDemande:
|
|
type: number
|
|
dureeMoisDemande:
|
|
format: int32
|
|
type: integer
|
|
montantApprouve:
|
|
type: number
|
|
dureeMoisApprouvee:
|
|
format: int32
|
|
type: integer
|
|
tauxInteretAnnuel:
|
|
type: number
|
|
coutTotalCredit:
|
|
type: number
|
|
statut:
|
|
$ref: "#/components/schemas/StatutDemandeCredit"
|
|
notesComite:
|
|
type: string
|
|
dateSoumission:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
dateValidation:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
datePremierEcheance:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
echeancier:
|
|
description: Aperçu des échéances générées pour le tableau d'amortissement
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/EcheanceCreditDTO"
|
|
DemarrerConversationDirecteRequest:
|
|
required:
|
|
- destinataireId
|
|
- organisationId
|
|
type: object
|
|
properties:
|
|
destinataireId:
|
|
$ref: "#/components/schemas/UUID"
|
|
organisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
contenuInitial:
|
|
maxLength: 2000
|
|
type: string
|
|
DemarrerConversationRoleRequest:
|
|
required:
|
|
- organisationId
|
|
- roleCible
|
|
- contenuInitial
|
|
type: object
|
|
properties:
|
|
organisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
roleCible:
|
|
pattern: ^(PRESIDENT|TRESORIER|SECRETAIRE|VICE_PRESIDENT|ADMIN|ADMIN_ORGANISATION)$
|
|
type: string
|
|
contenuInitial:
|
|
maxLength: 2000
|
|
pattern: \S
|
|
type: string
|
|
DonReligieuxDTO:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
nouveau:
|
|
type: boolean
|
|
institutionId:
|
|
type: string
|
|
fideleId:
|
|
type: string
|
|
typeDon:
|
|
$ref: "#/components/schemas/TypeDonReligieux"
|
|
montant:
|
|
type: number
|
|
dateEncaissement:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
periodeOuNatureAssociee:
|
|
type: string
|
|
EcheanceCreditDTO:
|
|
description: Représente une ligne unique du tableau d'amortissement d'un crédit
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
nouveau:
|
|
type: boolean
|
|
demandeCreditId:
|
|
type: string
|
|
ordre:
|
|
format: int32
|
|
description: "Indice de l'échéance (ex: mois 1, 2, 3...)"
|
|
type: integer
|
|
dateEcheancePrevue:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
datePaiementEffectif:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
capitalAmorti:
|
|
type: number
|
|
interetsDeLaPeriode:
|
|
type: number
|
|
montantTotalExigible:
|
|
type: number
|
|
capitalRestantDu:
|
|
type: number
|
|
penalitesRetard:
|
|
type: number
|
|
montantRegle:
|
|
type: number
|
|
statut:
|
|
$ref: "#/components/schemas/StatutEcheanceCredit"
|
|
EchelonOrganigrammeDTO:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
nouveau:
|
|
type: boolean
|
|
organisationId:
|
|
type: string
|
|
echelonParentId:
|
|
type: string
|
|
niveau:
|
|
$ref: "#/components/schemas/NiveauEchelon"
|
|
designation:
|
|
type: string
|
|
zoneGeographiqueOuDelegation:
|
|
type: string
|
|
EnvoyerMessageRequest:
|
|
type: object
|
|
properties:
|
|
typeMessage:
|
|
pattern: ^(TEXTE|VOCAL|IMAGE|SYSTEME)$
|
|
type: string
|
|
contenu:
|
|
maxLength: 4000
|
|
type: string
|
|
urlFichier:
|
|
maxLength: 500
|
|
type: string
|
|
dureeAudio:
|
|
format: int32
|
|
maximum: 300
|
|
minimum: 1
|
|
type: integer
|
|
messageParentId:
|
|
$ref: "#/components/schemas/UUID"
|
|
ErrorType:
|
|
description: Type d'erreur d'import
|
|
enum:
|
|
- INVALID_FORMAT
|
|
- VALIDATION_ERROR
|
|
- DUPLICATE_USER
|
|
- CREATION_ERROR
|
|
- SYSTEM_ERROR
|
|
type: string
|
|
Evenement:
|
|
required:
|
|
- titre
|
|
- dateDebut
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
titre:
|
|
maxLength: 200
|
|
minLength: 3
|
|
pattern: \S
|
|
type: string
|
|
description:
|
|
maxLength: 2000
|
|
type: string
|
|
dateDebut:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateFin:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
lieu:
|
|
maxLength: 500
|
|
type: string
|
|
adresse:
|
|
maxLength: 1000
|
|
type: string
|
|
typeEvenement:
|
|
type: string
|
|
statut:
|
|
type: string
|
|
capaciteMax:
|
|
format: int32
|
|
minimum: 0
|
|
type: integer
|
|
prix:
|
|
minimum: 0
|
|
pattern: "^\\d{1,8}([.]\\d{1,2})?$"
|
|
type: number
|
|
inscriptionRequise:
|
|
type: boolean
|
|
dateLimiteInscription:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
instructionsParticulieres:
|
|
maxLength: 1000
|
|
type: string
|
|
contactOrganisateur:
|
|
maxLength: 500
|
|
type: string
|
|
materielRequis:
|
|
maxLength: 2000
|
|
type: string
|
|
visiblePublic:
|
|
type: boolean
|
|
organisation:
|
|
$ref: "#/components/schemas/Organisation"
|
|
organisateur:
|
|
$ref: "#/components/schemas/Membre"
|
|
enCours:
|
|
type: boolean
|
|
termine:
|
|
type: boolean
|
|
dureeEnHeures:
|
|
format: int64
|
|
type: integer
|
|
EvenementMobileDTO:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
titre:
|
|
type: string
|
|
description:
|
|
type: string
|
|
dateDebut:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateFin:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
lieu:
|
|
type: string
|
|
adresse:
|
|
type: string
|
|
ville:
|
|
type: string
|
|
codePostal:
|
|
type: string
|
|
type:
|
|
type: string
|
|
statut:
|
|
type: string
|
|
maxParticipants:
|
|
format: int32
|
|
type: integer
|
|
participantsActuels:
|
|
format: int32
|
|
type: integer
|
|
organisateurId:
|
|
$ref: "#/components/schemas/UUID"
|
|
organisateurNom:
|
|
type: string
|
|
organisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
organisationNom:
|
|
type: string
|
|
priorite:
|
|
type: string
|
|
estPublic:
|
|
type: boolean
|
|
inscriptionRequise:
|
|
type: boolean
|
|
cout:
|
|
type: number
|
|
devise:
|
|
type: string
|
|
tags:
|
|
type: array
|
|
items:
|
|
type: string
|
|
imageUrl:
|
|
type: string
|
|
documentUrl:
|
|
type: string
|
|
notes:
|
|
type: string
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
actif:
|
|
type: boolean
|
|
FederatedIdentityDTO:
|
|
description: Identité fédérée
|
|
type: object
|
|
properties:
|
|
identityProvider:
|
|
description: Fournisseur d'identité
|
|
type: string
|
|
example: google
|
|
userId:
|
|
description: ID utilisateur chez le fournisseur
|
|
type: string
|
|
userName:
|
|
description: Nom d'utilisateur chez le fournisseur
|
|
type: string
|
|
FeedbackRequest:
|
|
type: object
|
|
properties:
|
|
subject:
|
|
type: string
|
|
message:
|
|
type: string
|
|
FileUpload:
|
|
type: object
|
|
FrequenceTour:
|
|
enum:
|
|
- JOURNALIERE
|
|
- HEBDOMADAIRE
|
|
- DECADE
|
|
- QUINZAINE
|
|
- MENSUELLE
|
|
- TRIMESTRIELLE
|
|
type: string
|
|
GarantieDemandeDTO:
|
|
required:
|
|
- typeGarantie
|
|
- referenceOuDescription
|
|
type: object
|
|
properties:
|
|
typeGarantie:
|
|
$ref: "#/components/schemas/TypeGarantie"
|
|
valeurEstimee:
|
|
type: number
|
|
referenceOuDescription:
|
|
pattern: \S
|
|
type: string
|
|
documentPreuveId:
|
|
type: string
|
|
HealthStatusDTO:
|
|
description: Statut de santé de Keycloak
|
|
type: object
|
|
properties:
|
|
timestamp:
|
|
format: int64
|
|
description: Timestamp du check de santé (millisecondes)
|
|
type: integer
|
|
example: 1699545600000
|
|
keycloakAccessible:
|
|
description: Indique si Keycloak est accessible
|
|
type: boolean
|
|
example: true
|
|
keycloakVersion:
|
|
description: Version de Keycloak
|
|
type: string
|
|
example: 23.0.3
|
|
realmsAccessible:
|
|
description: Indique si les realms sont accessibles
|
|
type: boolean
|
|
example: true
|
|
realmsCount:
|
|
format: int32
|
|
description: Nombre de realms disponibles
|
|
type: integer
|
|
example: 5
|
|
overallHealthy:
|
|
description: Indique si Keycloak est globalement en bonne santé
|
|
type: boolean
|
|
example: true
|
|
errorMessage:
|
|
description: Message d'erreur si le check a échoué
|
|
type: string
|
|
HistoriqueStatutDTO:
|
|
required:
|
|
- nouveauStatut
|
|
- dateChangement
|
|
- auteurId
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
ancienStatut:
|
|
$ref: "#/components/schemas/StatutAide"
|
|
nouveauStatut:
|
|
$ref: "#/components/schemas/StatutAide"
|
|
dateChangement:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
auteurId:
|
|
pattern: \S
|
|
type: string
|
|
auteurNom:
|
|
type: string
|
|
motif:
|
|
maxLength: 500
|
|
type: string
|
|
commentaires:
|
|
maxLength: 1000
|
|
type: string
|
|
estAutomatique:
|
|
type: boolean
|
|
dureeDepuisPrecedent:
|
|
format: int64
|
|
type: integer
|
|
donneesAdditionnelles:
|
|
type: object
|
|
additionalProperties: {}
|
|
ImportErrorDTO:
|
|
description: Détail d'une erreur d'import
|
|
type: object
|
|
properties:
|
|
lineNumber:
|
|
format: int32
|
|
description: Numéro de ligne (1-indexed)
|
|
type: integer
|
|
example: 42
|
|
lineContent:
|
|
description: Contenu de la ligne en erreur
|
|
type: string
|
|
example: "john.doe,invalid-email,John,Doe,true"
|
|
errorType:
|
|
description: Type d'erreur
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/ErrorType"
|
|
example: VALIDATION_ERROR
|
|
field:
|
|
description: Champ concerné par l'erreur
|
|
type: string
|
|
example: email
|
|
message:
|
|
description: Message d'erreur descriptif
|
|
type: string
|
|
example: Format d'email invalide
|
|
details:
|
|
description: Détails techniques de l'erreur
|
|
type: string
|
|
ImportResultDTO:
|
|
description: Résultat d'un import CSV d'utilisateurs
|
|
type: object
|
|
properties:
|
|
totalLines:
|
|
format: int32
|
|
description: Nombre total de lignes traitées
|
|
type: integer
|
|
example: 100
|
|
successCount:
|
|
format: int32
|
|
description: Nombre d'utilisateurs créés avec succès
|
|
type: integer
|
|
example: 95
|
|
errorCount:
|
|
format: int32
|
|
description: Nombre d'erreurs rencontrées
|
|
type: integer
|
|
example: 5
|
|
message:
|
|
description: Message de statut global
|
|
type: string
|
|
example: "Import terminé: 95 utilisateurs créés, 5 erreurs"
|
|
errors:
|
|
description: Liste des erreurs détaillées
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ImportErrorDTO"
|
|
InitierDepotEpargneRequest:
|
|
required:
|
|
- compteId
|
|
- montant
|
|
type: object
|
|
properties:
|
|
compteId:
|
|
$ref: "#/components/schemas/UUID"
|
|
montant:
|
|
minimum: 0.01
|
|
type: number
|
|
numeroTelephone:
|
|
pattern: "^\\d{9,15}$"
|
|
type: string
|
|
origineFonds:
|
|
type: string
|
|
justificationLcbFt:
|
|
type: string
|
|
InitierPaiementEnLigneRequest:
|
|
required:
|
|
- cotisationId
|
|
- methodePaiement
|
|
type: object
|
|
properties:
|
|
cotisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
methodePaiement:
|
|
type: string
|
|
numeroTelephone:
|
|
type: string
|
|
InitierVersementWaveRequest:
|
|
required:
|
|
- cotisationId
|
|
type: object
|
|
properties:
|
|
cotisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
numeroTelephone:
|
|
pattern: "^\\d{9,15}$"
|
|
type: string
|
|
origineFonds:
|
|
type: string
|
|
justificationLcbFt:
|
|
type: string
|
|
LocalDate:
|
|
format: date
|
|
type: string
|
|
example: 2022-03-10
|
|
LocalDateTime:
|
|
format: date-time
|
|
type: string
|
|
example: 2022-03-10T12:15:50
|
|
LocalTime:
|
|
format: local-time
|
|
type: string
|
|
externalDocs:
|
|
description: As defined by 'partial-time' in RFC3339
|
|
url: https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6
|
|
example: 13:45:30.123456789
|
|
LocalisationDTO:
|
|
type: object
|
|
properties:
|
|
latitude:
|
|
format: double
|
|
maximum: 90
|
|
minimum: -90
|
|
type: number
|
|
longitude:
|
|
format: double
|
|
maximum: 180
|
|
minimum: -180
|
|
type: number
|
|
adresseComplete:
|
|
maxLength: 300
|
|
type: string
|
|
ville:
|
|
maxLength: 100
|
|
type: string
|
|
region:
|
|
maxLength: 100
|
|
type: string
|
|
pays:
|
|
maxLength: 100
|
|
type: string
|
|
codePostal:
|
|
maxLength: 20
|
|
type: string
|
|
precision:
|
|
format: double
|
|
minimum: 0
|
|
type: number
|
|
estApproximative:
|
|
type: boolean
|
|
LogSearchRequest:
|
|
type: object
|
|
properties:
|
|
level:
|
|
type: string
|
|
source:
|
|
type: string
|
|
searchQuery:
|
|
type: string
|
|
timeRange:
|
|
type: string
|
|
limit:
|
|
format: int32
|
|
type: integer
|
|
offset:
|
|
format: int32
|
|
type: integer
|
|
Membre:
|
|
required:
|
|
- numeroMembre
|
|
- prenom
|
|
- nom
|
|
- email
|
|
- dateNaissance
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
keycloakId:
|
|
$ref: "#/components/schemas/UUID"
|
|
numeroMembre:
|
|
pattern: \S
|
|
type: string
|
|
prenom:
|
|
pattern: \S
|
|
type: string
|
|
nom:
|
|
pattern: \S
|
|
type: string
|
|
email:
|
|
pattern: \S
|
|
type: string
|
|
telephone:
|
|
type: string
|
|
telephoneWave:
|
|
pattern: "^\\+[1-9][0-9]{6,14}$"
|
|
type: string
|
|
dateNaissance:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
profession:
|
|
type: string
|
|
photoUrl:
|
|
type: string
|
|
statutCompte:
|
|
type: string
|
|
premiereConnexion:
|
|
type: boolean
|
|
statutMatrimonial:
|
|
type: string
|
|
nationalite:
|
|
type: string
|
|
typeIdentite:
|
|
type: string
|
|
numeroIdentite:
|
|
type: string
|
|
notes:
|
|
type: string
|
|
niveauVigilanceKyc:
|
|
type: string
|
|
statutKyc:
|
|
type: string
|
|
dateVerificationIdentite:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
nomComplet:
|
|
type: string
|
|
majeur:
|
|
type: boolean
|
|
age:
|
|
format: int32
|
|
type: integer
|
|
MembreSearchCriteria:
|
|
description: Critères de recherche avancée pour les membres
|
|
type: object
|
|
properties:
|
|
query:
|
|
description: "Terme de recherche général dans nom, prénom ou email"
|
|
maxLength: 100
|
|
type: string
|
|
example: marie
|
|
nom:
|
|
description: Filtre par nom (recherche partielle)
|
|
maxLength: 50
|
|
type: string
|
|
example: Dupont
|
|
prenom:
|
|
description: Filtre par prénom (recherche partielle)
|
|
maxLength: 50
|
|
type: string
|
|
example: Marie
|
|
email:
|
|
description: Filtre par email (recherche partielle)
|
|
maxLength: 100
|
|
type: string
|
|
example: '@unionflow.com'
|
|
telephone:
|
|
description: Filtre par numéro de téléphone
|
|
maxLength: 20
|
|
type: string
|
|
example: "+221"
|
|
organisationIds:
|
|
description: Liste des IDs d'organisations à inclure
|
|
type: array
|
|
items:
|
|
format: uuid
|
|
pattern: "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
|
|
type: string
|
|
roles:
|
|
description: Liste des rôles à rechercher
|
|
type: array
|
|
items:
|
|
type: string
|
|
example:
|
|
- PRESIDENT
|
|
- SECRETAIRE
|
|
statut:
|
|
description: Filtre par statut d'activité
|
|
pattern: ^(ACTIF|INACTIF|SUSPENDU|RADIE)$
|
|
type: string
|
|
example: ACTIF
|
|
dateAdhesionMin:
|
|
description: Date d'adhésion minimum
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDate"
|
|
example: 2020-01-01
|
|
dateAdhesionMax:
|
|
description: Date d'adhésion maximum
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDate"
|
|
example: 2025-12-31
|
|
ageMin:
|
|
format: int32
|
|
description: Âge minimum
|
|
maximum: 120
|
|
minimum: 0
|
|
type: integer
|
|
example: 18
|
|
ageMax:
|
|
format: int32
|
|
description: Âge maximum
|
|
maximum: 120
|
|
minimum: 0
|
|
type: integer
|
|
example: 65
|
|
region:
|
|
description: Filtre par région
|
|
maxLength: 50
|
|
type: string
|
|
example: Dakar
|
|
ville:
|
|
description: Filtre par ville
|
|
maxLength: 50
|
|
type: string
|
|
example: Dakar
|
|
profession:
|
|
description: Filtre par profession
|
|
maxLength: 100
|
|
type: string
|
|
example: Ingénieur
|
|
nationalite:
|
|
description: Filtre par nationalité
|
|
maxLength: 50
|
|
type: string
|
|
example: Sénégalaise
|
|
membreBureau:
|
|
description: Filtre pour les membres du bureau uniquement
|
|
type: boolean
|
|
responsable:
|
|
description: Filtre pour les responsables uniquement
|
|
type: boolean
|
|
includeInactifs:
|
|
description: Inclure les membres inactifs
|
|
default: false
|
|
type: boolean
|
|
valid:
|
|
type: boolean
|
|
description:
|
|
type: string
|
|
MembreSearchResultDTO:
|
|
description: Résultats de recherche avancée des membres avec pagination
|
|
type: object
|
|
properties:
|
|
membres:
|
|
description: Liste des membres correspondant aux critères
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MembreSummaryResponse"
|
|
totalElements:
|
|
format: int64
|
|
description: Nombre total de résultats trouvés
|
|
type: integer
|
|
example: 247
|
|
totalPages:
|
|
format: int32
|
|
description: Nombre total de pages
|
|
type: integer
|
|
example: 13
|
|
currentPage:
|
|
format: int32
|
|
description: Numéro de la page actuelle
|
|
type: integer
|
|
example: 0
|
|
pageSize:
|
|
format: int32
|
|
description: Nombre d'éléments par page
|
|
type: integer
|
|
example: 20
|
|
numberOfElements:
|
|
format: int32
|
|
description: Nombre d'éléments sur cette page
|
|
type: integer
|
|
example: 20
|
|
hasNext:
|
|
description: Indique s'il y a une page suivante
|
|
type: boolean
|
|
hasPrevious:
|
|
description: Indique s'il y a une page précédente
|
|
type: boolean
|
|
isFirst:
|
|
description: Indique si c'est la première page
|
|
type: boolean
|
|
isLast:
|
|
description: Indique si c'est la dernière page
|
|
type: boolean
|
|
criteria:
|
|
description: Critères de recherche qui ont été appliqués
|
|
type: object
|
|
allOf:
|
|
- $ref: "#/components/schemas/MembreSearchCriteria"
|
|
executionTimeMs:
|
|
format: int64
|
|
description: Temps d'exécution de la recherche en ms
|
|
type: integer
|
|
example: 45
|
|
statistics:
|
|
description: Statistiques sur les résultats de recherche
|
|
type: object
|
|
allOf:
|
|
- $ref: "#/components/schemas/SearchStatistics"
|
|
empty:
|
|
type: boolean
|
|
nextPageNumber:
|
|
format: int32
|
|
type: integer
|
|
previousPageNumber:
|
|
format: int32
|
|
type: integer
|
|
resultDescription:
|
|
type: string
|
|
MembreSummaryResponse:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
numeroMembre:
|
|
type: string
|
|
prenom:
|
|
type: string
|
|
nom:
|
|
type: string
|
|
email:
|
|
type: string
|
|
telephone:
|
|
type: string
|
|
profession:
|
|
type: string
|
|
statutCompte:
|
|
type: string
|
|
statutCompteLibelle:
|
|
type: string
|
|
statutCompteSeverity:
|
|
type: string
|
|
actif:
|
|
type: boolean
|
|
roles:
|
|
type: array
|
|
items:
|
|
type: string
|
|
organisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
organisationNom:
|
|
type: string
|
|
dateAdhesion:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
nomComplet:
|
|
type: string
|
|
statut:
|
|
type: string
|
|
statutLibelle:
|
|
type: string
|
|
statutSeverity:
|
|
type: string
|
|
statutIcon:
|
|
type: string
|
|
typeMembre:
|
|
type: string
|
|
typeSeverity:
|
|
type: string
|
|
typeIcon:
|
|
type: string
|
|
MettreAJourPolitiqueRequest:
|
|
type: object
|
|
properties:
|
|
typePolitique:
|
|
pattern: ^(OUVERT|BUREAU_SEULEMENT|GROUPES_INTERNES)$
|
|
type: string
|
|
autoriserMembreVersMembre:
|
|
type: boolean
|
|
autoriserMembreVersRole:
|
|
type: boolean
|
|
autoriserNotesVocales:
|
|
type: boolean
|
|
ModeScrutin:
|
|
enum:
|
|
- MAJORITAIRE_UN_TOUR
|
|
- MAJORITAIRE_DEUX_TOURS
|
|
- PROPORTIONNEL
|
|
- BUREAU_CONSENSUEL
|
|
type: string
|
|
NiveauEchelon:
|
|
enum:
|
|
- SIEGE_MONDIAL
|
|
- NATIONAL
|
|
- REGIONAL
|
|
- LOCAL
|
|
type: string
|
|
NotificationGroupeeRequest:
|
|
type: object
|
|
properties:
|
|
membreIds:
|
|
type: array
|
|
items:
|
|
format: uuid
|
|
pattern: "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
|
|
type: string
|
|
sujet:
|
|
type: string
|
|
corps:
|
|
type: string
|
|
canaux:
|
|
type: array
|
|
items:
|
|
type: string
|
|
Organisation:
|
|
required:
|
|
- nom
|
|
- typeOrganisation
|
|
- statut
|
|
- email
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
nom:
|
|
pattern: \S
|
|
type: string
|
|
nomCourt:
|
|
type: string
|
|
typeOrganisation:
|
|
pattern: \S
|
|
type: string
|
|
statut:
|
|
pattern: \S
|
|
type: string
|
|
description:
|
|
type: string
|
|
dateFondation:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
numeroEnregistrement:
|
|
type: string
|
|
email:
|
|
pattern: \S
|
|
type: string
|
|
telephone:
|
|
type: string
|
|
telephoneSecondaire:
|
|
type: string
|
|
emailSecondaire:
|
|
type: string
|
|
adresse:
|
|
type: string
|
|
ville:
|
|
type: string
|
|
region:
|
|
type: string
|
|
pays:
|
|
type: string
|
|
codePostal:
|
|
type: string
|
|
latitude:
|
|
maximum: 90
|
|
minimum: -90
|
|
pattern: "^\\d{1,3}([.]\\d{1,6})?$"
|
|
type: number
|
|
longitude:
|
|
maximum: 180
|
|
minimum: -180
|
|
pattern: "^\\d{1,3}([.]\\d{1,6})?$"
|
|
type: number
|
|
siteWeb:
|
|
type: string
|
|
logo:
|
|
type: string
|
|
reseauxSociaux:
|
|
type: string
|
|
organisationParente:
|
|
$ref: "#/components/schemas/Organisation"
|
|
niveauHierarchique:
|
|
format: int32
|
|
type: integer
|
|
estOrganisationRacine:
|
|
type: boolean
|
|
cheminHierarchique:
|
|
type: string
|
|
nombreMembres:
|
|
format: int32
|
|
type: integer
|
|
nombreAdministrateurs:
|
|
format: int32
|
|
type: integer
|
|
budgetAnnuel:
|
|
minimum: 0
|
|
pattern: "^\\d{1,12}([.]\\d{1,2})?$"
|
|
type: number
|
|
devise:
|
|
type: string
|
|
cotisationObligatoire:
|
|
type: boolean
|
|
montantCotisationAnnuelle:
|
|
minimum: 0
|
|
pattern: "^\\d{1,10}([.]\\d{1,2})?$"
|
|
type: number
|
|
objectifs:
|
|
type: string
|
|
activitesPrincipales:
|
|
type: string
|
|
certifications:
|
|
type: string
|
|
partenaires:
|
|
type: string
|
|
notes:
|
|
type: string
|
|
organisationPublique:
|
|
type: boolean
|
|
accepteNouveauxMembres:
|
|
type: boolean
|
|
categorieType:
|
|
type: string
|
|
modulesActifs:
|
|
type: string
|
|
nomComplet:
|
|
type: string
|
|
ancienneteAnnees:
|
|
format: int32
|
|
type: integer
|
|
recente:
|
|
type: boolean
|
|
active:
|
|
type: boolean
|
|
OrganisationResponse:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
nom:
|
|
type: string
|
|
nomCourt:
|
|
type: string
|
|
description:
|
|
type: string
|
|
email:
|
|
type: string
|
|
telephone:
|
|
type: string
|
|
telephoneSecondaire:
|
|
type: string
|
|
emailSecondaire:
|
|
type: string
|
|
siteWeb:
|
|
type: string
|
|
logo:
|
|
type: string
|
|
reseauxSociaux:
|
|
type: string
|
|
typeOrganisation:
|
|
type: string
|
|
typeAssociation:
|
|
type: string
|
|
typeOrganisationLibelle:
|
|
type: string
|
|
typeLibelle:
|
|
type: string
|
|
statut:
|
|
type: string
|
|
statutLibelle:
|
|
type: string
|
|
statutSeverity:
|
|
type: string
|
|
dateFondation:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
numeroEnregistrement:
|
|
type: string
|
|
adresse:
|
|
type: string
|
|
quartier:
|
|
type: string
|
|
ville:
|
|
type: string
|
|
region:
|
|
type: string
|
|
pays:
|
|
type: string
|
|
codePostal:
|
|
type: string
|
|
latitude:
|
|
type: number
|
|
longitude:
|
|
type: number
|
|
organisationParenteId:
|
|
$ref: "#/components/schemas/UUID"
|
|
organisationParenteNom:
|
|
type: string
|
|
niveauHierarchique:
|
|
format: int32
|
|
type: integer
|
|
estOrganisationRacine:
|
|
type: boolean
|
|
devise:
|
|
type: string
|
|
budgetAnnuel:
|
|
type: number
|
|
cotisationObligatoire:
|
|
type: boolean
|
|
montantCotisationAnnuelle:
|
|
type: number
|
|
nombreMembres:
|
|
format: int32
|
|
type: integer
|
|
nombreAdministrateurs:
|
|
format: int32
|
|
type: integer
|
|
nombreEvenements:
|
|
format: int32
|
|
type: integer
|
|
objectifs:
|
|
type: string
|
|
activitesPrincipales:
|
|
type: string
|
|
certifications:
|
|
type: string
|
|
partenaires:
|
|
type: string
|
|
notes:
|
|
type: string
|
|
organisationPublique:
|
|
type: boolean
|
|
accepteNouveauxMembres:
|
|
type: boolean
|
|
numeroRegistre:
|
|
type: string
|
|
nomOrganisationParente:
|
|
type: string
|
|
PagedResponse:
|
|
type: object
|
|
properties:
|
|
data:
|
|
type: array
|
|
items: {}
|
|
total:
|
|
format: int64
|
|
type: integer
|
|
page:
|
|
format: int32
|
|
type: integer
|
|
size:
|
|
format: int32
|
|
type: integer
|
|
totalPages:
|
|
format: int32
|
|
type: integer
|
|
empty:
|
|
type: boolean
|
|
PagedResponseEvenementMobileDTO:
|
|
type: object
|
|
properties:
|
|
data:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/EvenementMobileDTO"
|
|
total:
|
|
format: int64
|
|
type: integer
|
|
page:
|
|
format: int32
|
|
type: integer
|
|
size:
|
|
format: int32
|
|
type: integer
|
|
totalPages:
|
|
format: int32
|
|
type: integer
|
|
empty:
|
|
type: boolean
|
|
PagedResponseMembreSummaryResponse:
|
|
type: object
|
|
properties:
|
|
data:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MembreSummaryResponse"
|
|
total:
|
|
format: int64
|
|
type: integer
|
|
page:
|
|
format: int32
|
|
type: integer
|
|
size:
|
|
format: int32
|
|
type: integer
|
|
totalPages:
|
|
format: int32
|
|
type: integer
|
|
empty:
|
|
type: boolean
|
|
ParametresLcbFtRequest:
|
|
description: Paramètres LCB-FT (seuils de vigilance)
|
|
required:
|
|
- montantSeuilJustification
|
|
- montantSeuilValidationManuelle
|
|
- codeDevise
|
|
type: object
|
|
properties:
|
|
organisationId:
|
|
description: ID de l'organisation (null pour paramètres plateforme)
|
|
type: string
|
|
montantSeuilJustification:
|
|
description: Montant au-dessus duquel l'origine des fonds est obligatoire
|
|
(ex. 500000 XOF)
|
|
minimum: 0
|
|
type: number
|
|
example: 500000
|
|
montantSeuilValidationManuelle:
|
|
description: Montant au-dessus duquel une validation manuelle est requise
|
|
(ex. 1000000 XOF)
|
|
minimum: 0
|
|
type: number
|
|
example: 1000000
|
|
codeDevise:
|
|
description: "Code devise ISO 4217 (ex. XOF, EUR, USD)"
|
|
maxLength: 3
|
|
pattern: \S
|
|
type: string
|
|
example: XOF
|
|
notes:
|
|
description: Notes ou commentaires sur la configuration
|
|
type: string
|
|
ParametresLcbFtResponse:
|
|
description: Paramètres LCB-FT avec seuils de vigilance
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
organisationId:
|
|
description: ID de l'organisation (null si paramètres plateforme)
|
|
type: string
|
|
organisationNom:
|
|
description: Nom de l'organisation (null si paramètres plateforme)
|
|
type: string
|
|
montantSeuilJustification:
|
|
description: Montant au-dessus duquel l'origine des fonds est obligatoire
|
|
type: number
|
|
example: 500000
|
|
montantSeuilValidationManuelle:
|
|
description: Montant au-dessus duquel une validation manuelle est requise
|
|
type: number
|
|
example: 1000000
|
|
codeDevise:
|
|
description: Code devise ISO 4217
|
|
type: string
|
|
example: XOF
|
|
notes:
|
|
description: Notes ou commentaires sur la configuration
|
|
type: string
|
|
estParametrePlateforme:
|
|
description: Indique si ces paramètres s'appliquent à toute la plateforme
|
|
type: boolean
|
|
PasswordResetRequestDTO:
|
|
description: Requête de réinitialisation de mot de passe
|
|
required:
|
|
- password
|
|
type: object
|
|
properties:
|
|
password:
|
|
description: Nouveau mot de passe
|
|
type: string
|
|
temporary:
|
|
description: Indique si le mot de passe est temporaire
|
|
default: true
|
|
type: boolean
|
|
PeriodeAnalyse:
|
|
enum:
|
|
- AUJOURD_HUI
|
|
- HIER
|
|
- CETTE_SEMAINE
|
|
- SEMAINE_DERNIERE
|
|
- CE_MOIS
|
|
- MOIS_DERNIER
|
|
- TROIS_DERNIERS_MOIS
|
|
- SIX_DERNIERS_MOIS
|
|
- CETTE_ANNEE
|
|
- ANNEE_DERNIERE
|
|
- DEUX_DERNIERES_ANNEES
|
|
- SEPT_DERNIERS_JOURS
|
|
- TRENTE_DERNIERS_JOURS
|
|
- QUATRE_VINGT_DIX_DERNIERS_JOURS
|
|
- DEPUIS_CREATION
|
|
- PERIODE_PERSONNALISEE
|
|
type: string
|
|
PieceJustificativeDTO:
|
|
required:
|
|
- nomFichier
|
|
- typePiece
|
|
- urlFichier
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
nomFichier:
|
|
maxLength: 255
|
|
pattern: \S
|
|
type: string
|
|
typePiece:
|
|
pattern: \S
|
|
type: string
|
|
description:
|
|
maxLength: 500
|
|
type: string
|
|
urlFichier:
|
|
pattern: \S
|
|
type: string
|
|
typeMime:
|
|
type: string
|
|
tailleFichier:
|
|
format: int64
|
|
minimum: 1
|
|
type: integer
|
|
estObligatoire:
|
|
type: boolean
|
|
estVerifiee:
|
|
type: boolean
|
|
dateAjout:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateVerification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
verificateurId:
|
|
type: string
|
|
commentairesVerification:
|
|
maxLength: 500
|
|
type: string
|
|
PrioriteAide:
|
|
enum:
|
|
- CRITIQUE
|
|
- URGENTE
|
|
- ELEVEE
|
|
- NORMALE
|
|
- FAIBLE
|
|
type: string
|
|
ProjetOngDTO:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
nouveau:
|
|
type: boolean
|
|
organisationId:
|
|
type: string
|
|
nomProjet:
|
|
type: string
|
|
descriptionMandat:
|
|
type: string
|
|
zoneGeographiqueIntervention:
|
|
type: string
|
|
budgetPrevisionnel:
|
|
type: number
|
|
depensesReelles:
|
|
type: number
|
|
dateLancement:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
dateFinEstimee:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
statut:
|
|
$ref: "#/components/schemas/StatutProjetOng"
|
|
PropositionAideResponse:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
numeroReference:
|
|
type: string
|
|
typeAide:
|
|
$ref: "#/components/schemas/TypeAide"
|
|
titre:
|
|
type: string
|
|
description:
|
|
type: string
|
|
conditions:
|
|
type: string
|
|
montantMaximum:
|
|
type: number
|
|
nombreMaxBeneficiaires:
|
|
format: int32
|
|
type: integer
|
|
devise:
|
|
type: string
|
|
proposantId:
|
|
type: string
|
|
proposantNom:
|
|
type: string
|
|
organisationId:
|
|
type: string
|
|
demandeAideId:
|
|
type: string
|
|
statut:
|
|
$ref: "#/components/schemas/StatutProposition"
|
|
estDisponible:
|
|
type: boolean
|
|
estRecurrente:
|
|
type: boolean
|
|
frequenceRecurrence:
|
|
type: string
|
|
dateExpiration:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
delaiReponseHeures:
|
|
format: int32
|
|
type: integer
|
|
criteresSelection:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/CritereSelectionDTO"
|
|
zonesGeographiques:
|
|
type: array
|
|
items:
|
|
type: string
|
|
groupesCibles:
|
|
type: array
|
|
items:
|
|
type: string
|
|
competencesRessources:
|
|
type: array
|
|
items:
|
|
type: string
|
|
contactProposant:
|
|
$ref: "#/components/schemas/ContactProposantDTO"
|
|
creneauxDisponibilite:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/CreneauDisponibiliteDTO"
|
|
modeContactPrefere:
|
|
type: string
|
|
nombreDemandesTraitees:
|
|
format: int32
|
|
type: integer
|
|
nombreBeneficiairesAides:
|
|
format: int32
|
|
type: integer
|
|
montantTotalVerse:
|
|
format: double
|
|
type: number
|
|
noteMoyenne:
|
|
format: double
|
|
type: number
|
|
nombreEvaluations:
|
|
format: int32
|
|
type: integer
|
|
tags:
|
|
type: array
|
|
items:
|
|
type: string
|
|
donneesPersonnalisees:
|
|
type: object
|
|
additionalProperties: {}
|
|
estMiseEnAvant:
|
|
type: boolean
|
|
scorePertinence:
|
|
format: double
|
|
type: number
|
|
nombreVues:
|
|
format: int32
|
|
type: integer
|
|
nombreCandidatures:
|
|
format: int32
|
|
type: integer
|
|
activeEtDisponible:
|
|
type: boolean
|
|
expiree:
|
|
type: boolean
|
|
pourcentageCapaciteUtilisee:
|
|
format: double
|
|
type: number
|
|
placesRestantes:
|
|
format: int32
|
|
type: integer
|
|
RealmAccessCheckDTO:
|
|
description: Réponse de vérification d'accès au realm
|
|
type: object
|
|
properties:
|
|
canManage:
|
|
description: L'utilisateur peut gérer le realm
|
|
type: boolean
|
|
userId:
|
|
description: ID de l'utilisateur
|
|
type: string
|
|
realmName:
|
|
description: Nom du realm
|
|
type: string
|
|
RealmAssignmentDTO:
|
|
description: Attribution ou révocation d'accès à un realm
|
|
required:
|
|
- userId
|
|
- realmName
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Identifiant unique (UUID Keycloak)
|
|
type: string
|
|
example: f47ac10b-58cc-4372-a567-0e02b2c3d479
|
|
dateCreation:
|
|
description: Date de création
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDateTime"
|
|
example: 2025-01-15T10:30:00
|
|
dateModification:
|
|
description: Date de dernière modification
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDateTime"
|
|
example: 2025-01-15T14:20:00
|
|
creeParUsername:
|
|
description: Utilisateur ayant créé l'entité
|
|
type: string
|
|
example: admin@lions.dev
|
|
modifieParUsername:
|
|
description: Utilisateur ayant modifié l'entité
|
|
type: string
|
|
example: superadmin@lions.dev
|
|
version:
|
|
format: int64
|
|
description: Numéro de version pour gestion optimiste
|
|
type: integer
|
|
example: 1
|
|
userId:
|
|
description: ID de l'utilisateur Keycloak
|
|
pattern: \S
|
|
type: string
|
|
example: f47ac10b-58cc-4372-a567-0e02b2c3d479
|
|
username:
|
|
description: Username de l'utilisateur
|
|
type: string
|
|
example: jdupont
|
|
email:
|
|
description: Email de l'utilisateur
|
|
type: string
|
|
example: jdupont@example.com
|
|
realmName:
|
|
description: Nom du realm assigné
|
|
pattern: \S
|
|
type: string
|
|
example: btpxpress
|
|
isSuperAdmin:
|
|
description: Indique si l'utilisateur est super admin (peut gérer tous les
|
|
realms)
|
|
type: boolean
|
|
example: false
|
|
assignedAt:
|
|
description: Date d'assignation
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDateTime"
|
|
example: 2025-01-15T10:30:00
|
|
assignedBy:
|
|
description: Username de l'administrateur qui a fait l'assignation
|
|
type: string
|
|
example: admin@lions.dev
|
|
raison:
|
|
description: Raison de l'assignation
|
|
type: string
|
|
example: Nouveau gestionnaire du realm client
|
|
commentaires:
|
|
description: Commentaires administratifs
|
|
type: string
|
|
example: Accès temporaire pour support
|
|
temporaire:
|
|
description: Indique si c'est une assignation temporaire
|
|
type: boolean
|
|
example: false
|
|
dateExpiration:
|
|
description: Date d'expiration de l'assignation temporaire
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDateTime"
|
|
example: 2025-12-31T23:59:59
|
|
active:
|
|
description: Indique si l'assignation est active
|
|
type: boolean
|
|
example: true
|
|
expired:
|
|
type: boolean
|
|
superAdmin:
|
|
type: boolean
|
|
summary:
|
|
type: string
|
|
RejectTransactionRequest:
|
|
required:
|
|
- reason
|
|
type: object
|
|
properties:
|
|
reason:
|
|
maxLength: 1000
|
|
minLength: 10
|
|
pattern: \S
|
|
type: string
|
|
RestoreBackupRequest:
|
|
required:
|
|
- backupId
|
|
type: object
|
|
properties:
|
|
backupId:
|
|
$ref: "#/components/schemas/UUID"
|
|
restoreDatabase:
|
|
type: boolean
|
|
restoreFiles:
|
|
type: boolean
|
|
restoreConfiguration:
|
|
type: boolean
|
|
createRestorePoint:
|
|
type: boolean
|
|
RoleAssignmentDTO:
|
|
description: Attribution ou révocation de rôles
|
|
required:
|
|
- userId
|
|
- roleNames
|
|
- typeRole
|
|
type: object
|
|
properties:
|
|
userId:
|
|
description: ID de l'utilisateur cible
|
|
pattern: \S
|
|
type: string
|
|
example: f47ac10b-58cc-4372-a567-0e02b2c3d479
|
|
username:
|
|
description: Username de l'utilisateur cible (optionnel)
|
|
type: string
|
|
example: jdupont
|
|
roleNames:
|
|
description: Liste des noms de rôles à attribuer ou révoquer
|
|
minItems: 1
|
|
type: array
|
|
items:
|
|
type: string
|
|
roleIds:
|
|
description: Liste des IDs de rôles à attribuer ou révoquer
|
|
type: array
|
|
items:
|
|
type: string
|
|
typeRole:
|
|
description: Type de rôle
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/TypeRole"
|
|
example: REALM_ROLE
|
|
realmName:
|
|
description: Nom du Realm
|
|
type: string
|
|
example: btpxpress
|
|
clientName:
|
|
description: Nom du Client (requis si typeRole = CLIENT_ROLE)
|
|
type: string
|
|
example: btpxpress-app
|
|
clientId:
|
|
description: ID du Client (optionnel)
|
|
type: string
|
|
raison:
|
|
description: Raison de l'attribution/révocation
|
|
type: string
|
|
example: Promotion au poste de gestionnaire
|
|
commentaires:
|
|
description: Commentaires administratifs
|
|
type: string
|
|
example: Demandé par le manager
|
|
temporaire:
|
|
description: Indique si c'est une attribution temporaire
|
|
type: boolean
|
|
example: false
|
|
dateExpiration:
|
|
description: Date d'expiration de l'attribution temporaire
|
|
type: string
|
|
example: 2025-12-31T23:59:59
|
|
includeComposites:
|
|
description: Indique si les rôles composites doivent être inclus
|
|
type: boolean
|
|
example: true
|
|
notifyUser:
|
|
description: Indique si l'opération doit notifier l'utilisateur
|
|
type: boolean
|
|
example: true
|
|
validForClientRole:
|
|
type: boolean
|
|
validForRealmRole:
|
|
type: boolean
|
|
roleCount:
|
|
format: int32
|
|
type: integer
|
|
RoleAssignmentRequestDTO:
|
|
description: Requête d'attribution ou de révocation de rôles
|
|
required:
|
|
- roleNames
|
|
type: object
|
|
properties:
|
|
roleNames:
|
|
description: Liste des noms de rôles
|
|
type: array
|
|
items:
|
|
type: string
|
|
RoleCompositeDTO:
|
|
description: Rôle composite
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: ID du rôle
|
|
type: string
|
|
example: f47ac10b-58cc-4372-a567-0e02b2c3d479
|
|
name:
|
|
description: Nom du rôle
|
|
type: string
|
|
example: gestionnaire
|
|
description:
|
|
description: Description du rôle
|
|
type: string
|
|
typeRole:
|
|
description: Type de rôle
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/TypeRole"
|
|
example: REALM_ROLE
|
|
clientName:
|
|
description: Nom du client (si client role)
|
|
type: string
|
|
RoleDTO:
|
|
description: Rôle Keycloak (Realm ou Client)
|
|
required:
|
|
- name
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Identifiant unique (UUID Keycloak)
|
|
type: string
|
|
example: f47ac10b-58cc-4372-a567-0e02b2c3d479
|
|
dateCreation:
|
|
description: Date de création
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDateTime"
|
|
example: 2025-01-15T10:30:00
|
|
dateModification:
|
|
description: Date de dernière modification
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDateTime"
|
|
example: 2025-01-15T14:20:00
|
|
creeParUsername:
|
|
description: Utilisateur ayant créé l'entité
|
|
type: string
|
|
example: admin@lions.dev
|
|
modifieParUsername:
|
|
description: Utilisateur ayant modifié l'entité
|
|
type: string
|
|
example: superadmin@lions.dev
|
|
version:
|
|
format: int64
|
|
description: Numéro de version pour gestion optimiste
|
|
type: integer
|
|
example: 1
|
|
name:
|
|
description: Nom du rôle
|
|
maxLength: 100
|
|
minLength: 2
|
|
pattern: "^[a-zA-Z0-9_-]+$"
|
|
type: string
|
|
example: admin_btpxpress
|
|
description:
|
|
description: Description du rôle
|
|
type: string
|
|
example: Administrateur avec tous les privilèges
|
|
typeRole:
|
|
description: Type de rôle
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/TypeRole"
|
|
example: REALM_ROLE
|
|
composite:
|
|
description: Indique si c'est un rôle composite
|
|
type: boolean
|
|
example: false
|
|
containerId:
|
|
description: ID du conteneur (Realm ou Client)
|
|
type: string
|
|
example: btpxpress
|
|
realmName:
|
|
description: Nom du Realm
|
|
type: string
|
|
example: btpxpress
|
|
clientName:
|
|
description: Nom du Client (si rôle client)
|
|
type: string
|
|
example: btpxpress-app
|
|
clientId:
|
|
description: ID du Client (si rôle client)
|
|
type: string
|
|
compositeRoles:
|
|
description: Rôles composites inclus dans ce rôle
|
|
type: array
|
|
items:
|
|
type: string
|
|
compositeRealmRoles:
|
|
description: Rôles Realm composites
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/RoleCompositeDTO"
|
|
compositeClientRoles:
|
|
description: Rôles Client composites par client
|
|
type: object
|
|
additionalProperties:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/RoleCompositeDTO"
|
|
attributes:
|
|
description: Attributs personnalisés du rôle
|
|
type: object
|
|
additionalProperties:
|
|
type: array
|
|
items:
|
|
type: string
|
|
userCount:
|
|
format: int32
|
|
description: Nombre d'utilisateurs ayant ce rôle
|
|
type: integer
|
|
example: 15
|
|
systemRole:
|
|
description: Indique si le rôle est un rôle système
|
|
type: boolean
|
|
example: false
|
|
deletable:
|
|
description: Indique si le rôle peut être supprimé
|
|
type: boolean
|
|
example: true
|
|
realmRole:
|
|
type: boolean
|
|
clientRole:
|
|
type: boolean
|
|
fullName:
|
|
type: string
|
|
RoleResponse:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
code:
|
|
type: string
|
|
libelle:
|
|
type: string
|
|
description:
|
|
type: string
|
|
typeRole:
|
|
type: string
|
|
niveauHierarchique:
|
|
format: int32
|
|
type: integer
|
|
organisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
nomOrganisation:
|
|
type: string
|
|
SearchStatistics:
|
|
description: Statistiques sur les résultats de recherche
|
|
type: object
|
|
properties:
|
|
membresActifs:
|
|
format: int64
|
|
description: Nombre de membres actifs dans les résultats
|
|
type: integer
|
|
membresInactifs:
|
|
format: int64
|
|
description: Nombre de membres inactifs dans les résultats
|
|
type: integer
|
|
ageMoyen:
|
|
format: double
|
|
description: Âge moyen des membres trouvés
|
|
type: number
|
|
ageMin:
|
|
format: int32
|
|
description: Âge minimum des membres trouvés
|
|
type: integer
|
|
ageMax:
|
|
format: int32
|
|
description: Âge maximum des membres trouvés
|
|
type: integer
|
|
nombreOrganisations:
|
|
format: int64
|
|
description: Nombre d'organisations représentées
|
|
type: integer
|
|
nombreRegions:
|
|
format: int64
|
|
description: Nombre de régions représentées
|
|
type: integer
|
|
ancienneteMoyenne:
|
|
format: double
|
|
description: Ancienneté moyenne en années
|
|
type: number
|
|
ServiceStatus:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
online:
|
|
type: boolean
|
|
status:
|
|
type: string
|
|
responseTimeMs:
|
|
format: int64
|
|
type: integer
|
|
lastChecked:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
errorMessage:
|
|
type: string
|
|
operational:
|
|
type: boolean
|
|
degraded:
|
|
type: boolean
|
|
down:
|
|
type: boolean
|
|
SessionsRevokedDTO:
|
|
description: Réponse de révocation de sessions
|
|
type: object
|
|
properties:
|
|
count:
|
|
format: int32
|
|
description: Nombre de sessions révoquées
|
|
type: integer
|
|
SouscriptionDemandeRequest:
|
|
required:
|
|
- typeFormule
|
|
- plageMembres
|
|
- typePeriode
|
|
- organisationId
|
|
type: object
|
|
properties:
|
|
typeFormule:
|
|
pattern: \S
|
|
type: string
|
|
plageMembres:
|
|
pattern: \S
|
|
type: string
|
|
typePeriode:
|
|
pattern: \S
|
|
type: string
|
|
typeOrganisation:
|
|
type: string
|
|
organisationId:
|
|
type: string
|
|
StatutAgrement:
|
|
enum:
|
|
- PROVISOIRE
|
|
- VALIDE
|
|
- SUSPENDU
|
|
- RETRETIRE
|
|
type: string
|
|
StatutAide:
|
|
enum:
|
|
- BROUILLON
|
|
- SOUMISE
|
|
- EN_ATTENTE
|
|
- EN_COURS_EVALUATION
|
|
- INFORMATIONS_REQUISES
|
|
- APPROUVEE
|
|
- APPROUVEE_PARTIELLEMENT
|
|
- REJETEE
|
|
- EN_COURS_TRAITEMENT
|
|
- EN_COURS_VERSEMENT
|
|
- VERSEE
|
|
- LIVREE
|
|
- TERMINEE
|
|
- ANNULEE
|
|
- SUSPENDUE
|
|
- EXPIREE
|
|
- EN_SUIVI
|
|
- CLOTUREE
|
|
type: string
|
|
StatutCampagneAgricole:
|
|
enum:
|
|
- PREPARATION
|
|
- LABOUR_SEMIS
|
|
- ENTRETIEN
|
|
- RECOLTE
|
|
- COMMERCIALISATION
|
|
- CLOTUREE
|
|
type: string
|
|
StatutCampagneCollecte:
|
|
enum:
|
|
- BROUILLON
|
|
- EN_COURS
|
|
- ATTEINTE
|
|
- EXPIREE
|
|
- SUSPENDUE
|
|
type: string
|
|
StatutCompteEpargne:
|
|
enum:
|
|
- ACTIF
|
|
- INACTIF
|
|
- BLOQUE
|
|
- EN_CLOTURE
|
|
- CLOTURE
|
|
type: string
|
|
StatutCompteWave:
|
|
enum:
|
|
- NON_VERIFIE
|
|
- VERIFIE
|
|
- SUSPENDU
|
|
- BLOQUE
|
|
type: string
|
|
StatutDemandeCredit:
|
|
enum:
|
|
- BROUILLON
|
|
- SOUMISE
|
|
- EN_EVALUATION
|
|
- INFORMATIONS_REQUISES
|
|
- APPROUVEE
|
|
- REJETEE
|
|
- DECAISSEE
|
|
- SOLDEE
|
|
- EN_CONTENTIEUX
|
|
type: string
|
|
StatutEcheanceCredit:
|
|
enum:
|
|
- A_VENIR
|
|
- EXIGIBLE
|
|
- PAYEE
|
|
- PAYEE_PARTIELLEMENT
|
|
- EN_RETARD
|
|
- IMPAYEE
|
|
- RESTRUCTUREE
|
|
type: string
|
|
StatutProjetOng:
|
|
enum:
|
|
- EN_ETUDE
|
|
- FINANCEMENT
|
|
- EN_COURS
|
|
- EVALUE
|
|
- CLOTURE
|
|
type: string
|
|
StatutProposition:
|
|
enum:
|
|
- BROUILLON
|
|
- ACTIVE
|
|
- SUSPENDUE
|
|
- EXPIREE
|
|
- TERMINEE
|
|
- ANNULEE
|
|
type: string
|
|
StatutTontine:
|
|
enum:
|
|
- PLANIFIEE
|
|
- EN_COURS
|
|
- EN_PAUSE
|
|
- CLOTUREE
|
|
- ANNULEE
|
|
type: string
|
|
StatutTransactionWave:
|
|
enum:
|
|
- INITIALISE
|
|
- EN_ATTENTE
|
|
- EN_COURS
|
|
- REUSSIE
|
|
- ECHOUE
|
|
- ANNULEE
|
|
- EXPIRED
|
|
type: string
|
|
StatutUser:
|
|
description: Statut d'un utilisateur
|
|
enum:
|
|
- ACTIF
|
|
- INACTIF
|
|
- SUSPENDU
|
|
- EN_ATTENTE
|
|
- VERROUILLE
|
|
- EXPIRE
|
|
- SUPPRIME
|
|
type: string
|
|
StatutVote:
|
|
enum:
|
|
- BROUILLON
|
|
- PLANIFIE
|
|
- OUVERT
|
|
- SUSPENDU
|
|
- CLOTURE
|
|
- RESULTATS_PUBLIES
|
|
type: string
|
|
SyncResultDTO:
|
|
description: Résultat d'une synchronisation avec Keycloak
|
|
type: object
|
|
properties:
|
|
realmName:
|
|
description: Nom du realm synchronisé
|
|
type: string
|
|
example: lions
|
|
usersCount:
|
|
format: int32
|
|
description: Nombre d'utilisateurs synchronisés
|
|
type: integer
|
|
example: 150
|
|
realmRolesCount:
|
|
format: int32
|
|
description: Nombre de rôles realm synchronisés
|
|
type: integer
|
|
example: 25
|
|
clientRolesCount:
|
|
format: int32
|
|
description: Nombre de rôles client synchronisés
|
|
type: integer
|
|
example: 50
|
|
success:
|
|
description: Indique si la synchronisation a réussi
|
|
type: boolean
|
|
example: true
|
|
errorMessage:
|
|
description: Message d'erreur si la synchronisation a échoué
|
|
type: string
|
|
startTime:
|
|
format: int64
|
|
description: Timestamp de début de la synchronisation (millisecondes)
|
|
type: integer
|
|
example: 1699545600000
|
|
endTime:
|
|
format: int64
|
|
description: Timestamp de fin de la synchronisation (millisecondes)
|
|
type: integer
|
|
example: 1699545615000
|
|
durationMs:
|
|
format: int64
|
|
type: integer
|
|
SystemAlertResponse:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
level:
|
|
type: string
|
|
title:
|
|
type: string
|
|
message:
|
|
type: string
|
|
timestamp:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
acknowledged:
|
|
type: boolean
|
|
acknowledgedBy:
|
|
type: string
|
|
acknowledgedAt:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
source:
|
|
type: string
|
|
alertType:
|
|
type: string
|
|
currentValue:
|
|
format: double
|
|
type: number
|
|
thresholdValue:
|
|
format: double
|
|
type: number
|
|
unit:
|
|
type: string
|
|
recommendedActions:
|
|
type: string
|
|
critical:
|
|
type: boolean
|
|
error:
|
|
type: boolean
|
|
ageInMinutes:
|
|
format: int64
|
|
type: integer
|
|
old:
|
|
type: boolean
|
|
formattedMessage:
|
|
type: string
|
|
levelColor:
|
|
type: string
|
|
thresholdExceeded:
|
|
type: boolean
|
|
SystemConfigResponse:
|
|
type: object
|
|
properties:
|
|
applicationName:
|
|
type: string
|
|
timezone:
|
|
type: string
|
|
defaultLanguage:
|
|
type: string
|
|
maintenanceMode:
|
|
type: boolean
|
|
version:
|
|
type: string
|
|
lastUpdated:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
networkTimeout:
|
|
format: int32
|
|
type: integer
|
|
maxRetries:
|
|
format: int32
|
|
type: integer
|
|
connectionPoolSize:
|
|
format: int32
|
|
type: integer
|
|
twoFactorAuthEnabled:
|
|
type: boolean
|
|
sessionTimeoutMinutes:
|
|
format: int32
|
|
type: integer
|
|
auditLoggingEnabled:
|
|
type: boolean
|
|
metricsCollectionEnabled:
|
|
type: boolean
|
|
metricsIntervalSeconds:
|
|
format: int32
|
|
type: integer
|
|
performanceOptimizationEnabled:
|
|
type: boolean
|
|
autoBackupEnabled:
|
|
type: boolean
|
|
backupFrequency:
|
|
type: string
|
|
backupRetentionDays:
|
|
format: int32
|
|
type: integer
|
|
lastBackup:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
logLevel:
|
|
type: string
|
|
logRetentionDays:
|
|
format: int32
|
|
type: integer
|
|
detailedLoggingEnabled:
|
|
type: boolean
|
|
logCompressionEnabled:
|
|
type: boolean
|
|
realTimeMonitoringEnabled:
|
|
type: boolean
|
|
monitoringIntervalSeconds:
|
|
format: int32
|
|
type: integer
|
|
emailAlertsEnabled:
|
|
type: boolean
|
|
pushAlertsEnabled:
|
|
type: boolean
|
|
cpuHighAlertEnabled:
|
|
type: boolean
|
|
cpuThresholdPercent:
|
|
format: int32
|
|
type: integer
|
|
memoryLowAlertEnabled:
|
|
type: boolean
|
|
memoryThresholdPercent:
|
|
format: int32
|
|
type: integer
|
|
criticalErrorAlertEnabled:
|
|
type: boolean
|
|
connectionFailureAlertEnabled:
|
|
type: boolean
|
|
connectionFailureThreshold:
|
|
format: int32
|
|
type: integer
|
|
systemStatus:
|
|
type: string
|
|
uptime:
|
|
format: int64
|
|
type: integer
|
|
SystemLogResponse:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
level:
|
|
type: string
|
|
source:
|
|
type: string
|
|
message:
|
|
type: string
|
|
details:
|
|
type: string
|
|
timestamp:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
userId:
|
|
type: string
|
|
sessionId:
|
|
type: string
|
|
ipAddress:
|
|
type: string
|
|
endpoint:
|
|
type: string
|
|
httpStatusCode:
|
|
format: int32
|
|
type: integer
|
|
critical:
|
|
type: boolean
|
|
error:
|
|
type: boolean
|
|
warning:
|
|
type: boolean
|
|
shortMessage:
|
|
type: string
|
|
levelColor:
|
|
type: string
|
|
SystemMetricsResponse:
|
|
type: object
|
|
properties:
|
|
cpuUsagePercent:
|
|
format: double
|
|
type: number
|
|
availableProcessors:
|
|
format: int32
|
|
type: integer
|
|
systemLoadAverage:
|
|
format: double
|
|
type: number
|
|
totalMemoryBytes:
|
|
format: int64
|
|
type: integer
|
|
usedMemoryBytes:
|
|
format: int64
|
|
type: integer
|
|
freeMemoryBytes:
|
|
format: int64
|
|
type: integer
|
|
maxMemoryBytes:
|
|
format: int64
|
|
type: integer
|
|
memoryUsagePercent:
|
|
format: double
|
|
type: number
|
|
totalMemoryFormatted:
|
|
type: string
|
|
usedMemoryFormatted:
|
|
type: string
|
|
freeMemoryFormatted:
|
|
type: string
|
|
totalDiskBytes:
|
|
format: int64
|
|
type: integer
|
|
usedDiskBytes:
|
|
format: int64
|
|
type: integer
|
|
freeDiskBytes:
|
|
format: int64
|
|
type: integer
|
|
diskUsagePercent:
|
|
format: double
|
|
type: number
|
|
totalDiskFormatted:
|
|
type: string
|
|
usedDiskFormatted:
|
|
type: string
|
|
freeDiskFormatted:
|
|
type: string
|
|
activeUsersCount:
|
|
format: int32
|
|
type: integer
|
|
totalUsersCount:
|
|
format: int32
|
|
type: integer
|
|
activeSessionsCount:
|
|
format: int32
|
|
type: integer
|
|
failedLoginAttempts24h:
|
|
format: int32
|
|
type: integer
|
|
apiRequestsLastHour:
|
|
format: int64
|
|
type: integer
|
|
apiRequestsToday:
|
|
format: int64
|
|
type: integer
|
|
averageResponseTimeMs:
|
|
format: double
|
|
type: number
|
|
totalRequestsCount:
|
|
format: int64
|
|
type: integer
|
|
dbConnectionPoolSize:
|
|
format: int32
|
|
type: integer
|
|
dbActiveConnections:
|
|
format: int32
|
|
type: integer
|
|
dbIdleConnections:
|
|
format: int32
|
|
type: integer
|
|
dbHealthy:
|
|
type: boolean
|
|
criticalErrorsCount:
|
|
format: int32
|
|
type: integer
|
|
warningsCount:
|
|
format: int32
|
|
type: integer
|
|
infoLogsCount:
|
|
format: int32
|
|
type: integer
|
|
debugLogsCount:
|
|
format: int32
|
|
type: integer
|
|
totalLogsCount:
|
|
format: int64
|
|
type: integer
|
|
networkBytesReceivedPerSec:
|
|
format: double
|
|
type: number
|
|
networkBytesSentPerSec:
|
|
format: double
|
|
type: number
|
|
networkInFormatted:
|
|
type: string
|
|
networkOutFormatted:
|
|
type: string
|
|
systemStatus:
|
|
type: string
|
|
uptimeMillis:
|
|
format: int64
|
|
type: integer
|
|
uptimeFormatted:
|
|
type: string
|
|
startTime:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
currentTime:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
javaVersion:
|
|
type: string
|
|
quarkusVersion:
|
|
type: string
|
|
applicationVersion:
|
|
type: string
|
|
lastBackup:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
nextScheduledMaintenance:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
lastMaintenance:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
apiBaseUrl:
|
|
type: string
|
|
authServerUrl:
|
|
type: string
|
|
cdnUrl:
|
|
type: string
|
|
totalCacheSizeBytes:
|
|
format: int64
|
|
type: integer
|
|
totalCacheSizeFormatted:
|
|
type: string
|
|
totalCacheEntries:
|
|
format: int32
|
|
type: integer
|
|
services:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/ServiceStatus"
|
|
timestamp:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
errorRate:
|
|
format: double
|
|
type: number
|
|
activeConnections:
|
|
format: int32
|
|
type: integer
|
|
networkUsageMbps:
|
|
format: double
|
|
type: number
|
|
totalLogs24h:
|
|
format: int64
|
|
type: integer
|
|
totalErrors24h:
|
|
format: int64
|
|
type: integer
|
|
totalWarnings24h:
|
|
format: int64
|
|
type: integer
|
|
totalRequests24h:
|
|
format: int64
|
|
type: integer
|
|
uptime:
|
|
format: int64
|
|
type: integer
|
|
healthy:
|
|
type: boolean
|
|
cpuOverloaded:
|
|
type: boolean
|
|
memoryCritical:
|
|
type: boolean
|
|
SystemTestResultResponse:
|
|
type: object
|
|
properties:
|
|
testType:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
message:
|
|
type: string
|
|
responseTimeMs:
|
|
format: int64
|
|
type: integer
|
|
testedAt:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
details:
|
|
type: string
|
|
TontineRequest:
|
|
description: Requête de création/paramétrage d'une tontine
|
|
required:
|
|
- nom
|
|
- organisationId
|
|
- typeTontine
|
|
- frequence
|
|
- dateDebutPrevue
|
|
type: object
|
|
properties:
|
|
nom:
|
|
pattern: \S
|
|
type: string
|
|
description:
|
|
type: string
|
|
organisationId:
|
|
pattern: \S
|
|
type: string
|
|
typeTontine:
|
|
$ref: "#/components/schemas/TypeTontine"
|
|
frequence:
|
|
$ref: "#/components/schemas/FrequenceTour"
|
|
dateDebutPrevue:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
montantMiseParTour:
|
|
description: Montant fixe si tontine classique
|
|
minimum: 0
|
|
type: number
|
|
limiteParticipants:
|
|
format: int32
|
|
description: Le nombre maximum de membres pouvant rejoindre cette tontine
|
|
(Optionnel)
|
|
minimum: 2
|
|
type: integer
|
|
TontineResponse:
|
|
description: Réponse contenant la structure d'une tontine
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
nouveau:
|
|
type: boolean
|
|
nom:
|
|
type: string
|
|
description:
|
|
type: string
|
|
organisationId:
|
|
type: string
|
|
typeTontine:
|
|
$ref: "#/components/schemas/TypeTontine"
|
|
frequence:
|
|
$ref: "#/components/schemas/FrequenceTour"
|
|
statut:
|
|
$ref: "#/components/schemas/StatutTontine"
|
|
dateDebutEffective:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
dateFinPrevue:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
montantMiseParTour:
|
|
type: number
|
|
limiteParticipants:
|
|
format: int32
|
|
type: integer
|
|
nombreParticipantsActuels:
|
|
format: int32
|
|
description: "Statistiques directes : nombre de participants actifs et fonds\
|
|
\ totaux levés à ce jour"
|
|
type: integer
|
|
fondTotalCollecte:
|
|
type: number
|
|
calendrierTours:
|
|
description: Calendrier généré des tours de cette tontine
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/TourTontineDTO"
|
|
TourTontineDTO:
|
|
description: Informations d'un tour spécifique d'une tontine rotative
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
nouveau:
|
|
type: boolean
|
|
tontineId:
|
|
type: string
|
|
ordreTour:
|
|
format: int32
|
|
description: "Ordre cronologique (Tour 1, Tour 2...)"
|
|
type: integer
|
|
dateOuvertureCotisations:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
dateTirageOuRemise:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
montantCible:
|
|
description: "Montant cible total (Ex: 10 membres x 10 000 = 100 000 cibles)"
|
|
type: number
|
|
cagnotteCollectee:
|
|
description: Montant de la cagnotte réellement collectée pour ce tour
|
|
type: number
|
|
membreBeneficiaireId:
|
|
description: Membre désigné pour remporter ce tour (bénéficiaire de la caisse)
|
|
type: string
|
|
statutInterne:
|
|
description: "Statut: A_VENIR, EN_COURS, CLOTURE/REMIS"
|
|
type: string
|
|
TransactionEpargneRequest:
|
|
description: Requête d'initialisation d'une transaction sur un compte d'épargne
|
|
required:
|
|
- compteId
|
|
- typeTransaction
|
|
- montant
|
|
type: object
|
|
properties:
|
|
compteId:
|
|
pattern: \S
|
|
type: string
|
|
typeTransaction:
|
|
$ref: "#/components/schemas/TypeTransactionEpargne"
|
|
montant:
|
|
minimum: 0.01
|
|
type: number
|
|
compteDestinationId:
|
|
description: ID d'un compte de destination en cas de transfert interne
|
|
type: string
|
|
motif:
|
|
description: "Motif, libellé ou preuve de dépôt"
|
|
type: string
|
|
origineFonds:
|
|
description: "Origine des fonds (LCB-FT) — obligatoire au-dessus du seuil\
|
|
\ configuré (ex. Salaire, Vente, Héritage)"
|
|
type: string
|
|
pieceJustificativeId:
|
|
description: ID de la pièce justificative (document) — requis au-dessus
|
|
du seuil LCB-FT
|
|
type: string
|
|
TransactionWaveDTO:
|
|
required:
|
|
- waveTransactionId
|
|
- typeTransaction
|
|
- statutTransaction
|
|
- montant
|
|
- codeDevise
|
|
- compteWaveId
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
nouveau:
|
|
type: boolean
|
|
waveTransactionId:
|
|
pattern: \S
|
|
type: string
|
|
waveRequestId:
|
|
type: string
|
|
waveReference:
|
|
type: string
|
|
typeTransaction:
|
|
$ref: "#/components/schemas/TypeTransactionWave"
|
|
statutTransaction:
|
|
$ref: "#/components/schemas/StatutTransactionWave"
|
|
montant:
|
|
minimum: 0
|
|
pattern: "^\\d{1,12}([.]\\d{1,2})?$"
|
|
type: number
|
|
frais:
|
|
minimum: 0
|
|
pattern: "^\\d{1,10}([.]\\d{1,2})?$"
|
|
type: number
|
|
montantNet:
|
|
minimum: 0
|
|
pattern: "^\\d{1,12}([.]\\d{1,2})?$"
|
|
type: number
|
|
codeDevise:
|
|
pattern: "^[A-Z]{3}$"
|
|
type: string
|
|
telephonePayeur:
|
|
type: string
|
|
telephoneBeneficiaire:
|
|
type: string
|
|
metadonnees:
|
|
type: string
|
|
nombreTentatives:
|
|
format: int32
|
|
type: integer
|
|
dateDerniereTentative:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
messageErreur:
|
|
type: string
|
|
compteWaveId:
|
|
$ref: "#/components/schemas/UUID"
|
|
TypeActionAudit:
|
|
description: Type d'action pour l'audit
|
|
enum:
|
|
- USER_CREATE
|
|
- USER_UPDATE
|
|
- USER_DELETE
|
|
- USER_ACTIVATE
|
|
- USER_DEACTIVATE
|
|
- USER_SUSPEND
|
|
- USER_UNLOCK
|
|
- USER_PASSWORD_RESET
|
|
- USER_EMAIL_VERIFY
|
|
- USER_FORCE_LOGOUT
|
|
- USER_IMPORT
|
|
- ROLE_CREATE
|
|
- ROLE_UPDATE
|
|
- ROLE_DELETE
|
|
- ROLE_ASSIGN
|
|
- ROLE_REVOKE
|
|
- ROLE_ADD_COMPOSITE
|
|
- ROLE_REMOVE_COMPOSITE
|
|
- GROUP_CREATE
|
|
- GROUP_UPDATE
|
|
- GROUP_DELETE
|
|
- GROUP_ADD_MEMBER
|
|
- GROUP_REMOVE_MEMBER
|
|
- REALM_SYNC
|
|
- SYNC_USERS
|
|
- SYNC_ROLES
|
|
- REALM_EXPORT
|
|
- REALM_IMPORT
|
|
- REALM_ASSIGN
|
|
- REALM_REVOKE
|
|
- REALM_ACTIVATE
|
|
- REALM_DEACTIVATE
|
|
- REALM_SET_SUPER_ADMIN
|
|
- SESSION_CREATE
|
|
- SESSION_DELETE
|
|
- SESSION_REVOKE_ALL
|
|
- SYSTEM_BACKUP
|
|
- SYSTEM_RESTORE
|
|
- SYSTEM_CONFIG_CHANGE
|
|
type: string
|
|
TypeAide:
|
|
enum:
|
|
- AIDE_FINANCIERE_URGENTE
|
|
- PRET_SANS_INTERET
|
|
- AIDE_COTISATION
|
|
- AIDE_FRAIS_MEDICAUX
|
|
- AIDE_FRAIS_SCOLARITE
|
|
- DON_MATERIEL
|
|
- PRET_MATERIEL
|
|
- AIDE_DEMENAGEMENT
|
|
- AIDE_TRAVAUX
|
|
- AIDE_RECHERCHE_EMPLOI
|
|
- FORMATION_PROFESSIONNELLE
|
|
- CONSEIL_JURIDIQUE
|
|
- AIDE_CREATION_ENTREPRISE
|
|
- GARDE_ENFANTS
|
|
- AIDE_PERSONNES_AGEES
|
|
- TRANSPORT
|
|
- AIDE_ADMINISTRATIVE
|
|
- HEBERGEMENT_URGENCE
|
|
- AIDE_ALIMENTAIRE
|
|
- AIDE_VESTIMENTAIRE
|
|
- SOUTIEN_PSYCHOLOGIQUE
|
|
- AIDE_NUMERIQUE
|
|
- TRADUCTION
|
|
- AUTRE
|
|
type: string
|
|
TypeCompteComptable:
|
|
enum:
|
|
- ACTIF
|
|
- PASSIF
|
|
- CHARGES
|
|
- PRODUITS
|
|
- TRESORERIE
|
|
- AUTRE
|
|
type: string
|
|
TypeCompteEpargne:
|
|
enum:
|
|
- COURANT
|
|
- EPARGNE_LIBRE
|
|
- EPARGNE_BLOQUEE
|
|
- DEPOT_A_TERME
|
|
- EPARGNE_PROJET
|
|
type: string
|
|
TypeCredit:
|
|
enum:
|
|
- CONSOMMATION
|
|
- IMMOBILIER
|
|
- PROFESSIONNEL
|
|
- AGRICOLE
|
|
- SCOLAIRE
|
|
- URGENCE
|
|
- DECOUVERT
|
|
type: string
|
|
TypeCreneau:
|
|
enum:
|
|
- RECURRENT
|
|
- PONCTUEL
|
|
- URGENCE
|
|
- FLEXIBLE
|
|
type: string
|
|
TypeDocument:
|
|
enum:
|
|
- IDENTITE
|
|
- JUSTIFICATIF_DOMICILE
|
|
- PIECE_JUSTIFICATIVE
|
|
- PHOTO
|
|
- CONTRAT
|
|
- FACTURE
|
|
- RECU
|
|
- RAPPORT
|
|
- AUTRE
|
|
type: string
|
|
TypeDonReligieux:
|
|
enum:
|
|
- QUETE_ORDINAIRE
|
|
- DIME
|
|
- ZAKAT
|
|
- OFFRANDE_SPECIALE
|
|
- INTENTION_PRIERE
|
|
type: string
|
|
TypeGarantie:
|
|
enum:
|
|
- EPARGNE_BLOQUEE
|
|
- CAUTION_SOLIDAIRE
|
|
- MATERIELLE
|
|
- IMMOBILIERE
|
|
- FOND_GARANTIE
|
|
type: string
|
|
TypeJournalComptable:
|
|
enum:
|
|
- ACHATS
|
|
- VENTES
|
|
- BANQUE
|
|
- CAISSE
|
|
- OD
|
|
type: string
|
|
TypeMetrique:
|
|
enum:
|
|
- NOMBRE_MEMBRES_ACTIFS
|
|
- NOMBRE_MEMBRES_INACTIFS
|
|
- TAUX_CROISSANCE_MEMBRES
|
|
- MOYENNE_AGE_MEMBRES
|
|
- REPARTITION_GENRE_MEMBRES
|
|
- TOTAL_COTISATIONS_COLLECTEES
|
|
- COTISATIONS_EN_ATTENTE
|
|
- TAUX_RECOUVREMENT_COTISATIONS
|
|
- MOYENNE_COTISATION_MEMBRE
|
|
- EVOLUTION_REVENUS_MENSUELLE
|
|
- NOMBRE_EVENEMENTS_ORGANISES
|
|
- TAUX_PARTICIPATION_EVENEMENTS
|
|
- MOYENNE_PARTICIPANTS_EVENEMENT
|
|
- EVENEMENTS_ANNULES
|
|
- SATISFACTION_EVENEMENTS
|
|
- NOMBRE_DEMANDES_AIDE
|
|
- MONTANT_AIDES_ACCORDEES
|
|
- TAUX_APPROBATION_AIDES
|
|
- DELAI_TRAITEMENT_DEMANDES
|
|
- IMPACT_SOCIAL_MESURE
|
|
- TAUX_CONNEXION_MOBILE
|
|
- FREQUENCE_UTILISATION_APP
|
|
- ACTIONS_UTILISATEUR_JOUR
|
|
- RETENTION_UTILISATEURS
|
|
- NPS_SATISFACTION
|
|
- NOMBRE_ORGANISATIONS_ACTIVES
|
|
- TAUX_CROISSANCE_ORGANISATIONS
|
|
- MOYENNE_MEMBRES_PAR_ORGANISATION
|
|
- ORGANISATIONS_PREMIUM
|
|
- CHURN_RATE_ORGANISATIONS
|
|
- TEMPS_REPONSE_API
|
|
- TAUX_DISPONIBILITE_SYSTEME
|
|
- NOMBRE_ERREURS_SYSTEME
|
|
- UTILISATION_STOCKAGE
|
|
- PERFORMANCE_MOBILE
|
|
type: string
|
|
TypeReferenceResponse:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/UUID"
|
|
dateCreation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateModification:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
creePar:
|
|
type: string
|
|
modifiePar:
|
|
type: string
|
|
version:
|
|
format: int64
|
|
type: integer
|
|
actif:
|
|
type: boolean
|
|
domaine:
|
|
type: string
|
|
code:
|
|
type: string
|
|
libelle:
|
|
type: string
|
|
description:
|
|
type: string
|
|
icone:
|
|
type: string
|
|
couleur:
|
|
type: string
|
|
severity:
|
|
type: string
|
|
ordreAffichage:
|
|
format: int32
|
|
type: integer
|
|
estDefaut:
|
|
type: boolean
|
|
estSysteme:
|
|
type: boolean
|
|
organisationId:
|
|
$ref: "#/components/schemas/UUID"
|
|
categorie:
|
|
type: string
|
|
modulesRequis:
|
|
type: string
|
|
TypeRole:
|
|
description: Type de rôle Keycloak
|
|
enum:
|
|
- REALM_ROLE
|
|
- CLIENT_ROLE
|
|
- COMPOSITE_ROLE
|
|
type: string
|
|
TypeTontine:
|
|
enum:
|
|
- ROTATIVE_CLASSIQUE
|
|
- VARIABLE
|
|
- ACCUMULATIVE
|
|
type: string
|
|
TypeTransactionEpargne:
|
|
enum:
|
|
- DEPOT
|
|
- RETRAIT
|
|
- TRANSFERT_ENTRANT
|
|
- TRANSFERT_SORTANT
|
|
- PAIEMENT_INTERETS
|
|
- PRELEVEMENT_FRAIS
|
|
- RETENUE_GARANTIE
|
|
- LIBERATION_GARANTIE
|
|
- REMBOURSEMENT_CREDIT
|
|
type: string
|
|
TypeTransactionWave:
|
|
enum:
|
|
- DEPOT
|
|
- RETRAIT
|
|
- TRANSFERT
|
|
- PAIEMENT
|
|
- REMBOURSEMENT
|
|
type: string
|
|
TypeVote:
|
|
enum:
|
|
- ELECTION_BUREAU
|
|
- ADOPTION_RESOLUTION
|
|
- MODIFICATION_STATUTS
|
|
- EXCLUSION_MEMBRE
|
|
- REFERENDUM
|
|
type: string
|
|
UUID:
|
|
format: uuid
|
|
pattern: "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
|
|
type: string
|
|
UpdateAdhesionRequest:
|
|
type: object
|
|
properties:
|
|
montantPaye:
|
|
minimum: 0
|
|
pattern: "^\\d{1,10}([.]\\d{1,2})?$"
|
|
type: number
|
|
statut:
|
|
pattern: ^(EN_ATTENTE|APPROUVEE|REJETEE|ANNULEE|EN_PAIEMENT|PAYEE)$
|
|
type: string
|
|
dateApprobation:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
datePaiement:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
methodePaiement:
|
|
pattern: ^(ESPECES|VIREMENT|CHEQUE|WAVE_MONEY|ORANGE_MONEY|FREE_MONEY|CARTE_BANCAIRE)$
|
|
type: string
|
|
referencePaiement:
|
|
maxLength: 100
|
|
type: string
|
|
motifRejet:
|
|
maxLength: 1000
|
|
type: string
|
|
observations:
|
|
maxLength: 1000
|
|
type: string
|
|
approuvePar:
|
|
maxLength: 255
|
|
type: string
|
|
dateValidation:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
UpdateAlertConfigRequest:
|
|
type: object
|
|
properties:
|
|
cpuHighAlertEnabled:
|
|
type: boolean
|
|
cpuThresholdPercent:
|
|
format: int32
|
|
maximum: 100
|
|
minimum: 0
|
|
type: integer
|
|
cpuDurationMinutes:
|
|
format: int32
|
|
maximum: 120
|
|
minimum: 1
|
|
type: integer
|
|
memoryLowAlertEnabled:
|
|
type: boolean
|
|
memoryThresholdPercent:
|
|
format: int32
|
|
maximum: 100
|
|
minimum: 0
|
|
type: integer
|
|
criticalErrorAlertEnabled:
|
|
type: boolean
|
|
errorAlertEnabled:
|
|
type: boolean
|
|
connectionFailureAlertEnabled:
|
|
type: boolean
|
|
connectionFailureThreshold:
|
|
format: int32
|
|
maximum: 1000
|
|
minimum: 1
|
|
type: integer
|
|
connectionFailureWindowMinutes:
|
|
format: int32
|
|
maximum: 60
|
|
minimum: 1
|
|
type: integer
|
|
emailNotificationsEnabled:
|
|
type: boolean
|
|
pushNotificationsEnabled:
|
|
type: boolean
|
|
smsNotificationsEnabled:
|
|
type: boolean
|
|
alertEmailRecipients:
|
|
type: string
|
|
UpdateBackupConfigRequest:
|
|
type: object
|
|
properties:
|
|
autoBackupEnabled:
|
|
type: boolean
|
|
frequency:
|
|
type: string
|
|
retention:
|
|
type: string
|
|
retentionDays:
|
|
format: int32
|
|
type: integer
|
|
backupTime:
|
|
type: string
|
|
includeDatabase:
|
|
type: boolean
|
|
includeFiles:
|
|
type: boolean
|
|
includeConfiguration:
|
|
type: boolean
|
|
UpdateConfigurationRequest:
|
|
type: object
|
|
properties:
|
|
cle:
|
|
type: string
|
|
valeur:
|
|
type: string
|
|
type:
|
|
type: string
|
|
categorie:
|
|
type: string
|
|
description:
|
|
type: string
|
|
modifiable:
|
|
type: boolean
|
|
visible:
|
|
type: boolean
|
|
metadonnees:
|
|
type: object
|
|
additionalProperties: {}
|
|
UpdateCotisationRequest:
|
|
type: object
|
|
properties:
|
|
libelle:
|
|
maxLength: 100
|
|
type: string
|
|
description:
|
|
maxLength: 500
|
|
type: string
|
|
montantDu:
|
|
minimum: 0
|
|
exclusiveMinimum: true
|
|
pattern: "^\\d{1,10}([.]\\d{1,2})?$"
|
|
type: number
|
|
dateEcheance:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
observations:
|
|
maxLength: 1000
|
|
type: string
|
|
statut:
|
|
type: string
|
|
annee:
|
|
format: int32
|
|
maximum: 2100
|
|
minimum: 2020
|
|
type: integer
|
|
mois:
|
|
format: int32
|
|
maximum: 12
|
|
minimum: 1
|
|
type: integer
|
|
recurrente:
|
|
type: boolean
|
|
UpdateDemandeAideRequest:
|
|
type: object
|
|
properties:
|
|
typeAide:
|
|
$ref: "#/components/schemas/TypeAide"
|
|
titre:
|
|
maxLength: 200
|
|
type: string
|
|
description:
|
|
maxLength: 2000
|
|
type: string
|
|
justification:
|
|
maxLength: 1000
|
|
type: string
|
|
montantDemande:
|
|
type: number
|
|
devise:
|
|
type: string
|
|
priorite:
|
|
$ref: "#/components/schemas/PrioriteAide"
|
|
piecesJustificatives:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/PieceJustificativeDTO"
|
|
beneficiaires:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/BeneficiaireAideDTO"
|
|
donneesPersonnalisees:
|
|
type: object
|
|
additionalProperties: {}
|
|
tags:
|
|
type: array
|
|
items:
|
|
type: string
|
|
estConfidentielle:
|
|
type: boolean
|
|
necessiteSuivi:
|
|
type: boolean
|
|
localisation:
|
|
$ref: "#/components/schemas/LocalisationDTO"
|
|
contactUrgence:
|
|
$ref: "#/components/schemas/ContactUrgenceDTO"
|
|
dateLimite:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
statut:
|
|
$ref: "#/components/schemas/StatutAide"
|
|
montantApprouve:
|
|
type: number
|
|
commentairesEvaluateur:
|
|
type: string
|
|
documentsJoints:
|
|
type: string
|
|
dateSoumission:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateEvaluation:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
dateVersement:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
UpdateMembreRequest:
|
|
required:
|
|
- prenom
|
|
- nom
|
|
- email
|
|
- dateNaissance
|
|
type: object
|
|
properties:
|
|
prenom:
|
|
maxLength: 100
|
|
pattern: \S
|
|
type: string
|
|
nom:
|
|
maxLength: 100
|
|
pattern: \S
|
|
type: string
|
|
email:
|
|
maxLength: 255
|
|
pattern: \S
|
|
type: string
|
|
telephone:
|
|
maxLength: 20
|
|
type: string
|
|
telephoneWave:
|
|
maxLength: 20
|
|
type: string
|
|
dateNaissance:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
profession:
|
|
maxLength: 100
|
|
type: string
|
|
photoUrl:
|
|
maxLength: 500
|
|
type: string
|
|
statutMatrimonial:
|
|
maxLength: 50
|
|
type: string
|
|
nationalite:
|
|
maxLength: 100
|
|
type: string
|
|
typeIdentite:
|
|
maxLength: 50
|
|
type: string
|
|
numeroIdentite:
|
|
maxLength: 100
|
|
type: string
|
|
actif:
|
|
type: boolean
|
|
UpdateOrganisationRequest:
|
|
required:
|
|
- nom
|
|
- email
|
|
type: object
|
|
properties:
|
|
nom:
|
|
maxLength: 255
|
|
pattern: \S
|
|
type: string
|
|
nomCourt:
|
|
maxLength: 50
|
|
type: string
|
|
description:
|
|
maxLength: 2000
|
|
type: string
|
|
email:
|
|
maxLength: 255
|
|
pattern: \S
|
|
type: string
|
|
telephone:
|
|
maxLength: 20
|
|
type: string
|
|
telephoneSecondaire:
|
|
maxLength: 20
|
|
type: string
|
|
emailSecondaire:
|
|
maxLength: 255
|
|
type: string
|
|
siteWeb:
|
|
maxLength: 500
|
|
type: string
|
|
logo:
|
|
maxLength: 500
|
|
type: string
|
|
reseauxSociaux:
|
|
maxLength: 1000
|
|
type: string
|
|
typeOrganisation:
|
|
maxLength: 50
|
|
type: string
|
|
statut:
|
|
maxLength: 30
|
|
type: string
|
|
dateFondation:
|
|
$ref: "#/components/schemas/LocalDate"
|
|
numeroEnregistrement:
|
|
maxLength: 100
|
|
type: string
|
|
devise:
|
|
maxLength: 3
|
|
type: string
|
|
budgetAnnuel:
|
|
type: number
|
|
cotisationObligatoire:
|
|
type: boolean
|
|
montantCotisationAnnuelle:
|
|
type: number
|
|
objectifs:
|
|
maxLength: 2000
|
|
type: string
|
|
activitesPrincipales:
|
|
maxLength: 2000
|
|
type: string
|
|
certifications:
|
|
maxLength: 500
|
|
type: string
|
|
partenaires:
|
|
maxLength: 1000
|
|
type: string
|
|
notes:
|
|
maxLength: 1000
|
|
type: string
|
|
latitude:
|
|
type: number
|
|
longitude:
|
|
type: number
|
|
adresse:
|
|
maxLength: 500
|
|
type: string
|
|
ville:
|
|
maxLength: 100
|
|
type: string
|
|
region:
|
|
maxLength: 100
|
|
type: string
|
|
pays:
|
|
maxLength: 100
|
|
type: string
|
|
codePostal:
|
|
maxLength: 20
|
|
type: string
|
|
organisationPublique:
|
|
type: boolean
|
|
accepteNouveauxMembres:
|
|
type: boolean
|
|
UpdatePropositionAideRequest:
|
|
type: object
|
|
properties:
|
|
typeAide:
|
|
$ref: "#/components/schemas/TypeAide"
|
|
titre:
|
|
type: string
|
|
description:
|
|
type: string
|
|
conditions:
|
|
type: string
|
|
montantMaximum:
|
|
type: number
|
|
nombreMaxBeneficiaires:
|
|
format: int32
|
|
type: integer
|
|
devise:
|
|
type: string
|
|
statut:
|
|
$ref: "#/components/schemas/StatutProposition"
|
|
estDisponible:
|
|
type: boolean
|
|
estRecurrente:
|
|
type: boolean
|
|
frequenceRecurrence:
|
|
type: string
|
|
dateExpiration:
|
|
$ref: "#/components/schemas/LocalDateTime"
|
|
delaiReponseHeures:
|
|
format: int32
|
|
type: integer
|
|
UpdateSystemConfigRequest:
|
|
type: object
|
|
properties:
|
|
applicationName:
|
|
type: string
|
|
timezone:
|
|
type: string
|
|
defaultLanguage:
|
|
type: string
|
|
maintenanceMode:
|
|
type: boolean
|
|
networkTimeout:
|
|
format: int32
|
|
type: integer
|
|
maxRetries:
|
|
format: int32
|
|
type: integer
|
|
connectionPoolSize:
|
|
format: int32
|
|
type: integer
|
|
twoFactorAuthEnabled:
|
|
type: boolean
|
|
sessionTimeoutMinutes:
|
|
format: int32
|
|
type: integer
|
|
auditLoggingEnabled:
|
|
type: boolean
|
|
metricsCollectionEnabled:
|
|
type: boolean
|
|
metricsIntervalSeconds:
|
|
format: int32
|
|
type: integer
|
|
performanceOptimizationEnabled:
|
|
type: boolean
|
|
autoBackupEnabled:
|
|
type: boolean
|
|
backupFrequency:
|
|
type: string
|
|
backupRetentionDays:
|
|
format: int32
|
|
type: integer
|
|
logLevel:
|
|
type: string
|
|
logRetentionDays:
|
|
format: int32
|
|
type: integer
|
|
detailedLoggingEnabled:
|
|
type: boolean
|
|
logCompressionEnabled:
|
|
type: boolean
|
|
realTimeMonitoringEnabled:
|
|
type: boolean
|
|
monitoringIntervalSeconds:
|
|
format: int32
|
|
type: integer
|
|
emailAlertsEnabled:
|
|
type: boolean
|
|
pushAlertsEnabled:
|
|
type: boolean
|
|
cpuHighAlertEnabled:
|
|
type: boolean
|
|
cpuThresholdPercent:
|
|
format: int32
|
|
type: integer
|
|
memoryLowAlertEnabled:
|
|
type: boolean
|
|
memoryThresholdPercent:
|
|
format: int32
|
|
type: integer
|
|
criticalErrorAlertEnabled:
|
|
type: boolean
|
|
connectionFailureAlertEnabled:
|
|
type: boolean
|
|
connectionFailureThreshold:
|
|
format: int32
|
|
type: integer
|
|
UpdateTypeReferenceRequest:
|
|
type: object
|
|
properties:
|
|
code:
|
|
maxLength: 50
|
|
type: string
|
|
libelle:
|
|
maxLength: 200
|
|
type: string
|
|
description:
|
|
maxLength: 1000
|
|
type: string
|
|
icone:
|
|
maxLength: 100
|
|
type: string
|
|
couleur:
|
|
maxLength: 50
|
|
type: string
|
|
severity:
|
|
maxLength: 20
|
|
type: string
|
|
ordreAffichage:
|
|
format: int32
|
|
type: integer
|
|
estDefaut:
|
|
type: boolean
|
|
actif:
|
|
type: boolean
|
|
categorie:
|
|
maxLength: 50
|
|
type: string
|
|
modulesRequis:
|
|
type: string
|
|
UserDTO:
|
|
description: Utilisateur Keycloak
|
|
required:
|
|
- username
|
|
- email
|
|
- prenom
|
|
- nom
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Identifiant unique (UUID Keycloak)
|
|
type: string
|
|
example: f47ac10b-58cc-4372-a567-0e02b2c3d479
|
|
dateCreation:
|
|
description: Date de création
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDateTime"
|
|
example: 2025-01-15T10:30:00
|
|
dateModification:
|
|
description: Date de dernière modification
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDateTime"
|
|
example: 2025-01-15T14:20:00
|
|
creeParUsername:
|
|
description: Utilisateur ayant créé l'entité
|
|
type: string
|
|
example: admin@lions.dev
|
|
modifieParUsername:
|
|
description: Utilisateur ayant modifié l'entité
|
|
type: string
|
|
example: superadmin@lions.dev
|
|
version:
|
|
format: int64
|
|
description: Numéro de version pour gestion optimiste
|
|
type: integer
|
|
example: 1
|
|
username:
|
|
description: Nom d'utilisateur unique
|
|
maxLength: 100
|
|
minLength: 3
|
|
pattern: "^[a-zA-Z0-9._-]+$"
|
|
type: string
|
|
example: jdupont
|
|
email:
|
|
description: Adresse email
|
|
pattern: \S
|
|
type: string
|
|
example: jean.dupont@lions.dev
|
|
emailVerified:
|
|
description: Email vérifié
|
|
type: boolean
|
|
example: true
|
|
prenom:
|
|
description: Prénom
|
|
maxLength: 100
|
|
minLength: 2
|
|
pattern: \S
|
|
type: string
|
|
example: Jean
|
|
nom:
|
|
description: Nom de famille
|
|
maxLength: 100
|
|
minLength: 2
|
|
pattern: \S
|
|
type: string
|
|
example: Dupont
|
|
statut:
|
|
description: Statut de l'utilisateur
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/StatutUser"
|
|
example: ACTIF
|
|
enabled:
|
|
description: Compte activé
|
|
type: boolean
|
|
example: true
|
|
telephone:
|
|
description: Numéro de téléphone
|
|
type: string
|
|
example: +225 07 12 34 56 78
|
|
organisation:
|
|
description: Organisation/Entreprise
|
|
type: string
|
|
example: Lions Dev
|
|
departement:
|
|
description: Département
|
|
type: string
|
|
example: IT
|
|
fonction:
|
|
description: Fonction/Poste
|
|
type: string
|
|
example: Développeur Senior
|
|
pays:
|
|
description: Pays
|
|
type: string
|
|
example: Côte d'Ivoire
|
|
ville:
|
|
description: Ville
|
|
type: string
|
|
example: Abidjan
|
|
langue:
|
|
description: Langue préférée
|
|
type: string
|
|
example: fr
|
|
timezone:
|
|
description: Fuseau horaire
|
|
type: string
|
|
example: Africa/Abidjan
|
|
realmName:
|
|
description: Realm Keycloak
|
|
type: string
|
|
example: btpxpress
|
|
realmRoles:
|
|
description: Liste des rôles Realm assignés
|
|
type: array
|
|
items:
|
|
type: string
|
|
clientRoles:
|
|
description: Liste des rôles Client assignés
|
|
type: object
|
|
additionalProperties:
|
|
type: array
|
|
items:
|
|
type: string
|
|
groups:
|
|
description: Liste des groupes auxquels appartient l'utilisateur
|
|
type: array
|
|
items:
|
|
type: string
|
|
derniereConnexion:
|
|
description: Date de dernière connexion
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDateTime"
|
|
example: 2025-01-15T10:30:00
|
|
dateExpiration:
|
|
description: Date d'expiration du compte
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDateTime"
|
|
example: 2026-01-15T23:59:59
|
|
dateVerrouillage:
|
|
description: Date de verrouillage du compte
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDateTime"
|
|
example: 2025-01-15T16:00:00
|
|
attributes:
|
|
description: Attributs personnalisés Keycloak
|
|
type: object
|
|
additionalProperties:
|
|
type: array
|
|
items:
|
|
type: string
|
|
requiredActions:
|
|
description: "Actions requises (ex: UPDATE_PASSWORD, VERIFY_EMAIL)"
|
|
type: array
|
|
items:
|
|
type: string
|
|
federatedIdentityProvider:
|
|
description: Fournisseur d'identité fédéré
|
|
type: string
|
|
example: google
|
|
federatedIdentities:
|
|
description: Lien d'identité fédérée
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/FederatedIdentityDTO"
|
|
temporaryPassword:
|
|
description: Mot de passe temporaire (création uniquement)
|
|
type: string
|
|
temporaryPasswordFlag:
|
|
description: Indique si le mot de passe est temporaire
|
|
type: boolean
|
|
activeSessions:
|
|
format: int32
|
|
description: Nombre de sessions actives
|
|
type: integer
|
|
example: 2
|
|
failedLoginAttempts:
|
|
format: int32
|
|
description: Nombre d'échecs de connexion
|
|
type: integer
|
|
example: 0
|
|
raisonModification:
|
|
description: Raison de la dernière modification
|
|
type: string
|
|
commentaires:
|
|
description: Commentaires administratifs
|
|
type: string
|
|
nomComplet:
|
|
type: string
|
|
actif:
|
|
type: boolean
|
|
expire:
|
|
type: boolean
|
|
UserSearchCriteriaDTO:
|
|
description: Critères de recherche d'utilisateurs
|
|
type: object
|
|
properties:
|
|
searchTerm:
|
|
description: "Terme de recherche générale (username, email, nom, prénom)"
|
|
type: string
|
|
example: dupont
|
|
username:
|
|
description: Nom d'utilisateur exact
|
|
type: string
|
|
example: jdupont
|
|
email:
|
|
description: Email exact
|
|
type: string
|
|
example: jean.dupont@lions.dev
|
|
prenom:
|
|
description: Prénom
|
|
type: string
|
|
example: Jean
|
|
nom:
|
|
description: Nom de famille
|
|
type: string
|
|
example: Dupont
|
|
telephone:
|
|
description: Numéro de téléphone
|
|
type: string
|
|
example: +225 01 02 03 04 05
|
|
statut:
|
|
description: Statut de l'utilisateur
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/StatutUser"
|
|
example: ACTIF
|
|
enabled:
|
|
description: Compte activé
|
|
type: boolean
|
|
example: true
|
|
emailVerified:
|
|
description: Email vérifié
|
|
type: boolean
|
|
example: true
|
|
realmRoles:
|
|
description: Liste des rôles Realm à filtrer
|
|
type: array
|
|
items:
|
|
type: string
|
|
clientRoles:
|
|
description: Liste des rôles Client à filtrer
|
|
type: array
|
|
items:
|
|
type: string
|
|
groups:
|
|
description: Liste des groupes à filtrer
|
|
type: array
|
|
items:
|
|
type: string
|
|
clientName:
|
|
description: Nom du client pour filtrer par rôles client
|
|
type: string
|
|
example: btpxpress-app
|
|
organisation:
|
|
description: Organisation/Entreprise
|
|
type: string
|
|
example: Lions Dev
|
|
departement:
|
|
description: Département
|
|
type: string
|
|
example: IT
|
|
fonction:
|
|
description: Fonction/Poste
|
|
type: string
|
|
example: Développeur
|
|
pays:
|
|
description: Pays
|
|
type: string
|
|
example: Côte d'Ivoire
|
|
ville:
|
|
description: Ville
|
|
type: string
|
|
example: Abidjan
|
|
dateCreationMin:
|
|
description: Date de création minimum
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDateTime"
|
|
example: 2025-01-01T00:00:00
|
|
dateCreationMax:
|
|
description: Date de création maximum
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDateTime"
|
|
example: 2025-12-31T23:59:59
|
|
derniereConnexionMin:
|
|
description: Date de dernière connexion minimum
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDateTime"
|
|
example: 2025-01-01T00:00:00
|
|
derniereConnexionMax:
|
|
description: Date de dernière connexion maximum
|
|
type: string
|
|
allOf:
|
|
- $ref: "#/components/schemas/LocalDateTime"
|
|
example: 2025-01-31T23:59:59
|
|
hasRequiredActions:
|
|
description: Utilisateurs avec actions requises uniquement
|
|
type: boolean
|
|
example: true
|
|
isLocked:
|
|
description: Utilisateurs verrouillés uniquement
|
|
type: boolean
|
|
example: false
|
|
isExpired:
|
|
description: Utilisateurs expirés uniquement
|
|
type: boolean
|
|
example: false
|
|
hasActiveSessions:
|
|
description: Utilisateurs avec sessions actives uniquement
|
|
type: boolean
|
|
example: true
|
|
realmName:
|
|
description: Nom du Realm à filtrer
|
|
type: string
|
|
example: btpxpress
|
|
page:
|
|
format: int32
|
|
description: Numéro de page (commence à 0)
|
|
default: 0
|
|
type: integer
|
|
example: 0
|
|
pageSize:
|
|
format: int32
|
|
description: Taille de la page
|
|
default: 20
|
|
type: integer
|
|
example: 20
|
|
maxResults:
|
|
format: int32
|
|
description: Nombre maximum de résultats
|
|
type: integer
|
|
example: 100
|
|
sortBy:
|
|
description: "Champ de tri (username, email, prenom, nom, dateCreation,\
|
|
\ derniereConnexion)"
|
|
type: string
|
|
example: username
|
|
sortOrder:
|
|
description: Ordre de tri (ASC ou DESC)
|
|
type: string
|
|
example: ASC
|
|
includeRoles:
|
|
description: Inclure les rôles dans les résultats
|
|
type: boolean
|
|
example: true
|
|
includeGroups:
|
|
description: Inclure les groupes dans les résultats
|
|
type: boolean
|
|
example: true
|
|
includeAttributes:
|
|
description: Inclure les attributs personnalisés
|
|
type: boolean
|
|
example: false
|
|
includeSessionInfo:
|
|
description: Inclure les informations de session
|
|
type: boolean
|
|
example: false
|
|
offset:
|
|
format: int32
|
|
type: integer
|
|
UserSearchResultDTO:
|
|
description: Résultat paginé de recherche d'utilisateurs
|
|
type: object
|
|
properties:
|
|
users:
|
|
description: Liste des utilisateurs trouvés
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/UserDTO"
|
|
totalCount:
|
|
format: int64
|
|
description: Nombre total d'utilisateurs correspondant aux critères
|
|
type: integer
|
|
example: 156
|
|
currentPage:
|
|
format: int32
|
|
description: Numéro de la page actuelle (commence à 0)
|
|
type: integer
|
|
example: 0
|
|
pageSize:
|
|
format: int32
|
|
description: Taille de la page
|
|
type: integer
|
|
example: 20
|
|
totalPages:
|
|
format: int32
|
|
description: Nombre total de pages
|
|
type: integer
|
|
example: 8
|
|
hasNextPage:
|
|
description: Indique s'il y a une page suivante
|
|
type: boolean
|
|
example: true
|
|
hasPreviousPage:
|
|
description: Indique s'il y a une page précédente
|
|
type: boolean
|
|
example: false
|
|
firstElement:
|
|
format: int32
|
|
description: Index du premier élément de la page
|
|
type: integer
|
|
example: 0
|
|
lastElement:
|
|
format: int32
|
|
description: Index du dernier élément de la page
|
|
type: integer
|
|
example: 19
|
|
isEmpty:
|
|
description: Indique si la page est vide
|
|
type: boolean
|
|
example: false
|
|
isFirstPage:
|
|
description: Indique si c'est la première page
|
|
type: boolean
|
|
example: true
|
|
isLastPage:
|
|
description: Indique si c'est la dernière page
|
|
type: boolean
|
|
example: false
|
|
criteria:
|
|
description: Critères de recherche utilisés
|
|
type: object
|
|
allOf:
|
|
- $ref: "#/components/schemas/UserSearchCriteriaDTO"
|
|
executionTimeMs:
|
|
format: int64
|
|
description: Temps d'exécution de la recherche en millisecondes
|
|
type: integer
|
|
example: 145
|
|
currentPageSize:
|
|
format: int32
|
|
type: integer
|
|
UserSessionStatsDTO:
|
|
description: Statistiques de sessions et d'utilisateurs en ligne pour un realm
|
|
type: object
|
|
properties:
|
|
realmName:
|
|
description: Nom du realm concerné
|
|
type: string
|
|
totalUsers:
|
|
format: int64
|
|
description: Nombre total d'utilisateurs dans le realm
|
|
type: integer
|
|
activeSessions:
|
|
format: int64
|
|
description: Nombre total de sessions actives (approximation)
|
|
type: integer
|
|
onlineUsers:
|
|
format: int64
|
|
description: Nombre d'utilisateurs considérés comme en ligne (approximation)
|
|
type: integer
|
|
securitySchemes:
|
|
Keycloak:
|
|
type: openIdConnect
|
|
description: Authentification Bearer JWT via Keycloak
|
|
openIdConnectUrl: https://security.lions.dev/realms/unionflow/.well-known/openid-configuration
|