{
  "openapi": "3.1.0",
  "info": {
    "title": "Pintor Eixample Barcelona — solicitud de contacto",
    "version": "1.0.0",
    "description": "Permite a un agente de IA enviar una solicitud de presupuesto, cita o consulta a Pintor Eixample Barcelona (Barcelona). La solicitud la atiende una persona; no se confirma precio ni cita de forma automática."
  },
  "servers": [
    {
      "url": "https://pintoreixamplebarcelona.com"
    }
  ],
  "paths": {
    "/agent/lead": {
      "post": {
        "operationId": "requestContact",
        "summary": "Enviar solicitud de presupuesto, cita o consulta",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "message"
                ],
                "anyOf": [
                  {
                    "required": [
                      "email"
                    ]
                  },
                  {
                    "required": [
                      "phone"
                    ]
                  }
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nombre de la persona que solicita"
                  },
                  "email": {
                    "type": "string",
                    "description": "Email de contacto",
                    "format": "email"
                  },
                  "phone": {
                    "type": "string",
                    "description": "Teléfono de contacto"
                  },
                  "message": {
                    "type": "string",
                    "description": "Qué necesita, con los detalles útiles (servicio, urgencia, zona)"
                  },
                  "service": {
                    "type": "string",
                    "description": "Servicio concreto, si se conoce"
                  },
                  "preferred_date": {
                    "type": "string",
                    "description": "Fecha preferida (texto libre o ISO 8601)"
                  },
                  "preferred_time": {
                    "type": "string",
                    "description": "Franja horaria preferida"
                  },
                  "agent": {
                    "type": "object",
                    "description": "Quién envía la solicitud",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "Nombre del agente o asistente"
                      },
                      "operator": {
                        "type": "string",
                        "description": "Empresa o servicio que lo opera"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Solicitud recibida",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "id": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "received"
                      ]
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "JSON no válido"
          },
          "422": {
            "description": "Falta email o teléfono, o el mensaje"
          },
          "429": {
            "description": "Demasiadas solicitudes; reintentar más tarde"
          }
        }
      }
    }
  }
}