Last active
October 23, 2025 14:13
-
-
Save lpirola/33dbf97c928bb20de675024751308a49 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8" /> | |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> | |
| <meta name="description" content="SwaggerUI" /> | |
| <title>SwaggerUI</title> | |
| <link rel="stylesheet" href="https://unpkg.com/[email protected]/swagger-ui.css" /> | |
| </head> | |
| <body> | |
| <div id="swagger-ui"></div> | |
| <script src="https://unpkg.com/[email protected]/swagger-ui-bundle.js" crossorigin></script> | |
| <script src="https://unpkg.com/[email protected]/swagger-ui-standalone-preset.js" crossorigin></script> | |
| <script> | |
| window.onload = () => { | |
| window.ui = SwaggerUIBundle({ | |
| url: 'https://gist.githubusercontent.com/lpirola/33dbf97c928bb20de675024751308a49/raw/896164ac232ce8b2dda842308d8d7976c230432b/openapi.yaml', | |
| dom_id: '#swagger-ui', | |
| presets: [ | |
| SwaggerUIBundle.presets.apis, | |
| SwaggerUIStandalonePreset | |
| ], | |
| layout: "StandaloneLayout", | |
| }); | |
| }; | |
| </script> | |
| </body> | |
| </html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| openapi: 3.0.3 | |
| info: | |
| title: Mapas Culturais API | |
| description: |- | |
| Documentação OpenAPI gerada a partir dos controladores e convenções do framework interno do Mapas Culturais (Slim 4 + Controllers). | |
| As rotas sob `/api/{controller}/{acao}` mapeiam para métodos `API_*` dos controladores. Parâmetros de busca suportam a sintaxe rica do Mapas Culturais (ex.: `@select`, `@order`, operadores abaixo). | |
| Guia de Operadores (filtros em query string) | |
| - EQ(valor): Igualdade. Ex.: `id=EQ(10)` | |
| - GT(valor), GTE(valor): Maior que / Maior ou igual. Ex.: `id=GT(10)` | |
| - LT(valor), LTE(valor): Menor que / Menor ou igual. Ex.: `id=LTE(100)` | |
| - NULL(): Nulo/não definido. Ex.: `age=NULL()` | |
| - IN(v1,v2,...): Pertence ao conjunto. Ex.: `id=IN(10,18,33)` | |
| - BET(inf,sup): Entre limites (fechado). Ex.: `id=BET(100,200)` | |
| - LIKE(padrao): Like SQL sensível a maiúsculas. Ex.: `name=LIKE(*fael*)` | |
| - ILIKE(padrao): Like case-insensitive. Ex.: `name=ILIKE(rafael*)` | |
| - OR(expr1,expr2,...): Disjunção lógica. Ex.: `id=OR(BET(100,200),BET(300,400),IN(10,19,33))` | |
| - AND(expr1,expr2,...): Conjunção lógica. Ex.: `name=AND(ILIKE(Rafael%),ILIKE(*Freitas))` | |
| - GEONEAR(lon,lat,raio_m): Proximidade geográfica. Ex.: `_geoLocation=GEONEAR(-46.64,-23.54,700)` | |
| Dicas adicionais | |
| - Use `@select` para escolher campos e relações (ex.: `@select=id,name,owner.name`). | |
| - Use `@order` para ordenação (ex.: `@order=name ASC,id DESC`). | |
| - Pagine com `@limit` e `@page`. | |
| - `@files` para incluir grupos de arquivos (quando suportado). | |
| - `@count=1` para retornar apenas a contagem. | |
| version: 0.3.0 | |
| servers: | |
| - url: https://app.mapas.tec.br | |
| security: | |
| - bearerAuth: [] | |
| tags: | |
| - name: Site | |
| - name: User | |
| - name: Agent | |
| - name: Space | |
| - name: Event | |
| - name: Project | |
| - name: Opportunity | |
| - name: Registration | |
| - name: RegistrationStep | |
| - name: Term | |
| - name: Subsite | |
| - name: Notification | |
| - name: EventOccurrence | |
| - name: EventAttendance | |
| - name: RegistrationEvaluation | |
| - name: EvaluationMethodConfiguration | |
| - name: Seals | |
| - name: Apps | |
| - name: Role | |
| - name: SystemRole | |
| - name: Blame | |
| - name: GeoDivisions | |
| - name: File | |
| - name: PermissionCache | |
| - name: Auth | |
| - name: ProjectMonitoring | |
| - name: ThemeCustomizer | |
| - name: Search | |
| - name: Support | |
| - name: Spreadsheets | |
| - name: Panel | |
| - name: FAQ | |
| - name: EventImporter | |
| - name: LGPD | |
| - name: Home | |
| - name: BaseV1EmbedTools | |
| paths: | |
| # Site (público) | |
| /api/site/version: | |
| get: | |
| tags: [Site] | |
| summary: Obter versão do Mapas Culturais | |
| security: [] | |
| responses: | |
| '200': | |
| description: Versão atual | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| additionalProperties: true | |
| /api/site/info: | |
| get: | |
| tags: [Site] | |
| summary: Informações gerais do site | |
| security: [] | |
| responses: | |
| '200': { description: Informações do site, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # User | |
| /api/user/find: | |
| get: | |
| tags: [User] | |
| summary: Buscar usuários | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' }, { $ref: '#/components/parameters/type' } ] | |
| responses: | |
| '200': { description: Lista de usuários, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } }, headers: { API-Metadata: { description: Metadados de paginação, schema: { type: string } } } } | |
| /api/user/findOne: | |
| get: | |
| tags: [User] | |
| summary: Buscar um usuário | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/type' } ] | |
| responses: | |
| '200': { description: Usuário, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| '404': { description: Não encontrado } | |
| /api/user/getId: | |
| get: | |
| tags: [User] | |
| summary: Obter ID do usuário por `authUid` | |
| parameters: [ { in: query, name: authUid, required: true, schema: { type: string } } ] | |
| responses: | |
| '200': { description: ID do usuário (ou null), content: { application/json: { schema: { type: integer, nullable: true } } } } | |
| /api/user/describe: | |
| get: | |
| tags: [User] | |
| summary: Descrever metadados de Usuário | |
| responses: | |
| '200': { description: Estrutura de campos, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/user/filters: | |
| get: | |
| tags: [User] | |
| summary: Listar filtros disponíveis para Usuário | |
| responses: | |
| '200': { description: Filtros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # Agent | |
| /api/agent/find: | |
| get: | |
| tags: [Agent] | |
| summary: Buscar agentes | |
| description: >- | |
| Busca agentes usando a sintaxe de consulta do Mapas Culturais. | |
| Exemplos de operadores: EQ(id), ILIKE(name), IN(id). Use `@select` para escolher campos e relações. | |
| Consulte o "Guia de Operadores" na seção de descrição da API. | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' }, { $ref: '#/components/parameters/type' }, { $ref: '#/components/parameters/files' }, { $ref: '#/components/parameters/seals' }, { $ref: '#/components/parameters/keyword' } ] | |
| responses: | |
| '200': | |
| description: Lista de agentes | |
| headers: { API-Metadata: { description: Metadados, schema: { type: string } } } | |
| content: | |
| application/json: | |
| schema: { type: array, items: { type: object, additionalProperties: true } } | |
| examples: | |
| exemplo: | |
| value: | |
| - { id: 123, name: 'Coletivo XYZ', type: 2 } | |
| - { id: 456, name: 'Fulana de Tal', type: 1 } | |
| /api/agent/findOne: | |
| get: | |
| tags: [Agent] | |
| summary: Buscar um agente | |
| description: Retorna um único agente que satisfaça os filtros fornecidos. | |
| Consulte o "Guia de Operadores" na seção de descrição da API. | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/type' }, { $ref: '#/components/parameters/files' } ] | |
| responses: | |
| '200': | |
| description: Agente | |
| content: | |
| application/json: | |
| schema: { type: object, additionalProperties: true } | |
| examples: | |
| exemplo: { value: { id: 456, name: 'Fulana de Tal', type: 1, owner: { id: 5, name: 'Org A' } } } | |
| /api/agent/describe: | |
| get: | |
| tags: [Agent] | |
| summary: Descrever metadados do Agente | |
| responses: | |
| '200': | |
| description: Campos e grupos de arquivos | |
| content: | |
| application/json: | |
| schema: { type: object, additionalProperties: true } | |
| examples: | |
| exemplo: | |
| value: | |
| id: { type: integer, required: true } | |
| name: { type: string, required: true } | |
| _type: { type: smallint, required: true, '@select': 'type' } | |
| '@file': { avatar: [ 'avatar', 'avatarSmall', 'avatarMedium' ] } | |
| /api/agent/filters: | |
| get: | |
| tags: [Agent] | |
| summary: Listar filtros disponíveis | |
| responses: | |
| '200': | |
| description: Filtros por campo/metadado aceitos no `find` | |
| content: | |
| application/json: | |
| schema: { type: object, additionalProperties: true } | |
| examples: { exemplo: { value: { name: 'ILIKE()', id: 'IN()', status: 'EQ()' } } } | |
| /api/agent/getTypes: | |
| get: | |
| tags: [Agent] | |
| summary: Listar tipos de Agente | |
| responses: | |
| '200': { description: Tipos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } }, examples: { exemplo: { value: [ { id: 1, name: 'Individual' }, { id: 2, name: 'Coletivo' } ] } } } } } | |
| /api/agent/getTypeGroups: | |
| get: | |
| tags: [Agent] | |
| summary: Listar grupos de tipos de Agente | |
| responses: | |
| '200': { description: Grupos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } }, examples: { exemplo: { value: [ { id: 10, name: 'Grupo A' }, { id: 20, name: 'Grupo B' } ] } } } } } | |
| /api/agent/getChildrenIds: | |
| get: | |
| tags: [Agent] | |
| summary: Listar IDs de filhos (hierarquia) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: IDs, content: { application/json: { schema: { type: array, items: { type: integer } } } } } | |
| # Agent (rotas não-API) | |
| /agent/edit: | |
| get: | |
| tags: [Agent] | |
| summary: Página de edição do agente | |
| responses: | |
| '200': { description: HTML da edição, content: { text/html: { schema: { type: string } } } } | |
| /agent/single: | |
| get: | |
| tags: [Agent] | |
| summary: Página pública do agente | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: HTML da página do agente, content: { text/html: { schema: { type: string } } } } | |
| # Space | |
| /api/space/find: | |
| get: | |
| tags: [Space] | |
| summary: Buscar espaços | |
| description: Busca espaços por filtros de propriedades e metadados; suporta geofiltros via operadores específicos. | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' }, { $ref: '#/components/parameters/type' } ] | |
| responses: | |
| '200': { description: Lista de espaços, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } }, examples: { exemplo: { value: [ { id: 77, name: 'Teatro ABC' } ] } } } } } | |
| /api/space/findOne: | |
| get: | |
| tags: [Space] | |
| summary: Buscar um espaço | |
| parameters: [ { $ref: '#/components/parameters/select' } ] | |
| responses: | |
| '200': { description: Espaço, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/space/describe: | |
| get: | |
| tags: [Space] | |
| summary: Descrever metadados do Espaço | |
| responses: | |
| '200': { description: Estrutura de campos, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/space/filters: | |
| get: | |
| tags: [Space] | |
| summary: Listar filtros disponíveis | |
| responses: | |
| '200': { description: Filtros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/space/getTypes: | |
| get: | |
| tags: [Space] | |
| summary: Listar tipos de Espaço | |
| responses: | |
| '200': { description: Tipos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/space/getTypeGroups: | |
| get: | |
| tags: [Space] | |
| summary: Listar grupos de tipos de Espaço | |
| responses: | |
| '200': { description: Grupos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/space/getChildrenIds: | |
| get: | |
| tags: [Space] | |
| summary: Listar IDs de filhos (hierarquia) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: IDs, content: { application/json: { schema: { type: array, items: { type: integer } } } } } | |
| /api/space/findByEvents: | |
| get: | |
| tags: [Space] | |
| summary: Buscar espaços por eventos | |
| parameters: [ { in: query, name: eventId, required: false, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Espaços, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| # Space (rotas não-API) | |
| /space/create: | |
| get: | |
| tags: [Space] | |
| summary: Página de criação de espaço | |
| responses: | |
| '200': { description: HTML da criação de espaço, content: { text/html: { schema: { type: string } } } } | |
| # Event | |
| /api/event/find: | |
| get: | |
| tags: [Event] | |
| summary: Buscar eventos | |
| description: Busca eventos com paginação e seleção de campos; combine com `findOccurrences` para ocorrências. | |
| Consulte o "Guia de Operadores" na seção de descrição da API. | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' } ] | |
| responses: | |
| '200': { description: Lista de eventos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } }, examples: { exemplo: { value: [ { id: 11, name: 'Mostra de Cinema' } ] } } } } } | |
| /api/event/findOne: | |
| get: | |
| tags: [Event] | |
| summary: Buscar um evento | |
| parameters: [ { $ref: '#/components/parameters/select' } ] | |
| responses: | |
| '200': { description: Evento, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/event/describe: | |
| get: | |
| tags: [Event] | |
| summary: Descrever metadados do Evento | |
| responses: | |
| '200': { description: Estrutura de campos, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/event/filters: | |
| get: | |
| tags: [Event] | |
| summary: Listar filtros disponíveis | |
| responses: | |
| '200': { description: Filtros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/event/getTypes: | |
| get: | |
| tags: [Event] | |
| summary: Listar tipos de Evento | |
| responses: | |
| '200': { description: Tipos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/event/getTypeGroups: | |
| get: | |
| tags: [Event] | |
| summary: Listar grupos de tipos de Evento | |
| responses: | |
| '200': { description: Grupos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/event/getChildrenIds: | |
| get: | |
| tags: [Event] | |
| summary: Listar IDs de filhos (hierarquia) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: IDs, content: { application/json: { schema: { type: array, items: { type: integer } } } } } | |
| /api/event/findOccurrences: | |
| get: | |
| tags: [Event] | |
| summary: Buscar ocorrências de eventos (por filtros) | |
| description: Retorna ocorrências com base em filtros de data/local e evento. | |
| responses: | |
| '200': { description: Ocorrências, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } }, examples: { exemplo: { value: [ { id: 9001, startsAt: '2025-01-10T19:00:00Z', event: { id: 11 } } ] } } } } } | |
| /api/event/occurrences: | |
| get: | |
| tags: [Event] | |
| summary: Listar ocorrências de um evento | |
| parameters: [ { in: query, name: eventId, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Ocorrências, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } }, examples: { exemplo: { value: [ { id: 9002, rule: { byDay: [ 'MO' ] } } ] } } } } } | |
| /api/event/findBySpace: | |
| get: | |
| tags: [Event] | |
| summary: Buscar eventos por espaço | |
| parameters: [ { in: query, name: space, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Eventos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| # Event (rotas não-API) | |
| /event/index: | |
| post: | |
| tags: [Event] | |
| summary: Criar evento | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: | |
| schema: { type: object, additionalProperties: true } | |
| application/x-www-form-urlencoded: | |
| schema: { type: object, additionalProperties: true } | |
| responses: | |
| '200': { description: Evento criado, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| /event/create: | |
| get: | |
| tags: [Event] | |
| summary: Página de criação de evento | |
| responses: | |
| '200': { description: HTML da criação de evento, content: { text/html: { schema: { type: string } } } } | |
| /api/event/findByLocation: | |
| get: | |
| tags: [Event] | |
| summary: Buscar eventos por localização (geolocalização) | |
| parameters: [ { in: query, name: lon, required: true, schema: { type: number, format: float } }, { in: query, name: lat, required: true, schema: { type: number, format: float } }, { in: query, name: radius, required: false, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Eventos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| # Project | |
| /api/project/find: | |
| get: | |
| tags: [Project] | |
| summary: Buscar projetos | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' } ] | |
| responses: | |
| '200': { description: Projetos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/project/findOne: | |
| get: | |
| tags: [Project] | |
| summary: Buscar um projeto | |
| parameters: [ { $ref: '#/components/parameters/select' } ] | |
| responses: | |
| '200': { description: Projeto, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/project/describe: | |
| get: | |
| tags: [Project] | |
| summary: Descrever metadados do Projeto | |
| responses: | |
| '200': { description: Estrutura de campos, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/project/filters: | |
| get: | |
| tags: [Project] | |
| summary: Listar filtros disponíveis | |
| responses: | |
| '200': { description: Filtros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/project/getTypes: | |
| get: | |
| tags: [Project] | |
| summary: Listar tipos de Projeto | |
| responses: | |
| '200': { description: Tipos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/project/getTypeGroups: | |
| get: | |
| tags: [Project] | |
| summary: Listar grupos de tipos de Projeto | |
| responses: | |
| '200': { description: Grupos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/project/getChildrenIds: | |
| get: | |
| tags: [Project] | |
| summary: Listar IDs de filhos (hierarquia) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: IDs, content: { application/json: { schema: { type: array, items: { type: integer } } } } } | |
| # Project (rotas não-API) | |
| /project/create: | |
| get: | |
| tags: [Project] | |
| summary: Página de criação de projeto | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /project/report: | |
| get: | |
| tags: [Project] | |
| summary: Página de relatório do projeto | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /project/publishEvents: | |
| post: | |
| tags: [Project] | |
| summary: Publicar eventos do projeto | |
| responses: | |
| '200': { description: Resultado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /project/unpublishEvents: | |
| post: | |
| tags: [Project] | |
| summary: Despublicar eventos do projeto | |
| responses: | |
| '200': { description: Resultado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # Opportunity | |
| /api/opportunity/find: | |
| get: | |
| tags: [Opportunity] | |
| summary: Buscar oportunidades | |
| description: Busca oportunidades com filtros por status, período e propriedades. | |
| Consulte o "Guia de Operadores" na seção de descrição da API. | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' } ] | |
| responses: | |
| '200': { description: Oportunidades, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } }, examples: { exemplo: { value: [ { id: 333, name: 'Edital de Música 2025' } ] } } } } } | |
| /api/opportunity/findOne: | |
| get: | |
| tags: [Opportunity] | |
| summary: Buscar uma oportunidade | |
| parameters: [ { $ref: '#/components/parameters/select' } ] | |
| responses: | |
| '200': { description: Oportunidade, content: { application/json: { schema: { type: object, additionalProperties: true } }, examples: { exemplo: { value: { id: 333, name: 'Edital de Música 2025', registrations: { '@count': 120 } } } } } } | |
| description: | | |
| Retorna uma oportunidade que satisfaça os filtros fornecidos. | |
| Consulte o "Guia de Operadores" na seção de descrição da API. | |
| /api/opportunity/describe: | |
| get: | |
| tags: [Opportunity] | |
| summary: Descrever metadados da Oportunidade | |
| responses: | |
| '200': { description: Estrutura de campos, content: { application/json: { schema: { type: object, additionalProperties: true } }, examples: { exemplo: { value: { id: { type: 'integer' }, name: { type: 'string' }, '@file': { attachments: [ 'downloads' ] } } } } } } | |
| /api/opportunity/filters: | |
| get: | |
| tags: [Opportunity] | |
| summary: Listar filtros disponíveis | |
| responses: | |
| '200': { description: Filtros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/opportunity/getTypes: | |
| get: | |
| tags: [Opportunity] | |
| summary: Listar tipos de Oportunidade | |
| responses: | |
| '200': { description: Tipos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/opportunity/getTypeGroups: | |
| get: | |
| tags: [Opportunity] | |
| summary: Listar grupos de tipos de Oportunidade | |
| responses: | |
| '200': { description: Grupos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/opportunity/getChildrenIds: | |
| get: | |
| tags: [Opportunity] | |
| summary: Listar IDs de filhos (hierarquia) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: IDs, content: { application/json: { schema: { type: array, items: { type: integer } } } } } | |
| /api/opportunity/findByUserApprovedRegistration: | |
| get: | |
| tags: [Opportunity] | |
| summary: Listar oportunidades com inscrições aprovadas do usuário | |
| responses: | |
| '200': { description: Oportunidades, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/opportunity/evaluationCommittee: | |
| get: | |
| tags: [Opportunity] | |
| summary: Obter comissão de avaliação da oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Comissão, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/opportunity/selectFields: | |
| get: | |
| tags: [Opportunity] | |
| summary: Obter campos da inscrição selecionáveis | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Campos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/opportunity/findRegistrations: | |
| get: | |
| tags: [Opportunity] | |
| summary: Listar inscrições vinculadas à oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Inscrições, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } }, examples: { exemplo: { value: [ { id: 7001, owner: { id: 12, name: 'Coletivo XYZ' }, status: 1 } ] } } } } } | |
| /api/opportunity/findRegistrationsAndEvaluations: | |
| get: | |
| tags: [Opportunity] | |
| summary: Listar inscrições e suas avaliações | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Inscrições com avaliações, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/opportunity/findEvaluations: | |
| get: | |
| tags: [Opportunity] | |
| summary: Listar avaliações da oportunidade | |
| parameters: [ { in: query, name: id, required: false, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Avaliações, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/opportunity/findEvaluable: | |
| get: | |
| tags: [Opportunity] | |
| summary: Listar inscrições aptas à avaliação | |
| responses: | |
| '200': { description: Inscrições avaliáveis, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| # Opportunity (rotas não-API) | |
| /opportunity/single: | |
| patch: | |
| tags: [Opportunity] | |
| summary: Atualizar parcialmente oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: { schema: { type: object, additionalProperties: true } } | |
| application/x-www-form-urlencoded: { schema: { type: object, additionalProperties: true } } | |
| responses: | |
| '200': { description: Oportunidade atualizada, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /opportunity/create: | |
| get: | |
| tags: [Opportunity] | |
| summary: Página de criação de oportunidade | |
| responses: | |
| '200': { description: HTML da criação, content: { text/html: { schema: { type: string } } } } | |
| /opportunity/index: | |
| post: | |
| tags: [Opportunity] | |
| summary: Criar oportunidade | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: { schema: { type: object, additionalProperties: true } } | |
| application/x-www-form-urlencoded: { schema: { type: object, additionalProperties: true } } | |
| responses: | |
| '200': { description: Oportunidade criada, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| /opportunity/reportDrafts: | |
| get: | |
| tags: [Opportunity] | |
| summary: Relatório de rascunhos (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /opportunity/reportEvaluations: | |
| get: | |
| tags: [Opportunity] | |
| summary: Relatório de avaliações (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /opportunity/exportFields: | |
| get: | |
| tags: [Opportunity] | |
| summary: Exportar campos de inscrição (download) | |
| responses: | |
| '200': { description: Arquivo exportado, content: { application/octet-stream: { schema: { type: string, format: binary } } } } | |
| /opportunity/importFields: | |
| post: | |
| tags: [Opportunity] | |
| summary: Importar campos de inscrição | |
| requestBody: | |
| required: true | |
| content: | |
| multipart/form-data: | |
| schema: | |
| type: object | |
| properties: | |
| file: { type: string, format: binary } | |
| responses: | |
| '200': { description: Resultado da importação, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /opportunity/saveFieldsOrder: | |
| post: | |
| tags: [Opportunity] | |
| summary: Salvar ordenação de campos | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: { schema: { type: object, additionalProperties: true } } | |
| responses: | |
| '200': { description: Ordem salva, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /opportunity/formBuilder: | |
| get: | |
| tags: [Opportunity] | |
| summary: Construtor de formulário (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /opportunity/registrations: | |
| get: | |
| tags: [Opportunity] | |
| summary: Listagem de inscrições (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /opportunity/userEvaluations: | |
| get: | |
| tags: [Opportunity] | |
| summary: Avaliações do usuário (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /opportunity/allEvaluations: | |
| get: | |
| tags: [Opportunity] | |
| summary: Todas as avaliações (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /opportunity/reopenEvaluations: | |
| post: | |
| tags: [Opportunity] | |
| summary: Reabrir avaliações | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: { schema: { type: object, additionalProperties: true } } | |
| responses: | |
| '200': { description: Avaliações reabertas, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # Registration | |
| /api/registration/find: | |
| get: | |
| tags: [Registration] | |
| summary: Buscar inscrições | |
| description: Busca inscrições ligadas a oportunidades; suporte a filtros em campos e metadados. | |
| Consulte o "Guia de Operadores" na seção de descrição da API. | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' } ] | |
| responses: | |
| '200': { description: Inscrições, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } }, examples: { exemplo: { value: [ { id: 7001, opportunity: { id: 333 }, status: 1 } ] } } } } } | |
| /api/registration/findOne: | |
| get: | |
| tags: [Registration] | |
| summary: Buscar uma inscrição | |
| parameters: [ { $ref: '#/components/parameters/select' } ] | |
| responses: | |
| '200': { description: Inscrição, content: { application/json: { schema: { type: object, additionalProperties: true } }, examples: { exemplo: { value: { id: 7001, owner: { id: 12 }, consolidated_result: '85.0' } } } } } | |
| description: | | |
| Retorna uma inscrição que satisfaça os filtros fornecidos. | |
| Consulte o "Guia de Operadores" na seção de descrição da API. | |
| /api/registration/describe: | |
| get: | |
| tags: [Registration] | |
| summary: Descrever metadados da Inscrição | |
| responses: | |
| '200': { description: Estrutura de campos, content: { application/json: { schema: { type: object, additionalProperties: true } }, examples: { exemplo: { value: { id: { type: 'integer' }, owner: { type: 'relation', targetEntity: 'Agent' } } } } } } | |
| /api/registration/filters: | |
| get: | |
| tags: [Registration] | |
| summary: Listar filtros disponíveis | |
| responses: | |
| '200': { description: Filtros aceitos no find (campos/metadados), content: { application/json: { schema: { type: object, additionalProperties: true }, examples: { exemplo: { value: { status: 'IN()', consolidated_result: 'BET()', owner: 'EQ()' } } } } } } | |
| # RegistrationStep | |
| /api/registrationstep/find: | |
| get: | |
| tags: [RegistrationStep] | |
| summary: Buscar etapas de inscrição | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' } ] | |
| responses: | |
| '200': { description: Etapas, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/registrationstep/findOne: | |
| get: | |
| tags: [RegistrationStep] | |
| summary: Buscar uma etapa de inscrição | |
| parameters: [ { $ref: '#/components/parameters/select' } ] | |
| responses: | |
| '200': { description: Etapa, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/registrationstep/describe: | |
| get: | |
| tags: [RegistrationStep] | |
| summary: Descrever metadados da etapa de inscrição | |
| responses: | |
| '200': { description: Estrutura de campos, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/registrationstep/filters: | |
| get: | |
| tags: [RegistrationStep] | |
| summary: Listar filtros disponíveis | |
| responses: | |
| '200': { description: Filtros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # Registration (rotas não-API) | |
| /registration/preview: | |
| get: | |
| tags: [Registration] | |
| summary: Pré-visualização (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /registration/create: | |
| get: | |
| tags: [Registration] | |
| summary: Página de criação (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /registration/view: | |
| get: | |
| tags: [Registration] | |
| summary: Visualização (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /registration/single: | |
| get: | |
| tags: [Registration] | |
| summary: Página pública da inscrição (HTML) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /registration/edit: | |
| get: | |
| tags: [Registration] | |
| summary: Página de edição (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /registration/registrationEdit: | |
| get: | |
| tags: [Registration] | |
| summary: Edição alternativa (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /registration/createSpaceRelation: | |
| post: | |
| tags: [Registration] | |
| summary: Criar relação com espaço | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: { schema: { type: object, additionalProperties: true } } | |
| responses: | |
| '200': { description: Relação criada, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /registration/removeSpaceRelation: | |
| post: | |
| tags: [Registration] | |
| summary: Remover relação com espaço | |
| responses: | |
| '200': { description: Relação removida, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /registration/deleteRegistration: | |
| post: | |
| tags: [Registration] | |
| summary: Excluir inscrição | |
| responses: | |
| '200': { description: Resultado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /registration/reopenEvaluation: | |
| post: | |
| tags: [Registration] | |
| summary: Reabrir avaliação | |
| responses: | |
| '200': { description: Avaliação reaberta, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /registration/sendEvaluation: | |
| post: | |
| tags: [Registration] | |
| summary: Enviar avaliação | |
| responses: | |
| '200': { description: Avaliação enviada, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /registration/setStatusTo: | |
| post: | |
| tags: [Registration] | |
| summary: Definir status da inscrição | |
| responses: | |
| '200': { description: Status alterado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /registration/setMultipleStatus: | |
| post: | |
| tags: [Registration] | |
| summary: Definir status de múltiplas inscrições | |
| responses: | |
| '200': { description: Status alterados, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /registration/send: | |
| post: | |
| tags: [Registration] | |
| summary: Enviar inscrição | |
| responses: | |
| '200': { description: Envio efetuado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /registration/saveEvaluation: | |
| post: | |
| tags: [Registration] | |
| summary: Salvar avaliação | |
| responses: | |
| '200': { description: Avaliação salva, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /registration/saveEvaluationAndChangeStatus: | |
| post: | |
| tags: [Registration] | |
| summary: Salvar avaliação e mudar status | |
| responses: | |
| '200': { description: Salvo e status alterado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /registration/valuersExceptionsList: | |
| patch: | |
| tags: [Registration] | |
| summary: Atualizar lista de exceções de avaliadores | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: { schema: { type: object, additionalProperties: true } } | |
| responses: | |
| '200': { description: Lista atualizada, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /registration/validateEntity: | |
| post: | |
| tags: [Registration] | |
| summary: Validar entidade | |
| responses: | |
| '200': { description: OK/erros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /registration/validateProperties: | |
| post: | |
| tags: [Registration] | |
| summary: Validar propriedades | |
| responses: | |
| '200': { description: OK/erros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /registration/evaluation: | |
| get: | |
| tags: [Registration] | |
| summary: Página de avaliação (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /registration/sendEditableFields: | |
| post: | |
| tags: [Registration] | |
| summary: Solicitar campos editáveis | |
| responses: | |
| '200': { description: Solicitação enviada, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /registration/reopenEditableFields: | |
| post: | |
| tags: [Registration] | |
| summary: Reabrir campos editáveis | |
| responses: | |
| '200': { description: Reabertura solicitada, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # Term | |
| /api/term/list: | |
| get: | |
| tags: [Term] | |
| summary: Listar termos (taxonomias) | |
| parameters: [ { in: query, name: taxonomy, required: false, schema: { type: string } } ] | |
| responses: | |
| '200': { description: Termos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/term/find: | |
| get: | |
| tags: [Term] | |
| summary: Buscar termos | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' } ] | |
| responses: | |
| '200': { description: Termos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/term/findOne: | |
| get: | |
| tags: [Term] | |
| summary: Buscar um termo | |
| parameters: [ { $ref: '#/components/parameters/select' } ] | |
| responses: | |
| '200': { description: Termo, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/term/describe: | |
| get: | |
| tags: [Term] | |
| summary: Descrever metadados de Termo | |
| responses: | |
| '200': { description: Estrutura de campos, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/term/filters: | |
| get: | |
| tags: [Term] | |
| summary: Listar filtros disponíveis | |
| responses: | |
| '200': { description: Filtros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # Subsite | |
| /api/subsite/find: | |
| get: | |
| tags: [Subsite] | |
| summary: Buscar subsites | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' } ] | |
| responses: | |
| '200': { description: Subsites, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/subsite/findOne: | |
| get: | |
| tags: [Subsite] | |
| summary: Buscar um subsite | |
| parameters: [ { $ref: '#/components/parameters/select' } ] | |
| responses: | |
| '200': { description: Subsite, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/subsite/describe: | |
| get: | |
| tags: [Subsite] | |
| summary: Descrever metadados do Subsite | |
| responses: | |
| '200': { description: Estrutura de campos, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/subsite/filters: | |
| get: | |
| tags: [Subsite] | |
| summary: Listar filtros disponíveis | |
| responses: | |
| '200': { description: Filtros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/subsite/getTypes: | |
| get: | |
| tags: [Subsite] | |
| summary: Listar tipos de Subsite | |
| responses: | |
| '200': { description: Tipos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/subsite/getTypeGroups: | |
| get: | |
| tags: [Subsite] | |
| summary: Listar grupos de tipos de Subsite | |
| responses: | |
| '200': { description: Grupos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| # Notification | |
| /api/notification/find: | |
| get: | |
| tags: [Notification] | |
| summary: Buscar notificações | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' } ] | |
| responses: | |
| '200': { description: Notificações, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/notification/findOne: | |
| get: | |
| tags: [Notification] | |
| summary: Buscar uma notificação | |
| parameters: [ { $ref: '#/components/parameters/select' } ] | |
| responses: | |
| '200': { description: Notificação, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/notification/describe: | |
| get: | |
| tags: [Notification] | |
| summary: Descrever metadados da Notificação | |
| responses: | |
| '200': { description: Estrutura de campos, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/notification/filters: | |
| get: | |
| tags: [Notification] | |
| summary: Listar filtros disponíveis | |
| responses: | |
| '200': { description: Filtros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # EventOccurrence | |
| /api/eventOccurrence/find: | |
| get: | |
| tags: [EventOccurrence] | |
| summary: Buscar ocorrências de eventos | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' } ] | |
| responses: | |
| '200': { description: Ocorrências, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/eventOccurrence/findOne: | |
| get: | |
| tags: [EventOccurrence] | |
| summary: Buscar uma ocorrência de evento | |
| parameters: [ { $ref: '#/components/parameters/select' } ] | |
| responses: | |
| '200': { description: Ocorrência, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/eventOccurrence/describe: | |
| get: | |
| tags: [EventOccurrence] | |
| summary: Descrever metadados da ocorrência de evento | |
| responses: | |
| '200': { description: Estrutura de campos, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/eventOccurrence/filters: | |
| get: | |
| tags: [EventOccurrence] | |
| summary: Listar filtros disponíveis | |
| responses: | |
| '200': { description: Filtros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # EventAttendance | |
| /api/eventAttendance/find: | |
| get: | |
| tags: [EventAttendance] | |
| summary: Buscar presenças em eventos | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' } ] | |
| responses: | |
| '200': { description: Registros de presença, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/eventAttendance/findOne: | |
| get: | |
| tags: [EventAttendance] | |
| summary: Buscar um registro de presença | |
| parameters: [ { $ref: '#/components/parameters/select' } ] | |
| responses: | |
| '200': { description: Presença, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/eventAttendance/describe: | |
| get: | |
| tags: [EventAttendance] | |
| summary: Descrever metadados do registro de presença | |
| responses: | |
| '200': { description: Estrutura de campos, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/eventAttendance/filters: | |
| get: | |
| tags: [EventAttendance] | |
| summary: Listar filtros disponíveis | |
| responses: | |
| '200': { description: Filtros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # RegistrationEvaluation | |
| /api/registrationEvaluation/find: | |
| get: | |
| tags: [RegistrationEvaluation] | |
| summary: Buscar avaliações de inscrições | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' } ] | |
| responses: | |
| '200': { description: Avaliações, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/registrationEvaluation/findOne: | |
| get: | |
| tags: [RegistrationEvaluation] | |
| summary: Buscar uma avaliação | |
| parameters: [ { $ref: '#/components/parameters/select' } ] | |
| responses: | |
| '200': { description: Avaliação, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/registrationEvaluation/describe: | |
| get: | |
| tags: [RegistrationEvaluation] | |
| summary: Descrever metadados da avaliação de inscrição | |
| responses: | |
| '200': { description: Estrutura de campos, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/registrationEvaluation/filters: | |
| get: | |
| tags: [RegistrationEvaluation] | |
| summary: Listar filtros disponíveis | |
| responses: | |
| '200': { description: Filtros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # ChatMessage | |
| /api/chatMessage/find: | |
| get: | |
| tags: [RegistrationEvaluation] | |
| summary: Buscar mensagens de chat | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' } ] | |
| responses: | |
| '200': { description: Mensagens, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/chatMessage/findOne: | |
| get: | |
| tags: [RegistrationEvaluation] | |
| summary: Buscar uma mensagem | |
| parameters: [ { $ref: '#/components/parameters/select' } ] | |
| responses: | |
| '200': { description: Mensagem, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/chatMessage/describe: | |
| get: | |
| tags: [RegistrationEvaluation] | |
| summary: Descrever metadados da mensagem | |
| responses: | |
| '200': { description: Estrutura de campos, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/chatMessage/filters: | |
| get: | |
| tags: [RegistrationEvaluation] | |
| summary: Listar filtros disponíveis | |
| responses: | |
| '200': { description: Filtros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/chatMessage/getChildrenIds: | |
| get: | |
| tags: [RegistrationEvaluation] | |
| summary: Listar IDs de filhos (threads) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: IDs, content: { application/json: { schema: { type: array, items: { type: integer } } } } } | |
| # EvaluationMethodConfiguration | |
| /api/evaluationMethodConfiguration/find: | |
| get: | |
| tags: [EvaluationMethodConfiguration] | |
| summary: Buscar configurações de método de avaliação | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' } ] | |
| responses: | |
| '200': { description: Configurações, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/evaluationMethodConfiguration/findOne: | |
| get: | |
| tags: [EvaluationMethodConfiguration] | |
| summary: Buscar uma configuração de método de avaliação | |
| parameters: [ { $ref: '#/components/parameters/select' } ] | |
| responses: | |
| '200': { description: Configuração, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/evaluationMethodConfiguration/describe: | |
| get: | |
| tags: [EvaluationMethodConfiguration] | |
| summary: Descrever metadados | |
| responses: | |
| '200': { description: Estrutura de campos, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/evaluationMethodConfiguration/filters: | |
| get: | |
| tags: [EvaluationMethodConfiguration] | |
| summary: Listar filtros disponíveis | |
| responses: | |
| '200': { description: Filtros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/evaluationMethodConfiguration/getTypes: | |
| get: | |
| tags: [EvaluationMethodConfiguration] | |
| summary: Listar tipos | |
| responses: | |
| '200': { description: Tipos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/evaluationMethodConfiguration/getTypeGroups: | |
| get: | |
| tags: [EvaluationMethodConfiguration] | |
| summary: Listar grupos de tipos | |
| responses: | |
| '200': { description: Grupos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| # Seals (module) | |
| /api/seal/find: | |
| get: | |
| tags: [Seals] | |
| summary: Buscar selos | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' } ] | |
| responses: | |
| '200': { description: Selos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/seal/findOne: | |
| get: | |
| tags: [Seals] | |
| summary: Buscar um selo | |
| parameters: [ { $ref: '#/components/parameters/select' } ] | |
| responses: | |
| '200': { description: Selo, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/seal/describe: | |
| get: | |
| tags: [Seals] | |
| summary: Descrever metadados de Selo | |
| responses: | |
| '200': { description: Estrutura de campos, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/seal/filters: | |
| get: | |
| tags: [Seals] | |
| summary: Listar filtros disponíveis | |
| responses: | |
| '200': { description: Filtros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/seal/getTypes: | |
| get: | |
| tags: [Seals] | |
| summary: Listar tipos de Selo | |
| responses: | |
| '200': { description: Tipos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/seal/getTypeGroups: | |
| get: | |
| tags: [Seals] | |
| summary: Listar grupos de tipos de Selo | |
| responses: | |
| '200': { description: Grupos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| # Apps (UserApp) | |
| /api/app/find: | |
| get: | |
| tags: [Apps] | |
| summary: Buscar apps de usuário | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' } ] | |
| responses: | |
| '200': { description: Apps, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/app/findOne: | |
| get: | |
| tags: [Apps] | |
| summary: Buscar um app de usuário | |
| parameters: [ { $ref: '#/components/parameters/select' } ] | |
| responses: | |
| '200': { description: App, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/app/describe: | |
| get: | |
| tags: [Apps] | |
| summary: Descrever metadados do app de usuário | |
| responses: | |
| '200': { description: Estrutura de campos, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/app/filters: | |
| get: | |
| tags: [Apps] | |
| summary: Listar filtros disponíveis | |
| responses: | |
| '200': { description: Filtros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # Role (UserManagement) | |
| /api/role/find: | |
| get: | |
| tags: [Role] | |
| summary: Buscar roles | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' } ] | |
| responses: | |
| '200': { description: Roles, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/role/findOne: | |
| get: | |
| tags: [Role] | |
| summary: Buscar uma role | |
| parameters: [ { $ref: '#/components/parameters/select' } ] | |
| responses: | |
| '200': { description: Role, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/role/describe: | |
| get: | |
| tags: [Role] | |
| summary: Descrever metadados da role | |
| responses: | |
| '200': { description: Estrutura de campos, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/role/filters: | |
| get: | |
| tags: [Role] | |
| summary: Listar filtros disponíveis | |
| responses: | |
| '200': { description: Filtros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # SystemRole (UserManagement) | |
| /api/system-role/find: | |
| get: | |
| tags: [SystemRole] | |
| summary: Buscar roles de sistema | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' } ] | |
| responses: | |
| '200': { description: Roles de sistema, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/system-role/findOne: | |
| get: | |
| tags: [SystemRole] | |
| summary: Buscar uma role de sistema | |
| parameters: [ { $ref: '#/components/parameters/select' } ] | |
| responses: | |
| '200': { description: Role de sistema, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/system-role/describe: | |
| get: | |
| tags: [SystemRole] | |
| summary: Descrever metadados | |
| responses: | |
| '200': { description: Estrutura de campos, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/system-role/filters: | |
| get: | |
| tags: [SystemRole] | |
| summary: Listar filtros disponíveis | |
| responses: | |
| '200': { description: Filtros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # Blame (plugin) | |
| /api/blame/find: | |
| get: | |
| tags: [Blame] | |
| summary: Buscar registros de blame | |
| parameters: [ { $ref: '#/components/parameters/select' }, { $ref: '#/components/parameters/order' }, { $ref: '#/components/parameters/limit' }, { $ref: '#/components/parameters/page' } ] | |
| responses: | |
| '200': { description: Registros, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /api/blame/findOne: | |
| get: | |
| tags: [Blame] | |
| summary: Buscar um registro de blame | |
| parameters: [ { $ref: '#/components/parameters/select' } ] | |
| responses: | |
| '200': { description: Registro, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/blame/describe: | |
| get: | |
| tags: [Blame] | |
| summary: Descrever metadados | |
| responses: | |
| '200': { description: Estrutura de campos, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /api/blame/filters: | |
| get: | |
| tags: [Blame] | |
| summary: Listar filtros disponíveis | |
| responses: | |
| '200': { description: Filtros, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # GeoDivisions | |
| /api/geodivisions/list: | |
| get: | |
| tags: [GeoDivisions] | |
| summary: Listar divisões geográficas | |
| responses: | |
| '200': { description: Divisões, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| # Core: ALL_* e utilidades | |
| /site/clearCache: | |
| post: | |
| tags: [Site] | |
| summary: Limpar cache da aplicação | |
| responses: | |
| '200': { description: Cache limpo, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| get: | |
| tags: [Site] | |
| summary: Limpar cache da aplicação | |
| responses: | |
| '200': { description: Cache limpo, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| /site/error: | |
| get: | |
| tags: [Site] | |
| summary: Página de erro | |
| parameters: [ { in: query, name: code, required: false, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: HTML de erro, content: { text/html: { schema: { type: string } } } } | |
| /subsite/deleteCache: | |
| post: | |
| tags: [Subsite] | |
| summary: Limpar cache de subsite | |
| responses: | |
| '200': { description: Cache limpo, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Subsite] | |
| summary: Limpar cache de subsite | |
| responses: | |
| '200': { description: Cache limpo, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /auth/logout: | |
| get: | |
| tags: [Auth] | |
| summary: Logout do usuário | |
| responses: | |
| '302': { description: Redireciona para a página inicial } | |
| /agent/setAsUserProfile: | |
| post: | |
| tags: [Agent] | |
| summary: Definir agente como perfil do usuário logado | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Resultado booleano, content: { application/json: { schema: { type: boolean } } } } | |
| get: | |
| tags: [Agent] | |
| summary: Definir agente como perfil do usuário logado | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Resultado booleano, content: { application/json: { schema: { type: boolean } } } } | |
| /agent/addRole: | |
| post: | |
| tags: [Agent] | |
| summary: Atribuir role a usuário do agente | |
| parameters: | |
| - { in: query, name: id, required: true, schema: { type: integer } } | |
| - { in: query, name: role, required: true, schema: { type: string } } | |
| - { in: query, name: subsiteId, required: false, schema: { type: integer, nullable: true } } | |
| responses: | |
| '200': { description: Resultado booleano, content: { application/json: { schema: { type: boolean } } } } | |
| get: | |
| tags: [Agent] | |
| summary: Atribuir role a usuário do agente | |
| parameters: | |
| - { in: query, name: id, required: true, schema: { type: integer } } | |
| - { in: query, name: role, required: true, schema: { type: string } } | |
| - { in: query, name: subsiteId, required: false, schema: { type: integer, nullable: true } } | |
| responses: | |
| '200': { description: Resultado booleano, content: { application/json: { schema: { type: boolean } } } } | |
| /agent/removeRole: | |
| post: | |
| tags: [Agent] | |
| summary: Remover role de usuário do agente | |
| parameters: | |
| - { in: query, name: id, required: true, schema: { type: integer } } | |
| - { in: query, name: role, required: true, schema: { type: string } } | |
| - { in: query, name: subsiteId, required: false, schema: { type: integer } } | |
| responses: | |
| '200': { description: Resultado booleano, content: { application/json: { schema: { type: boolean } } } } | |
| get: | |
| tags: [Agent] | |
| summary: Remover role de usuário do agente | |
| parameters: | |
| - { in: query, name: id, required: true, schema: { type: integer } } | |
| - { in: query, name: role, required: true, schema: { type: string } } | |
| - { in: query, name: subsiteId, required: false, schema: { type: integer } } | |
| responses: | |
| '200': { description: Resultado booleano, content: { application/json: { schema: { type: boolean } } } } | |
| /notification/approve: | |
| post: | |
| tags: [Notification] | |
| summary: Aprovar notificação (executa request associado) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Aprovado, content: { application/json: { schema: { type: boolean } }, text/html: { schema: { type: string } } } } | |
| get: | |
| tags: [Notification] | |
| summary: Aprovar notificação (executa request associado) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Aprovado, content: { application/json: { schema: { type: boolean } }, text/html: { schema: { type: string } } } } | |
| /notification/reject: | |
| post: | |
| tags: [Notification] | |
| summary: Rejeitar notificação (cancela request) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Rejeitado, content: { application/json: { schema: { type: boolean } }, text/html: { schema: { type: string } } } } | |
| get: | |
| tags: [Notification] | |
| summary: Rejeitar notificação (cancela request) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Rejeitado, content: { application/json: { schema: { type: boolean } }, text/html: { schema: { type: string } } } } | |
| /opportunity/sendEvaluations: | |
| post: | |
| tags: [Opportunity] | |
| summary: Enviar avaliações (ALL_sendEvaluations) | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Opportunity] | |
| summary: Enviar avaliações (ALL_sendEvaluations) | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /opportunity/publishRegistrations: | |
| post: | |
| tags: [Opportunity] | |
| summary: Publicar inscrições (ALL_publishRegistrations) | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Opportunity] | |
| summary: Publicar inscrições (ALL_publishRegistrations) | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /opportunity/unPublishRegistrations: | |
| post: | |
| tags: [Opportunity] | |
| summary: Despublicar inscrições (ALL_unPublishRegistrations) | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Opportunity] | |
| summary: Despublicar inscrições (ALL_unPublishRegistrations) | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /opportunity/reconsolidateResults: | |
| post: | |
| tags: [Opportunity] | |
| summary: Recalcular consolidação de resultados | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Opportunity] | |
| summary: Recalcular consolidação de resultados | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /opportunity/fixNextPhaseRegistrationIds: | |
| post: | |
| tags: [Opportunity] | |
| summary: Corrigir IDs de inscrição na próxima fase | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Opportunity] | |
| summary: Corrigir IDs de inscrição na próxima fase | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # Trait endpoints comuns (publish/unpublish/archive/unarchive/undelete/destroy/unlock/enqueuePCache) | |
| # Agent | |
| /agent/publish: | |
| post: | |
| tags: [Agent] | |
| summary: Publicar agente | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Publicado, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| get: | |
| tags: [Agent] | |
| summary: Publicar agente | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Publicado, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| /agent/unpublish: | |
| post: | |
| tags: [Agent] | |
| summary: Despublicar agente | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Despublicado, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| get: | |
| tags: [Agent] | |
| summary: Despublicar agente | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Despublicado, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| /agent/archive: | |
| post: | |
| tags: [Agent] | |
| summary: Arquivar agente | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Arquivado, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| get: | |
| tags: [Agent] | |
| summary: Arquivar agente | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Arquivado, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| /agent/unarchive: | |
| post: | |
| tags: [Agent] | |
| summary: Desarquivar agente | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Desarquivado, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| get: | |
| tags: [Agent] | |
| summary: Desarquivar agente | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Desarquivado, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| /agent/undelete: | |
| post: | |
| tags: [Agent] | |
| summary: Restaurar agente (soft delete) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| get: | |
| tags: [Agent] | |
| summary: Restaurar agente (soft delete) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| /agent/destroy: | |
| post: | |
| tags: [Agent] | |
| summary: Destruir agente (soft delete) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| get: | |
| tags: [Agent] | |
| summary: Destruir agente (soft delete) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| /agent/unlock: | |
| post: | |
| tags: [Agent] | |
| summary: Desbloquear edição do agente | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } }, { in: query, name: token, required: false, schema: { type: string } } ] | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: boolean } }, text/html: { schema: { type: string } } } } | |
| get: | |
| tags: [Agent] | |
| summary: Desbloquear edição do agente | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } }, { in: query, name: token, required: false, schema: { type: string } } ] | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: boolean } }, text/html: { schema: { type: string } } } } | |
| /agent/enqueuePCache: | |
| post: | |
| tags: [Agent] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } }, { in: query, name: users, required: false, schema: { type: string }, description: "'each' ou lista de IDs separados por vírgula" } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| # Event (traits) | |
| /event/publish: | |
| post: | |
| tags: [Event] | |
| summary: Publicar evento | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Publicado, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| get: | |
| tags: [Event] | |
| summary: Publicar evento | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Publicado, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| /event/unpublish: | |
| post: | |
| tags: [Event] | |
| summary: Despublicar evento | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Despublicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Event] | |
| summary: Despublicar evento | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Despublicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /event/archive: | |
| post: | |
| tags: [Event] | |
| summary: Arquivar evento | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Arquivado, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| get: | |
| tags: [Event] | |
| summary: Arquivar evento | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Arquivado, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| /event/unarchive: | |
| post: | |
| tags: [Event] | |
| summary: Desarquivar evento | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Desarquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Event] | |
| summary: Desarquivar evento | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Desarquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /event/undelete: | |
| post: | |
| tags: [Event] | |
| summary: Restaurar evento (soft delete) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Event] | |
| summary: Restaurar evento (soft delete) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /event/destroy: | |
| post: | |
| tags: [Event] | |
| summary: Destruir evento (soft delete) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Event] | |
| summary: Destruir evento (soft delete) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /event/unlock: | |
| post: | |
| tags: [Event] | |
| summary: Desbloquear edição do evento | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } }, { in: query, name: token, required: false, schema: { type: string } } ] | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: boolean } }, text/html: { schema: { type: string } } } } | |
| get: | |
| tags: [Event] | |
| summary: Desbloquear edição do evento | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } }, { in: query, name: token, required: false, schema: { type: string } } ] | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: boolean } }, text/html: { schema: { type: string } } } } | |
| /event/renewLock: | |
| post: | |
| tags: [Event] | |
| summary: Renovar lock de edição | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: { schema: { type: object, properties: { token: { type: string } }, required: [token] } } | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: boolean } } } } | |
| /event/enqueuePCache: | |
| post: | |
| tags: [Event] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } }, { in: query, name: users, required: false, schema: { type: string } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| get: | |
| tags: [Event] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } }, { in: query, name: users, required: false, schema: { type: string } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| # Space (traits) | |
| /space/publish: | |
| post: | |
| tags: [Space] | |
| summary: Publicar espaço | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Publicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Space] | |
| summary: Publicar espaço | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Publicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /space/unpublish: | |
| post: | |
| tags: [Space] | |
| summary: Despublicar espaço | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Despublicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Space] | |
| summary: Despublicar espaço | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Despublicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /space/archive: | |
| post: | |
| tags: [Space] | |
| summary: Arquivar espaço | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Arquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Space] | |
| summary: Arquivar espaço | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Arquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /space/unarchive: | |
| post: | |
| tags: [Space] | |
| summary: Desarquivar espaço | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Desarquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Space] | |
| summary: Desarquivar espaço | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Desarquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /space/undelete: | |
| post: | |
| tags: [Space] | |
| summary: Restaurar espaço | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Space] | |
| summary: Restaurar espaço | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /space/destroy: | |
| post: | |
| tags: [Space] | |
| summary: Destruir espaço | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Space] | |
| summary: Destruir espaço | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /space/unlock: | |
| post: | |
| tags: [Space] | |
| summary: Desbloquear edição do espaço | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } }, { in: query, name: token, required: false, schema: { type: string } } ] | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: boolean } } } } | |
| get: | |
| tags: [Space] | |
| summary: Desbloquear edição do espaço | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } }, { in: query, name: token, required: false, schema: { type: string } } ] | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: boolean } } } } | |
| /space/renewLock: | |
| post: | |
| tags: [Space] | |
| summary: Renovar lock de edição | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: { schema: { type: object, properties: { token: { type: string } }, required: [token] } } | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: boolean } } } } | |
| /space/enqueuePCache: | |
| post: | |
| tags: [Space] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } }, { in: query, name: users, required: false, schema: { type: string } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| get: | |
| tags: [Space] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } }, { in: query, name: users, required: false, schema: { type: string } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| # Project (traits) | |
| /project/publish: | |
| post: | |
| tags: [Project] | |
| summary: Publicar projeto | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Publicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Project] | |
| summary: Publicar projeto | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Publicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /project/unpublish: | |
| post: | |
| tags: [Project] | |
| summary: Despublicar projeto | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Despublicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Project] | |
| summary: Despublicar projeto | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Despublicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /project/archive: | |
| post: | |
| tags: [Project] | |
| summary: Arquivar projeto | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Arquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Project] | |
| summary: Arquivar projeto | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Arquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /project/unarchive: | |
| post: | |
| tags: [Project] | |
| summary: Desarquivar projeto | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Desarquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Project] | |
| summary: Desarquivar projeto | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Desarquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /project/undelete: | |
| post: | |
| tags: [Project] | |
| summary: Restaurar projeto | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Project] | |
| summary: Restaurar projeto | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /project/destroy: | |
| post: | |
| tags: [Project] | |
| summary: Destruir projeto | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Project] | |
| summary: Destruir projeto | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /project/unlock: | |
| post: | |
| tags: [Project] | |
| summary: Desbloquear edição do projeto | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } }, { in: query, name: token, required: false, schema: { type: string } } ] | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: boolean } } } } | |
| get: | |
| tags: [Project] | |
| summary: Desbloquear edição do projeto | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } }, { in: query, name: token, required: false, schema: { type: string } } ] | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: boolean } } } } | |
| /project/renewLock: | |
| post: | |
| tags: [Project] | |
| summary: Renovar lock de edição | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: { schema: { type: object, properties: { token: { type: string } }, required: [token] } } | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: boolean } } } } | |
| /project/enqueuePCache: | |
| post: | |
| tags: [Project] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } }, { in: query, name: users, required: false, schema: { type: string } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| get: | |
| tags: [Project] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } }, { in: query, name: users, required: false, schema: { type: string } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| # Subsite (traits; sem unlock) | |
| /subsite/publish: | |
| post: | |
| tags: [Subsite] | |
| summary: Publicar subsite | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Publicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Subsite] | |
| summary: Publicar subsite | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Publicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /subsite/unpublish: | |
| post: | |
| tags: [Subsite] | |
| summary: Despublicar subsite | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Despublicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Subsite] | |
| summary: Despublicar subsite | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Despublicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /subsite/archive: | |
| post: | |
| tags: [Subsite] | |
| summary: Arquivar subsite | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Arquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Subsite] | |
| summary: Arquivar subsite | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Arquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /subsite/unarchive: | |
| post: | |
| tags: [Subsite] | |
| summary: Desarquivar subsite | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Desarquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Subsite] | |
| summary: Desarquivar subsite | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Desarquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /subsite/undelete: | |
| post: | |
| tags: [Subsite] | |
| summary: Restaurar subsite | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Subsite] | |
| summary: Restaurar subsite | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /subsite/destroy: | |
| post: | |
| tags: [Subsite] | |
| summary: Destruir subsite | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Subsite] | |
| summary: Destruir subsite | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /subsite/enqueuePCache: | |
| post: | |
| tags: [Subsite] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| get: | |
| tags: [Subsite] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| # Opportunity (traits comuns) | |
| /opportunity/publish: | |
| post: | |
| tags: [Opportunity] | |
| summary: Publicar oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Publicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Opportunity] | |
| summary: Publicar oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Publicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /opportunity/unpublish: | |
| post: | |
| tags: [Opportunity] | |
| summary: Despublicar oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Despublicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Opportunity] | |
| summary: Despublicar oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Despublicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /opportunity/archive: | |
| post: | |
| tags: [Opportunity] | |
| summary: Arquivar oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Arquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Opportunity] | |
| summary: Arquivar oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Arquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /opportunity/unarchive: | |
| post: | |
| tags: [Opportunity] | |
| summary: Desarquivar oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Desarquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Opportunity] | |
| summary: Desarquivar oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Desarquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /opportunity/undelete: | |
| post: | |
| tags: [Opportunity] | |
| summary: Restaurar oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Opportunity] | |
| summary: Restaurar oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /opportunity/destroy: | |
| post: | |
| tags: [Opportunity] | |
| summary: Destruir oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Opportunity] | |
| summary: Destruir oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /opportunity/unlock: | |
| post: | |
| tags: [Opportunity] | |
| summary: Desbloquear edição da oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } }, { in: query, name: token, required: false, schema: { type: string } } ] | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: boolean } } } } | |
| get: | |
| tags: [Opportunity] | |
| summary: Desbloquear edição da oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } }, { in: query, name: token, required: false, schema: { type: string } } ] | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: boolean } } } } | |
| /opportunity/renewLock: | |
| post: | |
| tags: [Opportunity] | |
| summary: Renovar lock de edição | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: { schema: { type: object, properties: { token: { type: string } }, required: [token] } } | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: boolean } } } } | |
| /opportunity/enqueuePCache: | |
| post: | |
| tags: [Opportunity] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| get: | |
| tags: [Opportunity] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| # Seals (traits; sem unlock) | |
| /seal/publish: | |
| post: | |
| tags: [Seals] | |
| summary: Publicar selo | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Publicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Seals] | |
| summary: Publicar selo | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Publicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /seal/unpublish: | |
| post: | |
| tags: [Seals] | |
| summary: Despublicar selo | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Despublicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Seals] | |
| summary: Despublicar selo | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Despublicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /seal/archive: | |
| post: | |
| tags: [Seals] | |
| summary: Arquivar selo | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Arquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Seals] | |
| summary: Arquivar selo | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Arquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /seal/unarchive: | |
| post: | |
| tags: [Seals] | |
| summary: Desarquivar selo | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Desarquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Seals] | |
| summary: Desarquivar selo | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Desarquivado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /seal/undelete: | |
| post: | |
| tags: [Seals] | |
| summary: Restaurar selo | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Seals] | |
| summary: Restaurar selo | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /seal/destroy: | |
| post: | |
| tags: [Seals] | |
| summary: Destruir selo | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Seals] | |
| summary: Destruir selo | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /seal/enqueuePCache: | |
| post: | |
| tags: [Seals] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| get: | |
| tags: [Seals] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| # User (traits: soft delete, entity actions) | |
| /user/undelete: | |
| post: | |
| tags: [User] | |
| summary: Restaurar usuário | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [User] | |
| summary: Restaurar usuário | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /user/destroy: | |
| post: | |
| tags: [User] | |
| summary: Destruir usuário | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [User] | |
| summary: Destruir usuário | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /user/enqueuePCache: | |
| post: | |
| tags: [User] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| get: | |
| tags: [User] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| # Role (traits: draft, soft delete) | |
| /role/publish: | |
| post: | |
| tags: [Role] | |
| summary: Publicar role | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Publicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Role] | |
| summary: Publicar role | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Publicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /role/unpublish: | |
| post: | |
| tags: [Role] | |
| summary: Despublicar role | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Despublicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Role] | |
| summary: Despublicar role | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Despublicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /role/undelete: | |
| post: | |
| tags: [Role] | |
| summary: Restaurar role | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Role] | |
| summary: Restaurar role | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /role/destroy: | |
| post: | |
| tags: [Role] | |
| summary: Destruir role | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Role] | |
| summary: Destruir role | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /role/enqueuePCache: | |
| post: | |
| tags: [Role] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| get: | |
| tags: [Role] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| # SystemRole (traits: draft, soft delete) | |
| /system-role/publish: | |
| post: | |
| tags: [SystemRole] | |
| summary: Publicar system-role | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Publicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [SystemRole] | |
| summary: Publicar system-role | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Publicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /system-role/unpublish: | |
| post: | |
| tags: [SystemRole] | |
| summary: Despublicar system-role | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Despublicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [SystemRole] | |
| summary: Despublicar system-role | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Despublicado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /system-role/undelete: | |
| post: | |
| tags: [SystemRole] | |
| summary: Restaurar system-role | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [SystemRole] | |
| summary: Restaurar system-role | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /system-role/destroy: | |
| post: | |
| tags: [SystemRole] | |
| summary: Destruir system-role | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [SystemRole] | |
| summary: Destruir system-role | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /system-role/enqueuePCache: | |
| post: | |
| tags: [SystemRole] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| get: | |
| tags: [SystemRole] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| # Apps (traits: soft delete) | |
| /app/undelete: | |
| post: | |
| tags: [Apps] | |
| summary: Restaurar app | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Apps] | |
| summary: Restaurar app | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Restaurado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /app/destroy: | |
| post: | |
| tags: [Apps] | |
| summary: Destruir app | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Apps] | |
| summary: Destruir app | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Destruído, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /app/enqueuePCache: | |
| post: | |
| tags: [Apps] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| get: | |
| tags: [Apps] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| get_agent: | |
| tags: [Agent] | |
| summary: Recriar cache de permissões (fila) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } }, { in: query, name: users, required: false, schema: { type: string } } ] | |
| responses: | |
| '200': { description: Enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| # Para brevidade, os mesmos endpoints (publish/unpublish/archive/unarchive/undelete/destroy/unlock/enqueuePCache) valem para: | |
| # Event (/event/*), Space (/space/*), Project (/project/*), Subsite (/subsite/* [sem unlock]), Opportunity (/opportunity/*), Seals (/seal/* [sem unlock]), | |
| # User (/user/undelete, /user/destroy, /user/enqueuePCache), Role (/role/* exceto unlock/archive? inclui publish/unpublish/undelete/destroy/enqueue), SystemRole (idem), Apps (/app/undelete,/app/destroy,/app/enqueuePCache). | |
| # Se desejar, posso expandir explicitamente todos agora — mantendo este comentário para sinalizar a paridade com Agent. | |
| # Opportunity (extras dos traits específicos) | |
| /opportunity/duplicate: | |
| post: | |
| tags: [Opportunity] | |
| summary: Duplicar oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Oportunidade duplicada, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Opportunity] | |
| summary: Duplicar oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Oportunidade duplicada, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /opportunity/generatemodel: | |
| post: | |
| tags: [Opportunity] | |
| summary: Gerar modelo de oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Modelo gerado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Opportunity] | |
| summary: Gerar modelo de oportunidade | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Modelo gerado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /opportunity/generateopportunity: | |
| post: | |
| tags: [Opportunity] | |
| summary: Gerar oportunidade a partir de modelo | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Oportunidade gerada, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| get: | |
| tags: [Opportunity] | |
| summary: Gerar oportunidade a partir de modelo | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Oportunidade gerada, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # Reports: CSV dinâmico via ALL_csvDynamicGraphic | |
| /reports/csvDynamicGraphic: | |
| get: | |
| tags: [Reports] | |
| summary: Exportar CSV de gráfico dinâmico | |
| parameters: [ { in: query, name: opportunity_id, required: true, schema: { type: integer } }, { in: query, name: graphicId, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: CSV, content: { text/csv: { schema: { type: string, format: binary } } } } | |
| post: | |
| tags: [Reports] | |
| summary: Exportar CSV de gráfico dinâmico | |
| parameters: [ { in: query, name: opportunity_id, required: true, schema: { type: integer } }, { in: query, name: graphicId, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: CSV, content: { text/csv: { schema: { type: string, format: binary } } } } | |
| /panel/setUrlCookie: | |
| post: | |
| tags: [Panel] | |
| summary: Definir cookie de URL (navegação do painel) | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /permissioncache/recreate: | |
| get: | |
| tags: [PermissionCache] | |
| summary: Recriar cache de permissões | |
| responses: | |
| '200': { description: OK, content: { text/html: { schema: { type: string } }, application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /file/index: | |
| post: | |
| tags: [File] | |
| summary: Upload de arquivo | |
| requestBody: | |
| required: true | |
| content: | |
| multipart/form-data: { schema: { type: object, additionalProperties: true } } | |
| responses: | |
| '200': { description: Arquivo criado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /file/privateFile: | |
| get: | |
| tags: [File] | |
| summary: Obter arquivo privado (se permitido) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Arquivo, content: { application/octet-stream: { schema: { type: string, format: binary } } } } | |
| /evaluationMethodConfiguration/reopenValuerEvaluations: | |
| post: | |
| tags: [EvaluationMethodConfiguration] | |
| summary: Reabrir avaliações de um avaliador | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /evaluationMethodConfiguration/disableValuer: | |
| post: | |
| tags: [EvaluationMethodConfiguration] | |
| summary: Desabilitar avaliador | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /evaluationMethodConfiguration/enableValuer: | |
| post: | |
| tags: [EvaluationMethodConfiguration] | |
| summary: Habilitar avaliador | |
| responses: | |
| '200': { description: OK, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # ========================= | |
| # Módulos: rotas não-API e utilitários | |
| # ========================= | |
| # ProjectMonitoring | |
| /projectReporting/reportingPhase: | |
| post: | |
| tags: [ProjectMonitoring] | |
| summary: Criar fases de coleta e avaliação | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: | |
| schema: { type: object, additionalProperties: true } | |
| responses: | |
| '200': { description: Fases criadas, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| '400': { description: Erros de validação, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # ThemeCustomizer | |
| /theme-customizer/index: | |
| get: | |
| tags: [ThemeCustomizer] | |
| summary: Página de customização de tema | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| # Search | |
| /search/index: | |
| get: | |
| tags: [Search] | |
| summary: Busca geral (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /search/agents: | |
| get: | |
| tags: [Search] | |
| summary: Busca de agentes (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /search/events: | |
| get: | |
| tags: [Search] | |
| summary: Busca de eventos (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /search/projects: | |
| get: | |
| tags: [Search] | |
| summary: Busca de projetos (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /search/opportunities: | |
| get: | |
| tags: [Search] | |
| summary: Busca de oportunidades (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /search/spaces: | |
| get: | |
| tags: [Search] | |
| summary: Busca de espaços (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| # Support | |
| /support/registration: | |
| get: | |
| tags: [Support] | |
| summary: Tela de atendimento à inscrição | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /support/getAgentsRelation: | |
| get: | |
| tags: [Support] | |
| summary: Agentes do grupo @support para a oportunidade | |
| parameters: [ { in: query, name: opportunityId, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Relações, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| /support/settings: | |
| get: | |
| tags: [Support] | |
| summary: Permissões de campos por agente (oportunidade) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Permissões por agente, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /support/list: | |
| get: | |
| tags: [Support] | |
| summary: Lista de itens de suporte (HTML) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /support/form: | |
| get: | |
| tags: [Support] | |
| summary: Formulário de suporte (HTML) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /support/supportConfig: | |
| get: | |
| tags: [Support] | |
| summary: Configuração de suporte (HTML) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /support/opportunityPermissions: | |
| put: | |
| tags: [Support] | |
| summary: Atualizar permissões de campos de um agente | |
| parameters: [ { in: query, name: opportunityId, required: true, schema: { type: integer } }, { in: query, name: agentId, required: true, schema: { type: integer } } ] | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: { schema: { type: object, additionalProperties: true } } | |
| application/x-www-form-urlencoded: { schema: { type: object, additionalProperties: true } } | |
| responses: | |
| '200': { description: Permissões atualizadas, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # Spreadsheets | |
| /spreadsheets/entities: | |
| post: | |
| tags: [Spreadsheets] | |
| summary: Geração de planilha de entidades (job) | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: { schema: { type: object, additionalProperties: true } } | |
| responses: | |
| '200': { description: Job enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| /spreadsheets/registrations: | |
| post: | |
| tags: [Spreadsheets] | |
| summary: Geração de planilha de inscrições (job) | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: { schema: { type: object, additionalProperties: true } } | |
| responses: | |
| '200': { description: Job enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| /spreadsheets/evaluations: | |
| post: | |
| tags: [Spreadsheets] | |
| summary: Geração de planilha de avaliações (job) | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: { schema: { type: object, additionalProperties: true } } | |
| responses: | |
| '200': { description: Job enfileirado, content: { application/json: { schema: { type: boolean } } } } | |
| /spreadsheets/filesByGroup: | |
| get: | |
| tags: [Spreadsheets] | |
| summary: Listar arquivos por grupo da entidade | |
| parameters: [ { in: query, name: entityType, required: true, schema: { type: string } }, { in: query, name: id, required: true, schema: { type: integer } }, { in: query, name: group, required: true, schema: { type: string } } ] | |
| responses: | |
| '200': { description: Arquivos, content: { application/json: { schema: { type: array, items: { type: object, additionalProperties: true } } } } } | |
| # Seals | |
| /seal/index: | |
| post: | |
| tags: [Seals] | |
| summary: Criar selo | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: { schema: { type: object, additionalProperties: true } } | |
| application/x-www-form-urlencoded: { schema: { type: object, additionalProperties: true } } | |
| responses: | |
| '200': { description: Selo criado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /seal/sealRelation: | |
| get: | |
| tags: [Seals] | |
| summary: Visualizar relação de selo (HTML) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /seal/printSealRelation: | |
| get: | |
| tags: [Seals] | |
| summary: Imprimir relação de selo (HTML) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /seal/create: | |
| get: | |
| tags: [Seals] | |
| summary: Página de criação de selo (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| # Reports | |
| /reports/agents: | |
| get: | |
| tags: [Reports] | |
| summary: Relatório de agentes (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /reports/spaces: | |
| get: | |
| tags: [Reports] | |
| summary: Relatório de espaços (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /reports/events: | |
| get: | |
| tags: [Reports] | |
| summary: Relatório de eventos (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /reports/projects: | |
| get: | |
| tags: [Reports] | |
| summary: Relatório de projetos (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /reports/opportunities: | |
| get: | |
| tags: [Reports] | |
| summary: Relatório de oportunidades (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /reports/files: | |
| get: | |
| tags: [Reports] | |
| summary: Relatório de arquivos (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /reports/registrations: | |
| get: | |
| tags: [Reports] | |
| summary: Relatório de inscrições (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /reports/printReports: | |
| get: | |
| tags: [Reports] | |
| summary: Página de impressão de relatórios (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /reports/exportRegistrationsByStatus: | |
| get: | |
| tags: [Reports] | |
| summary: Exportar CSV de inscrições por status | |
| responses: | |
| '200': { description: CSV, content: { text/csv: { schema: { type: string, format: binary } } } } | |
| /reports/registrationsByEvaluationStatusBar: | |
| get: | |
| tags: [Reports] | |
| summary: Exportar CSV de inscrições por faixas de avaliação | |
| responses: | |
| '200': { description: CSV, content: { text/csv: { schema: { type: string, format: binary } } } } | |
| /reports/exportRegistrationsByEvaluation: | |
| get: | |
| tags: [Reports] | |
| summary: Exportar CSV de inscrições por avaliação | |
| responses: | |
| '200': { description: CSV, content: { text/csv: { schema: { type: string, format: binary } } } } | |
| /reports/exportRegistrationsByEvaluationStatus: | |
| get: | |
| tags: [Reports] | |
| summary: Exportar CSV de inscrições por status de avaliação | |
| responses: | |
| '200': { description: CSV, content: { text/csv: { schema: { type: string, format: binary } } } } | |
| /reports/exportRegistrationsByCategory: | |
| get: | |
| tags: [Reports] | |
| summary: Exportar CSV por categoria | |
| responses: | |
| '200': { description: CSV, content: { text/csv: { schema: { type: string, format: binary } } } } | |
| /reports/exportRegistrationsDraftVsSent: | |
| get: | |
| tags: [Reports] | |
| summary: Exportar CSV de rascunhos vs enviadas | |
| responses: | |
| '200': { description: CSV, content: { text/csv: { schema: { type: string, format: binary } } } } | |
| /reports/registrationsByTime: | |
| get: | |
| tags: [Reports] | |
| summary: Exportar CSV por tempo | |
| responses: | |
| '200': { description: CSV, content: { text/csv: { schema: { type: string, format: binary } } } } | |
| /reports/getGraphic: | |
| get: | |
| tags: [Reports] | |
| summary: Dados de gráfico | |
| responses: | |
| '200': { description: Dados, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /reports/saveGraphic: | |
| post: | |
| tags: [Reports] | |
| summary: Salvar gráfico | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: { schema: { type: object, additionalProperties: true } } | |
| responses: | |
| '200': { description: Salvo, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /reports/dataOpportunityReport: | |
| get: | |
| tags: [Reports] | |
| summary: Dados para relatório por oportunidade | |
| responses: | |
| '200': { description: Dados, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # Panel | |
| /panel/index: | |
| get: | |
| tags: [Panel] | |
| summary: Painel geral (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /panel/agents: | |
| get: | |
| tags: [Panel] | |
| summary: Painel de agentes (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /panel/spaces: | |
| get: | |
| tags: [Panel] | |
| summary: Painel de espaços (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /panel/projects: | |
| get: | |
| tags: [Panel] | |
| summary: Painel de projetos (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /panel/events: | |
| get: | |
| tags: [Panel] | |
| summary: Painel de eventos (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /panel/terms: | |
| get: | |
| tags: [Panel] | |
| summary: Painel de termos (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| # OpportunityAccountability | |
| /accountability/registration: | |
| get: | |
| tags: [OpportunityAccountability] | |
| summary: Tela de prestação de contas (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /accountability/publishedResult: | |
| post: | |
| tags: [OpportunityAccountability] | |
| summary: Marcar publicação de resultado | |
| responses: | |
| '200': { description: Resultado marcado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /accountability/openField: | |
| post: | |
| tags: [OpportunityAccountability] | |
| summary: Abrir campo para edição | |
| responses: | |
| '200': { description: Campo aberto, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /accountability/closeField: | |
| post: | |
| tags: [OpportunityAccountability] | |
| summary: Fechar campo para edição | |
| responses: | |
| '200': { description: Campo fechado, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| # OpportunityWorkplan | |
| /workplan/index: | |
| get: | |
| tags: [OpportunityWorkplan] | |
| summary: Obter plano de trabalho (JSON) | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Dados do plano, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /workplan/save: | |
| post: | |
| tags: [OpportunityWorkplan] | |
| summary: Salvar plano de trabalho | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: { schema: { type: object, additionalProperties: true } } | |
| responses: | |
| '200': { description: Plano salvo, content: { application/json: { schema: { type: object, additionalProperties: true } } } } | |
| /workplan/goal: | |
| delete: | |
| tags: [OpportunityWorkplan] | |
| summary: Remover meta | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Removido, content: { application/json: { schema: { type: boolean } } } } | |
| /workplan/delivery: | |
| delete: | |
| tags: [OpportunityWorkplan] | |
| summary: Remover entrega | |
| parameters: [ { in: query, name: id, required: true, schema: { type: integer } } ] | |
| responses: | |
| '200': { description: Removido, content: { application/json: { schema: { type: boolean } } } } | |
| # FAQ | |
| /faq/index: | |
| get: | |
| tags: [FAQ] | |
| summary: Página de FAQ (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| # EventImporter | |
| /eventimporter/downloadExample: | |
| get: | |
| tags: [EventImporter] | |
| summary: Baixar arquivo de exemplo de importação | |
| responses: | |
| '200': { description: Arquivo, content: { application/octet-stream: { schema: { type: string, format: binary } } } } | |
| /eventimporter/processFile: | |
| get: | |
| tags: [EventImporter] | |
| summary: Processar arquivo de importação | |
| responses: | |
| '200': { description: Resultado do processamento, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| # LGPD | |
| /lgpd/view: | |
| get: | |
| tags: [LGPD] | |
| summary: Visualizar termo LGPD (HTML) | |
| parameters: [ { in: query, name: 0, required: false, schema: { type: string } } ] | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /lgpd/accept: | |
| get: | |
| tags: [LGPD] | |
| summary: Página de aceite LGPD (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| post: | |
| tags: [LGPD] | |
| summary: Aceitar termo LGPD | |
| responses: | |
| '200': { description: Redirecionamento/OK, content: { application/json: { schema: { type: object, additionalProperties: true } }, text/html: { schema: { type: string } } } } | |
| # Home | |
| /home/index: | |
| get: | |
| tags: [Home] | |
| summary: Página inicial (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| # BaseV1EmbedTools | |
| /embedtools/formbuilder: | |
| get: | |
| tags: [BaseV1EmbedTools] | |
| summary: Form Builder (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /embedtools/registrationmanager: | |
| get: | |
| tags: [BaseV1EmbedTools] | |
| summary: Gerenciador de inscrições (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /embedtools/supportbuilder: | |
| get: | |
| tags: [BaseV1EmbedTools] | |
| summary: Builder de suporte (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /embedtools/evaluationmanager: | |
| get: | |
| tags: [BaseV1EmbedTools] | |
| summary: Gerenciador de avaliação (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /embedtools/opportunityresults: | |
| get: | |
| tags: [BaseV1EmbedTools] | |
| summary: Resultados da oportunidade (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /embedtools/registrationform: | |
| get: | |
| tags: [BaseV1EmbedTools] | |
| summary: Formulário de inscrição (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /embedtools/reportmanager: | |
| get: | |
| tags: [BaseV1EmbedTools] | |
| summary: Gerenciador de relatórios (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /embedtools/evaluationforms: | |
| get: | |
| tags: [BaseV1EmbedTools] | |
| summary: Formulários de avaliação (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /embedtools/registrationview: | |
| get: | |
| tags: [BaseV1EmbedTools] | |
| summary: Visualização da inscrição (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /embedtools/valuers: | |
| get: | |
| tags: [BaseV1EmbedTools] | |
| summary: Lista de avaliadores (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /embedtools/registrationevaluationtionformview: | |
| get: | |
| tags: [BaseV1EmbedTools] | |
| summary: Visualização de avaliação (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /embedtools/fieldsvisible: | |
| get: | |
| tags: [BaseV1EmbedTools] | |
| summary: Campos visíveis (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /embedtools/evaluationlist: | |
| get: | |
| tags: [BaseV1EmbedTools] | |
| summary: Listas de avaliações (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /embedtools/sopportlist: | |
| get: | |
| tags: [BaseV1EmbedTools] | |
| summary: Lista de suporte (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /embedtools/supporteditview: | |
| get: | |
| tags: [BaseV1EmbedTools] | |
| summary: Edição de suporte (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /embedtools/registrationformpreview: | |
| get: | |
| tags: [BaseV1EmbedTools] | |
| summary: Pré-visualização do formulário de inscrição (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /embedtools/sidebarleftevaluations: | |
| get: | |
| tags: [BaseV1EmbedTools] | |
| summary: Sidebar de avaliações (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| /embedtools/registrationformedit: | |
| get: | |
| tags: [BaseV1EmbedTools] | |
| summary: Edição de campos editáveis (HTML) | |
| responses: | |
| '200': { description: HTML, content: { text/html: { schema: { type: string } } } } | |
| components: | |
| securitySchemes: | |
| bearerAuth: | |
| type: http | |
| scheme: bearer | |
| bearerFormat: JWT | |
| parameters: | |
| select: | |
| name: '@select' | |
| in: query | |
| description: Seleciona campos e relações (ex. id,name,owner.name) | |
| schema: { type: string } | |
| required: false | |
| order: | |
| name: '@order' | |
| in: query | |
| description: Ordenação. Ex. "name ASC, id DESC" | |
| schema: { type: string } | |
| required: false | |
| limit: | |
| name: '@limit' | |
| in: query | |
| description: Limite de registros por página | |
| schema: { type: integer, minimum: 1 } | |
| required: false | |
| page: | |
| name: '@page' | |
| in: query | |
| description: Número da página (com @limit) | |
| schema: { type: integer, minimum: 1 } | |
| required: false | |
| type: | |
| name: '@type' | |
| in: query | |
| description: Formato de saída (json, html, xml) | |
| schema: { type: string } | |
| required: false | |
| files: | |
| name: '@files' | |
| in: query | |
| description: Incluir grupos de arquivos (ex. (avatar.avatarSmall,header):name,url) | |
| schema: { type: string } | |
| required: false | |
| seals: | |
| name: '@seals' | |
| in: query | |
| description: Filtrar por selos aplicados (ids separados por vírgula) | |
| schema: { type: string } | |
| required: false | |
| keyword: | |
| name: '@keyword' | |
| in: query | |
| description: Palavra-chave de busca textual | |
| schema: { type: string } | |
| required: false | |
| count: | |
| name: '@count' | |
| in: query | |
| description: Quando presente, retorna apenas o total de itens (altera o formato da resposta). | |
| schema: { type: integer, enum: [1] } | |
| required: false | |
| responses: | |
| Html200: | |
| description: HTML | |
| content: | |
| text/html: | |
| schema: { type: string } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment