{
  "openapi": "3.1.0",
  "info": {
    "title": "Vanguard Web Studio: pedidos de análise, orçamento e suporte",
    "version": "1.0.0",
    "summary": "Para agentes de IA pedirem, em nome de uma pessoa, a análise gratuita de site, um orçamento de vídeo ou de reconstituição 3D, ou suporte do Kit Advogado.",
    "description": "Use com o consentimento da pessoa. Os dados vão só para a equipe da Vanguard responder ao pedido (política de privacidade: https://vanguardwebstudio.com.br/privacidade). Resposta em até 1 dia útil, por e-mail ou WhatsApp. Para comprar o Kit Advogado, o caminho é a página https://vanguardwebstudio.com.br/kit-advogado/#comprar (pagamento pelo Mercado Pago, não por esta API). Preços: https://vanguardwebstudio.com.br/pricing.md Envie só o que a própria pessoa autorizou, com o e-mail dela; pedidos com dados de terceiros são descartados.",
    "contact": {
      "name": "Vanguard Web Studio",
      "email": "contato@vanguardwebstudio.com.br",
      "url": "https://vanguardwebstudio.com.br/contato/"
    }
  },
  "servers": [
    {
      "url": "https://vanguardwebstudio.com.br"
    }
  ],
  "externalDocs": {
    "description": "Resumo do estúdio para IAs",
    "url": "https://vanguardwebstudio.com.br/llms.txt"
  },
  "paths": {
    "/api/contato": {
      "get": {
        "operationId": "descreverPedido",
        "summary": "Descreve os campos do pedido (o mesmo que este documento, em formato curto).",
        "responses": {
          "200": {
            "description": "Descrição do serviço",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "enviarPedido",
        "summary": "Envia um pedido de análise gratuita de site, orçamento ou suporte.",
        "description": "Obrigatórios: nome e email. Para análise de site, inclua endereco (URL do site ou @ do Instagram). Informe em origem quem está enviando, por exemplo 'ChatGPT, em nome do cliente'.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Pedido"
              },
              "examples": {
                "analise_de_site": {
                  "summary": "Análise gratuita de site",
                  "value": {
                    "nome": "Maria Souza",
                    "email": "maria@clinicaexemplo.com.br",
                    "assunto": "site",
                    "endereco": "https://clinicaexemplo.com.br",
                    "whatsapp": "+55 27 99999-0000",
                    "empresa": "Clínica Exemplo",
                    "mensagem": "O site está lento e não aparece no Google.",
                    "origem": "ChatGPT, em nome da cliente"
                  }
                },
                "orcamento_de_video": {
                  "summary": "Orçamento de vídeo",
                  "value": {
                    "nome": "João Lima",
                    "email": "joao@escritorioexemplo.adv.br",
                    "assunto": "video",
                    "endereco": "@escritorioexemplo",
                    "mensagem": "Quero vídeos educativos para o Instagram sem aparecer na câmera.",
                    "origem": "Claude, em nome do cliente"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Pedido recebido.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Recebido"
                }
              }
            }
          },
          "400": {
            "description": "Faltam dados ou o assunto não existe. O corpo diz o que corrigir.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                }
              }
            }
          },
          "501": {
            "description": "Envio por e-mail indisponível no momento. Use o link de WhatsApp do campo alternativa.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                }
              }
            }
          },
          "502": {
            "description": "Falha momentânea no envio. Tente de novo ou use o link de WhatsApp do campo alternativa.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Pedido": {
        "type": "object",
        "required": [
          "nome",
          "email"
        ],
        "properties": {
          "nome": {
            "type": "string",
            "maxLength": 120,
            "description": "Nome da pessoa ou do responsável."
          },
          "email": {
            "type": "string",
            "format": "email",
            "maxLength": 160,
            "description": "E-mail para a resposta."
          },
          "assunto": {
            "type": "string",
            "enum": [
              "site",
              "video",
              "kit",
              "reconstituicao",
              "outro"
            ],
            "default": "site",
            "description": "site: análise gratuita e orçamento de site. video: vídeo para o Instagram com IA. kit: dúvida ou suporte do Kit Advogado para Claude. reconstituicao: reconstituição 3D ou análise técnica dos autos. outro: qualquer outro assunto."
          },
          "endereco": {
            "type": "string",
            "maxLength": 300,
            "description": "Endereço do site atual ou @ do Instagram (para análise de site). Também aceito com o nome site quando assunto é enviado."
          },
          "whatsapp": {
            "type": "string",
            "maxLength": 40,
            "description": "WhatsApp com DDD, se a pessoa preferir a resposta por lá."
          },
          "empresa": {
            "type": "string",
            "maxLength": 160,
            "description": "Negócio ou escritório."
          },
          "mensagem": {
            "type": "string",
            "maxLength": 4000,
            "description": "O que a pessoa precisa, em texto livre. Não envie documentos sigilosos."
          },
          "origem": {
            "type": "string",
            "maxLength": 80,
            "description": "Quem está enviando, por exemplo 'ChatGPT, em nome do cliente'."
          }
        }
      },
      "Recebido": {
        "type": "object",
        "properties": {
          "ok": {
            "type": "boolean",
            "const": true
          },
          "protocolo": {
            "type": "string",
            "examples": [
              "VG-20261015-3FA91C"
            ]
          },
          "assunto": {
            "type": "string"
          },
          "recebido_em": {
            "type": "string",
            "format": "date-time"
          },
          "prazo_resposta": {
            "type": "string",
            "examples": [
              "até 1 dia útil"
            ]
          },
          "resposta_por": {
            "type": "string"
          },
          "proximo_passo": {
            "type": "string"
          },
          "contato": {
            "type": "object",
            "properties": {
              "whatsapp": {
                "type": "string"
              },
              "email": {
                "type": "string"
              }
            }
          }
        }
      },
      "Erro": {
        "type": "object",
        "properties": {
          "ok": {
            "type": "boolean",
            "const": false
          },
          "erro": {
            "type": "string"
          },
          "faltando": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "aceitos": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "alternativa": {
            "type": "string",
            "format": "uri",
            "description": "Link de WhatsApp para concluir o pedido por outro canal."
          }
        }
      }
    }
  }
}
