{
    "openapi": "3.0.3",
    "info": {
        "title": "Retondo Labs — API Corporativa & Serviços Digitais",
        "description": "Documentação oficial da API REST da Retondo Labs. Permite integração com o Simulador de IA (Gemini 3.7 Flash), captação de leads, consulta de propostas comerciais e telemetria de serviços.",
        "version": "1.0.0",
        "contact": {
            "name": "Suporte de Engenharia — Retondo Labs",
            "email": "adriano@retondolabs.com.br",
            "url": "https://retondolabs.com.br"
        },
        "license": {
            "name": "Proprietário — Retondo Labs (Adriano Retondo)"
        }
    },
    "servers": [
        {
            "url": "/api",
            "description": "Servidor Atual (Relativo)"
        },
        {
            "url": "https://app.retondolabs.com.br/api",
            "description": "Ambiente de Produção (Oracle Cloud VPS)"
        },
        {
            "url": "http://localhost:8000/api",
            "description": "Ambiente de Desenvolvimento Local"
        }
    ],
    "tags": [
        {
            "name": "Telemetria & Sistema",
            "description": "Monitoramento de integridade e status de serviços"
        },
        {
            "name": "Simulador & IA",
            "description": "Qualificação automatizada com Google Gemini 3.7 Flash"
        },
        {
            "name": "Leads & Orçamentos",
            "description": "Entrada de novas oportunidades comerciais"
        },
        {
            "name": "Propostas & Contratos",
            "description": "Consulta e verificação de propostas e hashes digitais"
        }
    ],
    "paths": {
        "/v1/health": {
            "get": {
                "tags": [
                    "Telemetria & Sistema"
                ],
                "summary": "Verificar status e saúde da API",
                "description": "Retorna o status operacional da API, conexão com banco de dados e horário do servidor.",
                "responses": {
                    "200": {
                        "description": "API operacional",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "healthy"
                                        },
                                        "version": {
                                            "type": "string",
                                            "example": "1.0.0"
                                        },
                                        "database": {
                                            "type": "string",
                                            "example": "connected"
                                        },
                                        "timestamp": {
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/simulador/analisar": {
            "post": {
                "tags": [
                    "Simulador & IA"
                ],
                "summary": "Executar análise de viabilidade e score com Gemini 3.7 Flash",
                "description": "Recebe parâmetros de uma demanda de software e aciona o LLM para calcular o Score de Qualificação (0 a 100) e arquitetura recomendada.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "solution_type",
                                    "critical_features",
                                    "investment_range",
                                    "timeline_weeks"
                                ],
                                "properties": {
                                    "client_name": {
                                        "type": "string",
                                        "example": "Empresa Exemplo Ltda"
                                    },
                                    "solution_type": {
                                        "type": "string",
                                        "enum": [
                                            "saas",
                                            "pwa_ia",
                                            "portal_corp",
                                            "automacao"
                                        ],
                                        "example": "pwa_ia"
                                    },
                                    "critical_features": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "example": [
                                            "pagamentos",
                                            "area_membros",
                                            "visao_computacional"
                                        ]
                                    },
                                    "investment_range": {
                                        "type": "string",
                                        "example": "15k_30k"
                                    },
                                    "timeline_weeks": {
                                        "type": "integer",
                                        "example": 4
                                    },
                                    "notes": {
                                        "type": "string",
                                        "example": "Aplicativo para consultoria de estilo e catalogação de roupas."
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Análise processada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "score": {
                                            "type": "integer",
                                            "example": 92
                                        },
                                        "priority": {
                                            "type": "string",
                                            "example": "ALTA"
                                        },
                                        "analysis": {
                                            "type": "string",
                                            "example": "Demanda madura e viável em arquitetura PWA."
                                        },
                                        "recommended_stack": {
                                            "type": "string",
                                            "example": "Laravel 13 + PostgreSQL + Gemini 3.7 Flash"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Dados de validação incorretos"
                    }
                }
            }
        },
        "/v1/leads": {
            "post": {
                "tags": [
                    "Leads & Orçamentos"
                ],
                "summary": "Registrar novo lead de orçamento comercial",
                "description": "Recebe os dados do formulário institucional e cria uma oportunidade no CRM.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name",
                                    "email",
                                    "project_type"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Carlos Alberto"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "carlos@empresa.com.br"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "(11) 98765-4321"
                                    },
                                    "project_type": {
                                        "type": "string",
                                        "example": "SaaS B2B"
                                    },
                                    "message": {
                                        "type": "string",
                                        "example": "Precisamos modernizar nossa esteira de pedidos."
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Lead registrado com sucesso"
                    }
                }
            }
        },
        "/v1/propostas/{code}": {
            "get": {
                "tags": [
                    "Propostas & Contratos"
                ],
                "summary": "Consultar dados públicos e status de uma proposta comercial",
                "description": "Permite verificar a validade, status, prazos e integridade do hash digital de uma proposta comercial emitida pela Retondo Labs.",
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "description": "Código da proposta (ex: RL-2026-0041)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Dados da proposta",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "proposal_code": {
                                            "type": "string",
                                            "example": "RL-2026-0041"
                                        },
                                        "title": {
                                            "type": "string",
                                            "example": "Portal Institucional & Jurídico SINDPIRA"
                                        },
                                        "status": {
                                            "type": "string",
                                            "example": "aceita"
                                        },
                                        "dev_value": {
                                            "type": "number",
                                            "example": 4200
                                        },
                                        "payment_model": {
                                            "type": "string",
                                            "example": "40_30_30"
                                        },
                                        "digital_signature_hash": {
                                            "type": "string",
                                            "example": "a8f5c9e2b1d3..."
                                        },
                                        "accepted_at": {
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Proposta não encontrada"
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "BearerAuth": {
                "type": "http",
                "scheme": "bearer",
                "bearerFormat": "JWT",
                "description": "Autenticação via token Bearer para endpoints administrativos restritos."
            }
        }
    }
}