Use Cases — Cerops
Extraits des fichiers de tests (packages/api/test/) qui constituent la spécification exécutable du système.
Acteurs
| Acteur | Description |
|---|---|
| Agriculteur | Publie des missions, gère ses parcelles et plans d’action |
| Pilote | Accepte et exécute des missions de drone |
| Admin | Gère les datasets RPG, la tarification, les options d’analyse |
| Système | Importe les parcelles RPG, calcule les prix, gère le score pilote |
UC-01 : Gestion des parcelles
Acteur principal : Agriculteur
| # | Cas d’utilisation | Précondition | Résultat attendu |
|---|---|---|---|
| 1.1 | Consulter ses parcelles | Authentifié | Liste des parcelles ordonnée par date de modification |
| 1.2 | Créer une parcelle manuellement | Authentifié, géométrie valide (< 500 ha) | Parcelle créée avec surface calculée depuis la géométrie |
| 1.3 | Créer une parcelle avec type de culture | Authentifié | Parcelle créée avec cultureType |
| 1.4 | Modifier une parcelle | Authentifié, propriétaire | Nom et/ou type de culture mis à jour |
| 1.5 | Supprimer une parcelle | Authentifié, propriétaire | Parcelle supprimée |
| 1.6 | Accéder à une parcelle RPG active | Authentifié | Accès autorisé même sans ownership |
| 1.7 | Revendiquer des parcelles RPG | Authentifié, parcelles non encore revendiquées | Parcelles rattachées à l’agriculteur |
| 1.8 | Consulter la carte (viewport) | Authentifié, zoom suffisant | GeoJSON des parcelles dans le viewport |
Cas d’erreur notables :
- Parcelle > 500 ha → rejetée
- Parcelle qui chevauche une parcelle existante de l’utilisateur → rejetée
- Accès à la parcelle d’un autre utilisateur →
FORBIDDEN - Parcelle RPG inactive →
NOT_FOUND
UC-02 : Marketplace des missions
Acteurs : Agriculteur (publication), Pilote (acceptation/livraison)
| # | Cas d’utilisation | Acteur | Résultat attendu |
|---|---|---|---|
| 2.1 | Estimer le prix d’une mission | Agriculteur | Prix total + détail des lignes (base + ha + options) |
| 2.2 | Créer une mission | Agriculteur | Mission PUBLISHED, prix calculé automatiquement, config de tarification associée |
| 2.3 | Lister les missions disponibles | Pilote | Missions PUBLISHED, filtrées par compatibilité capteurs, prix min/max, distance |
| 2.4 | Accepter une mission | Pilote compatible | Mission passe à SCHEDULED, pilote assigné |
| 2.5 | Annuler une mission (pilote) | Pilote assigné | Mission repasse à PUBLISHED, score pilote -2 |
| 2.6 | Annuler une mission (agriculteur) | Agriculteur propriétaire | Mission CANCELLED, score pilote non affecté |
| 2.7 | Livrer un livrable | Pilote assigné (mission SCHEDULED ou IN_PROGRESS) | Mission DELIVERED, score pilote +1, fichiers stockés |
| 2.8 | Consulter ses missions (agriculteur) | Agriculteur | Liste de ses missions avec statut, pilote assigné, livrable |
| 2.9 | Consulter ses missions (pilote) | Pilote | Missions groupées par date d’acceptation |
Cas d’erreur notables :
- Prix fourni par le client → rejeté (prix calculé côté serveur uniquement)
- Parcelles appartenant à un autre agriculteur → rejeté
- Aucun config de tarification publiée → rejeté
- Deuxième pilote tente d’accepter →
CONFLICT - Pilote déjà à 5 missions
SCHEDULED→FORBIDDEN - Pilote sans capteurs requis →
FORBIDDEN - Score pilote plancher à -20 (ne peut pas descendre plus bas)
UC-03 : Plans d’action
Acteur principal : Agriculteur
| # | Cas d’utilisation | Résultat attendu |
|---|---|---|
| 3.1 | Créer un plan d’action | Plan créé, titre unique par utilisateur |
| 3.2 | Créer une tâche dans un plan | Tâche créée avec statut todo par défaut |
| 3.3 | Associer une tâche à une parcelle | Tâche liée à une parcelle de l’utilisateur |
| 3.4 | Modifier le statut d’une tâche | Statut mis à jour (todo → in_progress → completed) |
| 3.5 | Réordonner les tâches | rank mis à jour |
| 3.6 | Définir une échéance | deadline enregistrée |
| 3.7 | Supprimer un plan d’action | Plan et toutes ses tâches supprimés (cascade) |
Cas d’erreur notables :
- Accès au plan d’action d’un autre utilisateur →
FORBIDDEN - Association d’une tâche à la parcelle d’un autre utilisateur →
FORBIDDEN
UC-04 : Profil pilote
Acteur principal : Pilote
| # | Cas d’utilisation | Résultat attendu |
|---|---|---|
| 4.1 | Consulter son profil | Profil auto-créé si inexistant, avec liste de drones et capteurs |
| 4.2 | Mettre à jour son profil | Champs scalaires mis à jour |
| 4.3 | Mettre à jour sa flotte de drones | Liste de drones remplacée intégralement |
| 4.4 | Mettre à jour ses capteurs | Liste de capteurs remplacée intégralement |
UC-05 : Import RPG (Admin)
Acteur principal : Admin
| # | Cas d’utilisation | Résultat attendu |
|---|---|---|
| 5.1 | Créer un dataset RPG | Dataset DRAFT créé |
| 5.2 | Lancer un import par région | Job créé, pipeline asynchrone déclenché (téléchargement → extraction → parsing → import) |
| 5.3 | Activer un dataset | Parcelles RPG rendues visibles aux agriculteurs |
| 5.4 | Archiver un dataset | Parcelles masquées |
UC-06 : Assistant IA agronomique
Acteur principal : Agriculteur
| # | Cas d’utilisation | Résultat attendu |
|---|---|---|
| 6.1 | Poser une question agronomique | Réponse de l’assistant |
| 6.2 | Soumettre une photo de culture | Analyse visuelle : diagnostic, causes probables, actions recommandées |