Pular para o conteúdo principal

API Projets

L'API Projets permet de gerer les differents projets (programmes) dans le systeme PCH-SIG.

Vue d'ensemble

Un projet represente un programme de protection sociale distinct (ex: PCH, PRSSB). Il permet de :

  • Segmenter les donnees par programme
  • Configurer des parametres specifiques par projet
  • Controler les capacites (collecte, scoring, enrolement)

Endpoints

EndpointMethodeDescription
/api/projetsGETListe des projets
/api/projetsPOSTCreer un projet
/api/projets/{id}GETDetail d'un projet
/api/projets/{id}PUTModifier un projet
/api/projets/{id}DELETESupprimer un projet

Modele de donnees

ChampTypeDescription
idUUIDIdentifiant unique
codestringCode unique du projet (ex: PCH, PRSSB)
nomstringNom complet du projet
descriptiontextDescription detaillee
dateDebutdateDate de debut du projet
dateFindateDate de fin prevue
actifbooleanProjet actif
lectureSeulebooleanProjet en lecture seule (archive)
bailleurstringBailleur de fonds
peutCollecterbooleanAutoriser la collecte de menages
peutScorerbooleanAutoriser le scoring PMT
peutEnrolerbooleanAutoriser l'enrolement de beneficiaires
pmtMethodeobjectMethode PMT associee
organisationobjectOrganisation proprietaire
createdAtdatetimeDate de creation

Liste des projets

Endpoint

GET /api/projets

Reponse

{
"success": true,
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"code": "PCH",
"nom": "Programme de Cash Harmonise",
"description": "Programme de transferts monetaires en Guinee-Bissau",
"dateDebut": "2024-01-01",
"dateFin": "2027-12-31",
"actif": true,
"lectureSeule": false,
"bailleur": "Banque Mondiale",
"peutCollecter": true,
"peutScorer": true,
"peutEnroler": true
},
{
"id": "...",
"code": "PRSSB",
"nom": "Projet de Renforcement du Systeme de Sante de Base",
"actif": true,
"lectureSeule": true
}
]
}

Detail d'un projet

Endpoint

GET /api/projets/{id}

Reponse

{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"code": "PCH",
"nom": "Programme de Cash Harmonise",
"description": "Programme de transferts monetaires conditionnes...",
"dateDebut": "2024-01-01",
"dateFin": "2027-12-31",
"actif": true,
"lectureSeule": false,
"bailleur": "Banque Mondiale",
"peutCollecter": true,
"peutScorer": true,
"peutEnroler": true,
"pmtMethode": {
"id": "...",
"nom": "PMT Guinee-Bissau v2"
},
"organisation": {
"id": "...",
"nom": "Ministere des Affaires Sociales"
},
"createdAt": "2024-01-01T00:00:00+00:00"
}
}

Creer un projet

Endpoint

POST /api/projets

Corps de la requete

{
"code": "NOUVEAU",
"nom": "Nouveau Programme",
"description": "Description du nouveau programme",
"dateDebut": "2026-01-01",
"dateFin": "2028-12-31",
"actif": true,
"bailleur": "ONG Internationale",
"peutCollecter": true,
"peutScorer": true,
"peutEnroler": true
}

Champs requis

  • code : Code unique
  • nom : Nom du projet

Modifier un projet

Endpoint

PUT /api/projets/{id}

Corps de la requete

{
"actif": false,
"lectureSeule": true
}

Supprimer un projet

Endpoint

DELETE /api/projets/{id}

:::warning Attention La suppression n'est possible que si aucune donnee n'est associee au projet (menages, beneficiaires, paiements). :::


Projets predefinit

PCH (Programme de Cash Harmonise)

AttributValeur
CodePCH
ActifOui
Lecture seuleNon
CollecteAutorisee
ScoringAutorise
EnrolementAutorise

PRSSB (Programme PRSSB)

AttributValeur
CodePRSSB
ActifOui
Lecture seuleOui (archive)
CollecteNon
ScoringNon
EnrolementNon

Capacites du projet

Les capacites controlent ce qui peut etre fait dans le projet :

CapaciteDescription
peutCollecterAutoriser la collecte de nouveaux menages
peutScorerAutoriser le calcul du score PMT
peutEnrolerAutoriser l'inscription de beneficiaires

Un projet en lectureSeule ne permet aucune modification des donnees.


Methode PMT

Chaque projet peut avoir une methode PMT (Proxy Means Test) associee pour le scoring des menages.

{
"pmtMethode": {
"id": "...",
"nom": "PMT Guinee-Bissau v2",
"seuilPauvrete": 0.45
}
}

Filtrage par projet

De nombreux endpoints acceptent un parametre projet pour filtrer les donnees :

GET /api/menages?projet={projetId}
GET /api/beneficiaires?projet={projetId}
GET /api/paiements?projet={projetId}