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 (fr, moo, diu, bam, fuf, hau, dje, taq)
      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 (fr, moo, diu, bam, fuf, hau, dje, taq)
                userCountry:
                  type: string
                  description: Pays du producteur (Burkina Faso, Mali, Niger)
      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
