{
  "openapi": "3.1.0",
  "info": {
    "title": "Boutique Atelier Steaven Richard de Ferronnerie d'Art",
    "description": "API de découverte de l'atelier Steaven Richard. Ferronnerie d'art sur mesure : mobilier, sculptures, objets décoratifs, commandes spéciales.",
    "version": "1.0.0",
    "contact": {
      "name": "Atelier Steaven Richard",
      "url": "https://boutique.steavenrichard.fr"
    }
  },
  "servers": [
    {
      "url": "https://boutique.steavenrichard.fr",
      "description": "Site officiel de l'atelier"
    }
  ],
  "paths": {
    "/": {
      "get": {
        "operationId": "getHome",
        "summary": "Page d'accueil de l'atelier",
        "description": "Présentation de l'atelier Steaven Richard : ferronnerie d'art, mobilier et objets décoratifs sur mesure.",
        "responses": {
          "200": {
            "description": "Page d'accueil",
            "content": {
              "text/html": {"schema": {"type": "string"}}
            }
          },
          "500": {
            "description": "Erreur serveur",
            "content": {
              "application/json": {"schema": {"$ref": "#/components/schemas/Error"}}
            }
          }
        }
      }
    },
    "/contact": {
      "post": {
        "operationId": "requestDevis",
        "summary": "Demande de devis pour une création sur mesure",
        "description": "Prise de contact pour un projet de ferronnerie d'art sur mesure : mobilier, sculpture, objet décoratif ou commande spéciale.",
        "x-payment-info": {
          "intent": "charge",
          "method": "card",
          "amount": 0,
          "currency": "EUR",
          "description": "Devis gratuit — tarification sur mesure selon le projet"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {"$ref": "#/components/schemas/DevisRequest"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "Demande de devis enregistrée",
            "content": {
              "application/json": {"schema": {"$ref": "#/components/schemas/DevisResponse"}}
            }
          },
          "400": {
            "description": "Requête invalide (champ manquant ou format incorrect)",
            "content": {
              "application/json": {"schema": {"$ref": "#/components/schemas/Error"}}
            }
          },
          "500": {
            "description": "Erreur serveur",
            "content": {
              "application/json": {"schema": {"$ref": "#/components/schemas/Error"}}
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "DevisRequest": {
        "type": "object",
        "required": ["nom", "email", "type_projet", "message"],
        "properties": {
          "nom": {"type": "string", "description": "Nom du client", "minLength": 2, "maxLength": 120},
          "email": {"type": "string", "format": "email", "description": "Adresse e-mail de contact"},
          "telephone": {"type": "string", "description": "Numéro de téléphone (optionnel)", "pattern": "^[0-9 +().-]{6,20}$"},
          "type_projet": {
            "type": "string",
            "enum": ["mobilier", "sculpture", "objet-decoratif", "rampe-escalier", "portail", "autre"],
            "description": "Type de création souhaitée"
          },
          "message": {"type": "string", "description": "Description du projet", "minLength": 10, "maxLength": 4000}
        }
      },
      "DevisResponse": {
        "type": "object",
        "properties": {
          "status": {"type": "string", "enum": ["received"], "description": "Statut de la demande"},
          "reference": {"type": "string", "description": "Référence de suivi de la demande"}
        }
      },
      "Error": {
        "type": "object",
        "required": ["error"],
        "properties": {
          "error": {"type": "string", "description": "Message d'erreur lisible"},
          "code": {"type": "string", "description": "Code d'erreur applicatif"}
        }
      }
    }
  },
  "info_extended": {
    "agent_hints": {
      "primary_language": "fr",
      "country": "France",
      "specialty": "ferronnerie d'art sur mesure",
      "products": ["mobilier", "sculptures", "objets décoratifs", "rampes", "portails", "commandes spéciales"]
    }
  }
}
