Repository navigation
Open
Labels
Description
📋 Description
Alimente la fiche détaillée d'une zone (route /zones/:id du frontend) et la timeline temporelle de la carte, via un seul endpoint : score courant + 5 sous-scores + historique filtrable par from/to. Fusionne ce qui était initialement deux besoins séparés (fiche zone + historique satellite) : une seule source de données (stress_score_by_zone), pas de doublon, pas d'exposition de métriques satellites brutes.
GET /v1/zones/881f1d4a3fffffff?from=2026-01-01&to=2026-09-01
{
"zone_id": "881f1d4a3fffffff",
"score_global": 72.4,
"sub_scores": { "human_pressure": 65.0, "vegetation": 80.1, "biodiversity": 58.3, "dynamic": -4.2, "protection": 0.0 },
"history": [
{ "bucket_id": "2026-07", "score_global": 70.1, "sub_scores": { "vegetation": 79.0 } },
{ "bucket_id": "2026-08", "score_global": 72.4, "sub_scores": { "vegetation": 80.1 } }
]
}Pas de champ "recommandations d'intervention" — fonctionnalité IA non implémentée, hors scope actuel.
✅ Acceptance Criteria
- Retourne le score courant + les 5 sous-scores (
human_pressure,vegetation,biodiversity,dynamic,protection) - Retourne un historique de score (
bucket_id+score_global+ sous-scores), filtrable parfrom/to -
zone_idinconnu → 404 explicite -
from/tohors plage disponible → historique vide, pas d'erreur - Lecture via
session_scope() - Tests d'intégration : zone avec historique complet, zone avec trous de données, zone inconnue, plage
from/tovide
🔗 Prerequisite Issues
- Scaffold apps/api (FastAPI) #79 (Scaffold apps/api)
- 6. Industrialisation du calcul des scores #46 (Industrialisation du calcul des scores) —
stress_score_by_zonedoit être peuplée par le pipeline complet (extraction → features → sous-indices → indice global) avant que cet endpoint ait des données réelles à servir
Source : Notion « GET /v1/zones/{zone_id} » (API).
Activity