{
  "openapi": "3.0.3",
  "info": {
    "title": "Sahel – Docteur des Plantes et des Graines API",
    "description": "API publique agronomique, botanique et phytosanitaire pour l'Alliance des États du Sahel (Burkina Faso, Mali, Niger). Diagnostic des cultures vivrières et maraîchères, catalogue botanique des 300 espèces du Sahel, biopesticides au neem et assistance vocale multilingue.",
    "version": "1.0.0",
    "contact": {
      "name": "Rodriguez Pingwendé Oungrana",
      "email": "pingwenderodriguezoungrana@gmail.com",
      "url": "https://sahel-docteur-des-plantes-et-graines.ai.studio/contact"
    },
    "license": {
      "name": "Open Access Agronomique AES",
      "url": "https://sahel-docteur-des-plantes-et-graines.ai.studio/manifesto"
    }
  },
  "servers": [
    {
      "url": "https://sahel-docteur-des-plantes-et-graines.ai.studio/api",
      "description": "Serveur de production Sahel Docteur"
    }
  ],
  "paths": {
    "/health": {
      "get": {
        "summary": "État de santé du service",
        "description": "Vérifie la disponibilité des services agronomiques et de l'infrastructure IA.",
        "operationId": "getHealthStatus",
        "responses": {
          "200": {
            "description": "Service opérationnel",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": { "type": "string", "example": "ok" },
                    "hasApiKey": { "type": "boolean", "example": true },
                    "service": { "type": "string", "example": "Sahel Docteur des Plantes et Graines API" },
                    "region": { "type": "string", "example": "AES (Burkina Faso, Mali, Niger)" }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/gemini/diagnose": {
      "post": {
        "summary": "Diagnostic phytosanitaire par vision artificielle",
        "description": "Analyse une photographie de feuille, tige, fleur, graine ou sol pour identifier la maladie végétale, le ravageur ou la carence nutritive et préconiser un bio-traitement endogène.",
        "operationId": "diagnosePlant",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["imageBase64"],
                "properties": {
                  "imageBase64": { "type": "string", "description": "Image encodée en base64 (format JPEG, PNG ou WebP)" },
                  "cropType": { "type": "string", "description": "Type de culture supposée (ex: Mil, Sorgho, Niébé, Tomate, Oignon)" },
                  "userLanguage": { "type": "string", "description": "Langue pour la réponse agronomique" }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Résultat détaillé du diagnostic phytosanitaire",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "plantName": { "type": "string" },
                    "diseaseName": { "type": "string" },
                    "confidence": { "type": "number" },
                    "symptoms": { "type": "string" },
                    "organicTreatment": { "type": "string" }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/gemini/chat": {
      "post": {
        "summary": "Conseiller agronomique conversationnel IA",
        "description": "Répond aux questions agricoles des producteurs sahéliens par écrit ou par retour de synthèse vocale.",
        "operationId": "askChatAssistant",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["message"],
                "properties": {
                  "message": { "type": "string", "description": "Question ou description du problème agricole" },
                  "language": { "type": "string", "description": "Langue de la conversation" },
                  "userCountry": { "type": "string", "description": "Pays du producteur" }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Réponse du conseiller agronomique",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "reply": { "type": "string" }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/voice/capabilities": {
      "get": {
        "summary": "Capacités vocales sahéliennes",
        "description": "Liste les langues disponibles pour la synthèse vocale souveraine et les voix locales de référence.",
        "operationId": "getVoiceCapabilities",
        "responses": {
          "200": {
            "description": "Capacités vocales",
            "content": {
              "application/json": {
                "schema": { "type": "object" }
              }
            }
          }
        }
      }
    },
    "/botany/institutes": {
      "get": {
        "summary": "Instituts de recherche agronomique de l'AES",
        "description": "Coordonnées et fiches des partenaires scientifiques (INERA, IER, INRAN).",
        "operationId": "getInstitutes",
        "responses": {
          "200": {
            "description": "Liste des instituts partenaires",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": { "type": "object" }
                }
              }
            }
          }
        }
      }
    }
  }
}
