{
  "openapi" : "3.1.0",
  "info" : {
    "title" : "Le Colibri — Public Booking & Assistant API",
    "description" : "API publique permettant aux assistants IA (ChatGPT, Claude, Grok, Perplexity, MCP) de consulter les créneaux disponibles et d'effectuer une réservation chez Le Colibri.",
    "version" : "1.0.0"
  },
  "servers" : [ {
    "url" : "https://le-colibri-1792676207305.chachou.staging.sevenshoppers.app"
  } ],
  "paths" : {
    "/book-ai" : {
      "post" : {
        "operationId" : "createBooking",
        "summary" : "Créer une réservation en envoyant les coordonnées client de manière sécurisée dans le corps POST (JSON ou application/x-www-form-urlencoded)",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "phone" : {
                    "description" : "Téléphone mobile du client",
                    "type" : "string"
                  },
                  "email" : {
                    "type" : "string",
                    "description" : "Adresse e-mail du client",
                    "format" : "email"
                  },
                  "notes" : {
                    "description" : "Commentaire ou demande particulière",
                    "type" : "string"
                  },
                  "partySize" : {
                    "description" : "Nombre de convives (pour un restaurant)",
                    "type" : "integer"
                  },
                  "name" : {
                    "description" : "Nom complet du client",
                    "type" : "string"
                  },
                  "careId" : {
                    "description" : "Identifiant ou nom de la prestation (pour un RDV)",
                    "type" : "string"
                  },
                  "time" : {
                    "description" : "Heure souhaitée (HH:MM)",
                    "type" : "string"
                  },
                  "date" : {
                    "type" : "string",
                    "description" : "Date souhaitée (YYYY-MM-DD)",
                    "format" : "date"
                  }
                },
                "required" : [ "date", "time", "name", "phone", "email" ]
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Confirmation de la réservation créée"
          }
        }
      },
      "get" : {
        "operationId" : "getAvailabilityAndBookingForm",
        "summary" : "Consulter les créneaux disponibles et obtenir le formulaire HTML de finalisation pré-rempli (sans aucune donnée personnelle dans l'URL)",
        "parameters" : [ {
          "required" : false,
          "in" : "query",
          "name" : "date",
          "description" : "Date souhaitée (YYYY-MM-DD)",
          "schema" : {
            "type" : "string",
            "format" : "date"
          }
        }, {
          "required" : false,
          "in" : "query",
          "name" : "time",
          "description" : "Heure souhaitée (HH:MM)",
          "schema" : {
            "type" : "string"
          }
        }, {
          "required" : false,
          "in" : "query",
          "name" : "partySize",
          "description" : "Nombre de convives (pour un restaurant)",
          "schema" : {
            "type" : "integer"
          }
        }, {
          "required" : false,
          "in" : "query",
          "name" : "careId",
          "description" : "Identifiant ou nom de la prestation (pour un RDV)",
          "schema" : {
            "type" : "string"
          }
        }, {
          "required" : false,
          "in" : "query",
          "name" : "format",
          "description" : "Format de réponse (html ou json)",
          "schema" : {
            "enum" : [ "html", "json" ],
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Disponibilités en temps réel et formulaire HTML de réservation sécurisé (POST /book-ai)"
          }
        }
      }
    },
    "/mcp" : {
      "post" : {
        "operationId" : "mcpJsonRpc",
        "summary" : "Endpoint Model Context Protocol (MCP JSON-RPC 2.0) exposant get_shop_info, get_booking_availability et create_booking",
        "responses" : {
          "200" : {
            "description" : "Réponse JSON-RPC 2.0 MCP"
          }
        }
      }
    }
  }
}