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
| Endpoint | Methode | Description |
|---|---|---|
/api/projets | GET | Liste des projets |
/api/projets | POST | Creer un projet |
/api/projets/{id} | GET | Detail d'un projet |
/api/projets/{id} | PUT | Modifier un projet |
/api/projets/{id} | DELETE | Supprimer un projet |
Modele de donnees
| Champ | Type | Description |
|---|---|---|
id | UUID | Identifiant unique |
code | string | Code unique du projet (ex: PCH, PRSSB) |
nom | string | Nom complet du projet |
description | text | Description detaillee |
dateDebut | date | Date de debut du projet |
dateFin | date | Date de fin prevue |
actif | boolean | Projet actif |
lectureSeule | boolean | Projet en lecture seule (archive) |
bailleur | string | Bailleur de fonds |
peutCollecter | boolean | Autoriser la collecte de menages |
peutScorer | boolean | Autoriser le scoring PMT |
peutEnroler | boolean | Autoriser l'enrolement de beneficiaires |
pmtMethode | object | Methode PMT associee |
organisation | object | Organisation proprietaire |
createdAt | datetime | Date 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 uniquenom: 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)
| Attribut | Valeur |
|---|---|
| Code | PCH |
| Actif | Oui |
| Lecture seule | Non |
| Collecte | Autorisee |
| Scoring | Autorise |
| Enrolement | Autorise |
PRSSB (Programme PRSSB)
| Attribut | Valeur |
|---|---|
| Code | PRSSB |
| Actif | Oui |
| Lecture seule | Oui (archive) |
| Collecte | Non |
| Scoring | Non |
| Enrolement | Non |
Capacites du projet
Les capacites controlent ce qui peut etre fait dans le projet :
| Capacite | Description |
|---|---|
peutCollecter | Autoriser la collecte de nouveaux menages |
peutScorer | Autoriser le calcul du score PMT |
peutEnroler | Autoriser 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}