{"openapi": "3.1.0", "info": {"title": "Est\u00fadios Planalto Paulista \u2014 API de Agendamento", "description": "Consulta hor\u00e1rios dispon\u00edveis e agenda visitas presenciais ao empreendimento Est\u00fadios Planalto Paulista, localizado em Alameda dos Guai\u00f3s, 477, Planalto Paulista, S\u00e3o Paulo/SP. Gerenciado pela Armis Im\u00f3veis.", "version": "1.0.0", "contact": {"email": "administrativo@armisimoveis.com.br"}}, "servers": [{"url": "https://estudios.armis.com.br", "description": "Produ\u00e7\u00e3o"}], "paths": {"/api/plantoes/": {"get": {"operationId": "listarPlantoes", "summary": "Lista os hor\u00e1rios dispon\u00edveis para agendar uma visita", "description": "Retorna os plant\u00f5es futuros com vagas abertas. Use o campo 'id' do plant\u00e3o escolhido como 'plantao_id' em POST /api/agendar/.", "responses": {"200": {"description": "Lista de hor\u00e1rios dispon\u00edveis", "content": {"application/json": {"schema": {"type": "object", "properties": {"plantoes": {"type": "array", "items": {"$ref": "#/components/schemas/Plantao"}}}}}}}}}}, "/api/agendar/": {"post": {"operationId": "criarAgendamento", "summary": "Agenda uma visita presencial ao empreendimento", "description": "Cria um agendamento de visita e dispara e-mails de confirma\u00e7\u00e3o para o cliente e para a equipe Armis. Passo 1: obtenha os IDs de plant\u00e3o em GET /api/plantoes/. Passo 2: envie os dados do visitante com o plantao_id escolhido.", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AgendamentoInput"}, "example": {"nome": "Ana Souza", "telefone": "11987654321", "email": "ana@email.com", "plantao_id": 7, "unidade_codigo": "101", "mensagem": ""}}}}, "responses": {"201": {"description": "Agendamento criado", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AgendamentoOk"}}}}, "400": {"description": "JSON inv\u00e1lido ou unidade n\u00e3o encontrada"}, "422": {"description": "Dados inv\u00e1lidos", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AgendamentoErro"}}}}}}}}, "components": {"schemas": {"Plantao": {"type": "object", "properties": {"id": {"type": "integer", "description": "ID do plant\u00e3o (usar em plantao_id)"}, "data": {"type": "string", "format": "date"}, "data_extenso": {"type": "string", "example": "S\u00e1bado, 5 de julho de 2026"}, "periodo": {"type": "string", "enum": ["manha", "tarde"]}, "periodo_label": {"type": "string", "example": "Manh\u00e3 (10h\u201313h)"}, "hora_inicio": {"type": "string", "example": "10:00"}, "hora_fim": {"type": "string", "example": "13:00"}, "corretor": {"type": "string"}}}, "AgendamentoInput": {"type": "object", "required": ["nome", "telefone", "email"], "properties": {"nome": {"type": "string", "description": "Nome completo do visitante"}, "telefone": {"type": "string", "description": "WhatsApp ou telefone com DDD"}, "email": {"type": "string", "format": "email", "description": "E-mail para confirma\u00e7\u00e3o"}, "plantao_id": {"type": "integer", "description": "ID obtido em GET /api/plantoes/ (obrigat\u00f3rio se sob_consulta=false)"}, "sob_consulta": {"type": "boolean", "default": false, "description": "True para combinar dia/hor\u00e1rio fora dos plant\u00f5es cadastrados"}, "unidade_codigo": {"type": "string", "description": "C\u00f3digo da unidade de interesse, ex.: '101'"}, "mensagem": {"type": "string", "description": "Observa\u00e7\u00f5es (obrigat\u00f3rio se sob_consulta=true)"}}}, "AgendamentoOk": {"type": "object", "properties": {"ok": {"type": "boolean", "example": true}, "agendamento_id": {"type": "integer"}, "mensagem": {"type": "string"}}}, "AgendamentoErro": {"type": "object", "properties": {"ok": {"type": "boolean", "example": false}, "erros": {"type": "object", "description": "Mapa de campo \u2192 lista de erros de valida\u00e7\u00e3o"}}}}}}