Pular para o conteúdo principal

API Graduation

L'API Graduation permet de gérer le processus de sortie des bénéficiaires du programme (graduation).

Vue d'ensemble

EndpointMéthodeDescription
/api/graduationsGETListe des graduations
/api/graduations/{id}GETDétail d'une graduation
/api/graduationsPOSTProposer une graduation
/api/graduations/{id}/evaluatePUTÉvaluer une proposition
/api/graduations/{id}/decidePUTApprouver ou rejeter
/api/graduations/{id}/cancelPUTAnnuler une graduation
/api/graduations/candidates/{programmeId}GETCandidats à la graduation
/api/graduations/stats/{programmeId}GETStatistiques
/api/programmes/{programmeId}/graduation-criteriaGETListe des critères
/api/programmes/{programmeId}/graduation-criteriaPOSTCréer un critère
/api/graduation-criteria/{id}PUTModifier un critère
/api/graduation-criteria/{id}DELETESupprimer un critère

Permissions requises

  • ROLE_USER : Consultation
  • ROLE_TM_SPECIALIST : Proposition et évaluation
  • ROLE_ADMIN : Décision et annulation

Liste des graduations

Endpoint

GET /api/graduations

Paramètres de requête

ParamètreTypeRequisDescription
pageintNonNuméro de page (défaut: 1)
limitintNonÉléments par page (défaut: 20, max: 100)
programmeUUIDNonFiltrer par programme
statutstringNonFiltrer par statut

Statuts de graduation

StatutDescription
proposeeGraduation proposée, en attente d'évaluation
evalueeÉvaluée, en attente de décision
approuveeGraduation approuvée
rejeteeGraduation rejetée
annuleeGraduation annulée

Réponse

{
"success": true,
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"beneficiaire": {
"id": "...",
"nomComplet": "Mamadou Diallo",
"codeMenage": "MEN-OIO-001"
},
"programme": {
"id": "...",
"nom": "PCH Guinée-Bissau"
},
"statut": "proposee",
"typeGraduation": "positive",
"motif": "Amélioration conditions de vie",
"scorePmtFinal": 0.65,
"dateProposition": "2025-03-01",
"dateEvaluation": null,
"dateDecision": null,
"dateEffective": null,
"suiviPostGraduationActif": false,
"finPostSuivi": null
}
],
"meta": {
"total": 45,
"page": 1,
"limit": 20,
"pages": 3
}
}

Détail d'une graduation

Endpoint

GET /api/graduations/{id}

Réponse

{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"beneficiaire": {
"id": "...",
"nomComplet": "Mamadou Diallo",
"codeMenage": "MEN-OIO-001"
},
"programme": {
"id": "...",
"nom": "PCH Guinée-Bissau"
},
"statut": "approuvee",
"typeGraduation": "positive",
"motif": "Amélioration conditions de vie",
"commentaire": "Score PMT amélioré de 0.35 à 0.65 sur 2 ans",
"scorePmtFinal": 0.65,
"dateProposition": "2025-03-01",
"dateEvaluation": "2025-03-10",
"dateDecision": "2025-03-15",
"dateEffective": "2025-04-01",
"suiviPostGraduationActif": true,
"dureePostSuiviMois": 6,
"finPostSuivi": "2025-10-01",
"donneesEvaluation": {
"criteresValides": 5,
"criteresTotal": 6,
"scoreGlobal": 85
},
"proposePar": {
"id": "...",
"nom": "Agent Terrain"
},
"evaluePar": {
"id": "...",
"nom": "Superviseur"
},
"decidePar": {
"id": "...",
"nom": "Administrateur"
},
"createdAt": "2025-03-01 10:00:00"
}
}

Proposer une graduation

Endpoint

POST /api/graduations

Permission requise

ROLE_TM_SPECIALIST

Corps de la requête

{
"beneficiaire": "550e8400-e29b-41d4-a716-446655440001",
"motif": "Amélioration conditions de vie - Score PMT > seuil",
"commentaire": "Le ménage a montré une amélioration significative sur les 2 derniers cycles"
}

Réponse

{
"success": true,
"message": "Graduation proposée avec succès",
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"statut": "proposee",
"dateProposition": "2025-03-15"
}
}

Évaluer une proposition

Endpoint

PUT /api/graduations/{id}/evaluate

Permission requise

ROLE_TM_SPECIALIST

Corps de la requête

{
"evaluation": {
"criteresValides": [
{"critere": "score_pmt", "valide": true, "valeur": 0.65},
{"critere": "duree_programme", "valide": true, "valeur": 24},
{"critere": "conditionnalites", "valide": true, "valeur": 95}
],
"scoreGlobal": 85,
"recommandation": "approuver",
"commentaire": "Tous les critères sont remplis"
}
}

Réponse

{
"success": true,
"message": "Graduation évaluée",
"data": {
"id": "...",
"statut": "evaluee",
"dateEvaluation": "2025-03-15"
}
}

Approuver ou rejeter

Endpoint

PUT /api/graduations/{id}/decide

Permission requise

ROLE_ADMIN

Corps de la requête

{
"approuver": true,
"commentaire": "Graduation validée après vérification des critères"
}

Réponse

{
"success": true,
"message": "Graduation approuvée",
"data": {
"id": "...",
"statut": "approuvee",
"dateDecision": "2025-03-15",
"dateEffective": "2025-04-01"
}
}

Annuler une graduation

Endpoint

PUT /api/graduations/{id}/cancel

Permission requise

ROLE_ADMIN

Corps de la requête

{
"motif": "Erreur d'évaluation - bénéficiaire toujours éligible"
}

Réponse

{
"success": true,
"message": "Graduation annulée",
"data": {
"id": "...",
"statut": "annulee"
}
}

Candidats à la graduation

Endpoint

GET /api/graduations/candidates/{programmeId}

Permission requise

ROLE_TM_SPECIALIST

Réponse

{
"success": true,
"data": [
{
"beneficiaire": {
"id": "...",
"nomComplet": "Mamadou Diallo",
"codeMenage": "MEN-OIO-001"
},
"eligibilite": {
"score": 92,
"criteresRemplis": 5,
"criteresTotal": 6,
"recommandation": "graduation_recommandee"
}
}
],
"meta": {
"total": 125
}
}

Statistiques de graduation

Endpoint

GET /api/graduations/stats/{programmeId}

Réponse

{
"success": true,
"data": {
"totalBeneficiaires": 3500,
"totalGraduations": 450,
"graduationsParStatut": {
"proposee": 25,
"evaluee": 10,
"approuvee": 380,
"rejetee": 30,
"annulee": 5
},
"tauxGraduation": 10.86,
"graduationsParMois": [
{"mois": "2025-01", "count": 45},
{"mois": "2025-02", "count": 52},
{"mois": "2025-03", "count": 38}
],
"tempsTraitementMoyen": {
"propositionADecision": 14,
"unite": "jours"
}
}
}

Liste des critères de graduation

Endpoint

GET /api/programmes/{programmeId}/graduation-criteria

Réponse

{
"success": true,
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440010",
"nom": "Score PMT minimum",
"description": "Score PMT supérieur au seuil de pauvreté",
"type": "score_pmt",
"operateur": ">=",
"valeurSeuil": 0.5,
"poids": 100,
"obligatoire": true,
"actif": true,
"ordre": 1
},
{
"id": "550e8400-e29b-41d4-a716-446655440011",
"nom": "Durée dans le programme",
"description": "Présence minimum de 24 mois",
"type": "duree_programme",
"operateur": ">=",
"valeurSeuil": 24,
"poids": 80,
"obligatoire": true,
"actif": true,
"ordre": 2
}
]
}

Créer un critère de graduation

Endpoint

POST /api/programmes/{programmeId}/graduation-criteria

Permission requise

ROLE_ADMIN

Corps de la requête

{
"nom": "Taux de respect des conditionnalités",
"description": "Pourcentage de conditionnalités respectées sur les 6 derniers mois",
"type": "conditionnalites",
"operateur": ">=",
"valeurSeuil": 80,
"poids": 60,
"obligatoire": false,
"ordre": 3
}

Types de critères

TypeDescription
score_pmtScore PMT du ménage
duree_programmeDurée de participation (mois)
conditionnalitesTaux de respect des conditionnalités
paiements_recusNombre de paiements reçus
revenusNiveau de revenus estimé
actifsValeur des actifs du ménage

Opérateurs

OpérateurDescription
>=Supérieur ou égal
<=Inférieur ou égal
=Égal
!=Différent
>Strictement supérieur
<Strictement inférieur

Réponse

{
"success": true,
"message": "Critère créé",
"data": {
"id": "550e8400-e29b-41d4-a716-446655440012",
"nom": "Taux de respect des conditionnalités"
}
}