{
  "openapi": "3.1.0",
  "info": {
    "title": "Teekila — APIs publiques",
    "version": "1.0.0",
    "description": "Endpoints publics du site teekila.com : proxy de formulaires (humain, même origine), santé, et MCP lecture seule.",
    "contact": {
      "name": "Teekila",
      "email": "contact@teekila.com",
      "url": "https://www.teekila.com/contact.html"
    }
  },
  "servers": [
    {
      "url": "https://www.teekila.com"
    }
  ],
  "paths": {
    "/api/formulaire.php": {
      "post": {
        "operationId": "submitForm",
        "summary": "Envoyer un formulaire du site",
        "description": "Réservé aux visiteurs humains depuis les pages Teekila (contrôle Origin/Referer). Les agents ne doivent pas poster de leads. Utiliser contact@teekila.com.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Formulaire"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Soumission acceptée"
          },
          "403": {
            "description": "Origine non autorisée"
          },
          "422": {
            "description": "Validation échouée"
          }
        }
      }
    },
    "/api/health.php": {
      "get": {
        "operationId": "health",
        "summary": "Santé du site",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": { "type": "string", "example": "ok" }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/mcp.php": {
      "post": {
        "operationId": "mcpJsonRpc",
        "summary": "MCP Streamable HTTP (JSON-RPC)",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Réponse JSON-RPC"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Formulaire": {
        "type": "object",
        "required": ["source", "name", "email"],
        "properties": {
          "source": {
            "type": "string",
            "enum": [
              "contact",
              "audit-ia-gratuit",
              "devis-formation",
              "collectivites",
              "boite-a-outils",
              "guide-10-secrets-n8n"
            ]
          },
          "name": { "type": "string", "maxLength": 200 },
          "email": { "type": "string", "format": "email" },
          "subject": { "type": "string" },
          "message": { "type": "string" }
        }
      }
    }
  }
}
