{
    "openapi": "3.0.3",
    "info": {
        "title": "Academy Educacao API",
        "description": "API publica da Academy Educacao. Consulte cursos de pos-graduacao, MBA, MBA ao vivo e graduacao. Busque por nome, area de conhecimento ou categoria. Acesse grades curriculares, valores e artigos do blog sobre educacao e carreira.",
        "version": "1.0.0",
        "contact": {
            "name": "Academy Educacao",
            "email": "atendimento@academyeducacao.com.br",
            "url": "https://www.academyeducacao.com.br"
        }
    },
    "servers": [
        {
            "url": "https://www.academyeducacao.com.br/api",
            "description": "Producao"
        }
    ],
    "paths": {
        "/index.php?route=search": {
            "get": {
                "operationId": "searchCursos",
                "summary": "Busca cursos por nome",
                "description": "Busca cursos de pos-graduacao, MBA e graduacao por nome. Retorna resultados com nome, URL, categoria e preco. Minimo 2 caracteres na busca.",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": true,
                        "description": "Termo de busca (minimo 2 caracteres). Ex: 'gestao', 'direito', 'engenharia'",
                        "schema": {
                            "type": "string",
                            "minLength": 2
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista de cursos encontrados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "results": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/CursoResumo"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/index.php?route=cursos": {
            "get": {
                "operationId": "listCursos",
                "summary": "Lista cursos paginados com filtros",
                "description": "Lista todos os cursos ativos com paginacao. Pode filtrar por area de conhecimento, categoria (MBA, pos-graduacao, graduacao) ou cursos em destaque.",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Numero da pagina (comeca em 1)",
                        "schema": {
                            "type": "integer",
                            "default": 1,
                            "minimum": 1
                        }
                    },
                    {
                        "name": "area",
                        "in": "query",
                        "description": "ID da area de conhecimento para filtrar",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "categoria",
                        "in": "query",
                        "description": "ID da categoria: 1=Graduacao, 2=MBA, 3=Pos-Graduacao, 4=MBA ao Vivo, 5=MBA",
                        "schema": {
                            "type": "integer",
                            "enum": [1, 2, 3, 4, 5]
                        }
                    },
                    {
                        "name": "destaque",
                        "in": "query",
                        "description": "Se 1, retorna apenas cursos em destaque",
                        "schema": {
                            "type": "integer",
                            "enum": [0, 1]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista paginada de cursos",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CursosPaginados"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/index.php?route=curso": {
            "get": {
                "operationId": "getCurso",
                "summary": "Detalhes completos de um curso",
                "description": "Retorna todas as informacoes de um curso especifico, incluindo grade curricular, carga horaria, duracao, valores e URL da pagina. Busca por ID ou slug.",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "ID do curso",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "slug",
                        "in": "query",
                        "description": "Slug do curso (ex: 'gestao-empresarial')",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Detalhes do curso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "curso": {
                                            "$ref": "#/components/schemas/CursoCompleto"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Curso nao encontrado"
                    }
                }
            }
        },
        "/index.php?route=areas": {
            "get": {
                "operationId": "listAreas",
                "summary": "Lista areas de conhecimento",
                "description": "Retorna todas as areas de conhecimento disponiveis com a quantidade de cursos em cada uma. Use os IDs para filtrar cursos por area.",
                "responses": {
                    "200": {
                        "description": "Lista de areas",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "areas": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Area"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/blog-search.php": {
            "get": {
                "operationId": "searchBlog",
                "summary": "Busca artigos do blog",
                "description": "Busca artigos publicados no blog da Academy Educacao. Retorna titulo, URL e categoria. Temas: educacao, carreira, pos-graduacao, mercado de trabalho.",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": true,
                        "description": "Termo de busca (minimo 2 caracteres)",
                        "schema": {
                            "type": "string",
                            "minLength": 2
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Artigos encontrados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "results": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/BlogPost"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "CursoResumo": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer",
                        "description": "ID do curso"
                    },
                    "nome": {
                        "type": "string",
                        "description": "Nome do curso"
                    },
                    "url": {
                        "type": "string",
                        "description": "URL relativa da pagina do curso"
                    },
                    "categoria": {
                        "type": "string",
                        "description": "Categoria: MBA, Pos-Graduacao, Graduacao, MBA ao Vivo"
                    },
                    "preco": {
                        "type": "string",
                        "description": "Valor da parcela minima formatado (ex: 'R$ 199,90')"
                    }
                }
            },
            "CursosPaginados": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/CursoCompleto"
                        }
                    },
                    "total": {
                        "type": "integer",
                        "description": "Total de cursos"
                    },
                    "page": {
                        "type": "integer",
                        "description": "Pagina atual"
                    },
                    "per_page": {
                        "type": "integer",
                        "description": "Itens por pagina"
                    },
                    "total_pages": {
                        "type": "integer",
                        "description": "Total de paginas"
                    }
                }
            },
            "CursoCompleto": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "nome": {
                        "type": "string",
                        "description": "Nome do curso"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "url": {
                        "type": "string",
                        "description": "URL relativa. Prefixar com https://www.academyeducacao.com.br para URL completa"
                    },
                    "categoria_nome": {
                        "type": "string",
                        "description": "Categoria: MBA, Pos-Graduacao, Graduacao"
                    },
                    "area_nome": {
                        "type": "string",
                        "description": "Area de conhecimento"
                    },
                    "carga_horaria": {
                        "type": "integer",
                        "description": "Carga horaria em horas"
                    },
                    "duracao_meses": {
                        "type": "integer",
                        "description": "Duracao em meses"
                    },
                    "parcela_minima": {
                        "type": "number",
                        "description": "Valor da menor parcela"
                    },
                    "num_parcelas": {
                        "type": "integer",
                        "description": "Numero maximo de parcelas"
                    },
                    "imagem_url": {
                        "type": "string",
                        "description": "URL da imagem do curso (CDN CloudFront)"
                    },
                    "grade": {
                        "type": "array",
                        "description": "Grade curricular (disciplinas)",
                        "items": {
                            "type": "object",
                            "properties": {
                                "nome": {
                                    "type": "string"
                                },
                                "carga_horaria": {
                                    "type": "integer"
                                }
                            }
                        }
                    }
                }
            },
            "Area": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "nome": {
                        "type": "string",
                        "description": "Nome da area de conhecimento"
                    },
                    "slug": {
                        "type": "string"
                    },
                    "total_cursos": {
                        "type": "integer",
                        "description": "Quantidade de cursos nesta area"
                    }
                }
            },
            "BlogPost": {
                "type": "object",
                "properties": {
                    "titulo": {
                        "type": "string",
                        "description": "Titulo do artigo"
                    },
                    "url": {
                        "type": "string",
                        "description": "URL relativa do artigo. Prefixar com https://www.academyeducacao.com.br para URL completa"
                    },
                    "categoria_nome": {
                        "type": "string",
                        "description": "Categoria do artigo"
                    }
                }
            }
        }
    }
}
