2753 lines
62 KiB
YAML
2753 lines
62 KiB
YAML
basePath: /
|
|
definitions:
|
|
agenda.ContactInfo:
|
|
properties:
|
|
name:
|
|
type: string
|
|
phone:
|
|
type: string
|
|
role:
|
|
type: string
|
|
type: object
|
|
agenda.CreateAgendaRequest:
|
|
properties:
|
|
cine_faltante:
|
|
type: integer
|
|
contatos:
|
|
items:
|
|
$ref: '#/definitions/agenda.ContactInfo'
|
|
type: array
|
|
data_evento:
|
|
type: string
|
|
endereco:
|
|
type: string
|
|
fot_id:
|
|
type: string
|
|
foto_faltante:
|
|
type: integer
|
|
horario:
|
|
type: string
|
|
local_evento:
|
|
type: string
|
|
logistica_observacoes:
|
|
type: string
|
|
observacoes_evento:
|
|
type: string
|
|
pre_venda:
|
|
type: boolean
|
|
qtd_cinegrafistas:
|
|
type: integer
|
|
qtd_estudios:
|
|
type: integer
|
|
qtd_formandos:
|
|
type: integer
|
|
qtd_fotografos:
|
|
type: integer
|
|
qtd_plataforma_360:
|
|
type: integer
|
|
qtd_ponto_decorado:
|
|
type: integer
|
|
qtd_ponto_foto:
|
|
type: integer
|
|
qtd_ponto_id:
|
|
type: integer
|
|
qtd_pontos_led:
|
|
type: integer
|
|
qtd_recepcionistas:
|
|
type: integer
|
|
recep_faltante:
|
|
type: integer
|
|
status_profissionais:
|
|
type: string
|
|
tipo_evento_id:
|
|
type: string
|
|
type: object
|
|
agenda.FinancialStatementResponse:
|
|
properties:
|
|
pagamentos_confirmados:
|
|
type: number
|
|
pagamentos_pendentes:
|
|
type: number
|
|
total_recebido:
|
|
type: number
|
|
transactions:
|
|
items:
|
|
$ref: '#/definitions/agenda.FinancialTransactionDTO'
|
|
type: array
|
|
type: object
|
|
agenda.FinancialTransactionDTO:
|
|
properties:
|
|
data_evento:
|
|
type: string
|
|
data_pagamento:
|
|
type: string
|
|
descricao_extra:
|
|
type: string
|
|
empresa:
|
|
type: string
|
|
id:
|
|
type: string
|
|
nome_evento:
|
|
description: Fot + Tipo
|
|
type: string
|
|
status:
|
|
type: string
|
|
tipo_evento:
|
|
type: string
|
|
valor_extra:
|
|
type: number
|
|
valor_free:
|
|
type: number
|
|
valor_recebido:
|
|
type: number
|
|
type: object
|
|
anos_formaturas.AnoFormaturaResponse:
|
|
properties:
|
|
ano_semestre:
|
|
type: string
|
|
id:
|
|
type: string
|
|
type: object
|
|
anos_formaturas.CreateAnoFormaturaRequest:
|
|
properties:
|
|
ano_semestre:
|
|
example: "2029.1"
|
|
type: string
|
|
required:
|
|
- ano_semestre
|
|
type: object
|
|
auth.loginRequest:
|
|
properties:
|
|
email:
|
|
example: admin@photum.com
|
|
type: string
|
|
senha:
|
|
example: "123456"
|
|
minLength: 6
|
|
type: string
|
|
required:
|
|
- email
|
|
- senha
|
|
type: object
|
|
auth.loginResponse:
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
expires_at:
|
|
type: string
|
|
profissional: {}
|
|
user:
|
|
$ref: '#/definitions/auth.userResponse'
|
|
type: object
|
|
auth.registerRequest:
|
|
properties:
|
|
bairro:
|
|
type: string
|
|
cep:
|
|
type: string
|
|
cidade:
|
|
type: string
|
|
complemento:
|
|
type: string
|
|
cpf_cnpj:
|
|
type: string
|
|
email:
|
|
type: string
|
|
empresa_id:
|
|
type: string
|
|
endereco:
|
|
type: string
|
|
estado:
|
|
type: string
|
|
nome:
|
|
type: string
|
|
numero:
|
|
type: string
|
|
professional_type:
|
|
type: string
|
|
regiao:
|
|
type: string
|
|
role:
|
|
type: string
|
|
senha:
|
|
minLength: 6
|
|
type: string
|
|
telefone:
|
|
type: string
|
|
required:
|
|
- email
|
|
- nome
|
|
- role
|
|
- senha
|
|
type: object
|
|
auth.updateRoleRequest:
|
|
properties:
|
|
role:
|
|
type: string
|
|
required:
|
|
- role
|
|
type: object
|
|
auth.uploadURLRequest:
|
|
properties:
|
|
content_type:
|
|
type: string
|
|
filename:
|
|
type: string
|
|
required:
|
|
- content_type
|
|
- filename
|
|
type: object
|
|
auth.userResponse:
|
|
properties:
|
|
allowed_regions:
|
|
items:
|
|
type: string
|
|
type: array
|
|
ativo:
|
|
type: boolean
|
|
bairro:
|
|
type: string
|
|
cep:
|
|
type: string
|
|
cidade:
|
|
type: string
|
|
company_id:
|
|
type: string
|
|
company_name:
|
|
type: string
|
|
complemento:
|
|
type: string
|
|
cpf_cnpj:
|
|
type: string
|
|
email:
|
|
type: string
|
|
endereco:
|
|
type: string
|
|
estado:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
numero:
|
|
type: string
|
|
phone:
|
|
type: string
|
|
role:
|
|
type: string
|
|
type: object
|
|
availability.SetAvailabilityInput:
|
|
properties:
|
|
date:
|
|
description: YYYY-MM-DD
|
|
type: string
|
|
status:
|
|
description: DISPONIVEL, INDISPONIVEL
|
|
type: string
|
|
type: object
|
|
cadastro_fot.CadastroFotResponse:
|
|
properties:
|
|
ano_formatura_id:
|
|
type: string
|
|
ano_formatura_label:
|
|
type: string
|
|
cidade:
|
|
type: string
|
|
curso_id:
|
|
type: string
|
|
curso_nome:
|
|
type: string
|
|
empresa_id:
|
|
type: string
|
|
empresa_nome:
|
|
type: string
|
|
estado:
|
|
type: string
|
|
finalizada:
|
|
type: boolean
|
|
fot:
|
|
type: string
|
|
gastos_captacao:
|
|
type: number
|
|
id:
|
|
type: string
|
|
instituicao:
|
|
type: string
|
|
observacoes:
|
|
type: string
|
|
pre_venda:
|
|
type: boolean
|
|
type: object
|
|
cadastro_fot.CreateInput:
|
|
properties:
|
|
ano_formatura_id:
|
|
type: string
|
|
cidade:
|
|
type: string
|
|
curso_id:
|
|
type: string
|
|
empresa_id:
|
|
type: string
|
|
estado:
|
|
type: string
|
|
fot:
|
|
type: string
|
|
gastos_captacao:
|
|
type: number
|
|
instituicao:
|
|
type: string
|
|
observacoes:
|
|
type: string
|
|
pre_venda:
|
|
type: boolean
|
|
type: object
|
|
cadastro_fot.ImportInput:
|
|
properties:
|
|
ano_formatura_label:
|
|
type: string
|
|
cidade:
|
|
type: string
|
|
curso_nome:
|
|
type: string
|
|
empresa_nome:
|
|
type: string
|
|
estado:
|
|
type: string
|
|
fot:
|
|
type: string
|
|
gastos_captacao:
|
|
type: number
|
|
instituicao:
|
|
type: string
|
|
observacoes:
|
|
type: string
|
|
pre_venda:
|
|
type: boolean
|
|
type: object
|
|
cadastro_fot.ImportResult:
|
|
properties:
|
|
errors:
|
|
items:
|
|
type: string
|
|
type: array
|
|
successCount:
|
|
type: integer
|
|
type: object
|
|
codigos.CreateCodigoInput:
|
|
properties:
|
|
codigo:
|
|
type: string
|
|
descricao:
|
|
type: string
|
|
empresa_id:
|
|
type: string
|
|
regiao:
|
|
description: From context/header
|
|
type: string
|
|
validade_dias:
|
|
type: integer
|
|
type: object
|
|
cursos.CreateCursoRequest:
|
|
properties:
|
|
nome:
|
|
type: string
|
|
required:
|
|
- nome
|
|
type: object
|
|
cursos.CursoResponse:
|
|
properties:
|
|
id:
|
|
type: string
|
|
nome:
|
|
type: string
|
|
type: object
|
|
empresas.CreateEmpresaRequest:
|
|
properties:
|
|
nome:
|
|
type: string
|
|
required:
|
|
- nome
|
|
type: object
|
|
empresas.EmpresaResponse:
|
|
properties:
|
|
id:
|
|
type: string
|
|
nome:
|
|
type: string
|
|
type: object
|
|
escalas.CreateEscalaInput:
|
|
properties:
|
|
agenda_id:
|
|
type: string
|
|
data_hora_fim:
|
|
description: RFC3339
|
|
type: string
|
|
data_hora_inicio:
|
|
description: RFC3339
|
|
type: string
|
|
funcao_especifica:
|
|
type: string
|
|
profissional_id:
|
|
type: string
|
|
type: object
|
|
escalas.UpdateEscalaInput:
|
|
properties:
|
|
data_hora_fim:
|
|
type: string
|
|
data_hora_inicio:
|
|
type: string
|
|
funcao_especifica:
|
|
type: string
|
|
profissional_id:
|
|
type: string
|
|
type: object
|
|
funcoes.CreateFuncaoRequest:
|
|
properties:
|
|
nome:
|
|
type: string
|
|
required:
|
|
- nome
|
|
type: object
|
|
funcoes.FuncaoResponse:
|
|
properties:
|
|
id:
|
|
type: string
|
|
nome:
|
|
type: string
|
|
type: object
|
|
profissionais.CreateProfissionalInput:
|
|
properties:
|
|
agencia:
|
|
type: string
|
|
avatar_url:
|
|
type: string
|
|
bairro:
|
|
type: string
|
|
banco:
|
|
type: string
|
|
carro_disponivel:
|
|
type: boolean
|
|
cep:
|
|
type: string
|
|
cidade:
|
|
type: string
|
|
complemento:
|
|
type: string
|
|
conta:
|
|
type: string
|
|
conta_pix:
|
|
type: string
|
|
cpf_cnpj_titular:
|
|
type: string
|
|
desempenho_evento:
|
|
type: integer
|
|
disp_horario:
|
|
type: integer
|
|
educacao_simpatia:
|
|
type: integer
|
|
email:
|
|
type: string
|
|
endereco:
|
|
type: string
|
|
equipamentos:
|
|
type: string
|
|
extra_por_equipamento:
|
|
type: boolean
|
|
funcao_profissional_id:
|
|
type: string
|
|
funcoes_ids:
|
|
description: New field
|
|
items:
|
|
type: string
|
|
type: array
|
|
media:
|
|
type: number
|
|
nome:
|
|
type: string
|
|
numero:
|
|
type: string
|
|
observacao:
|
|
type: string
|
|
qtd_estudio:
|
|
type: integer
|
|
qual_tec:
|
|
type: integer
|
|
regiao:
|
|
description: 'Optional: Override region'
|
|
type: string
|
|
tabela_free:
|
|
type: string
|
|
target_user_id:
|
|
description: 'Optional: For admin creation'
|
|
type: string
|
|
tem_estudio:
|
|
type: boolean
|
|
tipo_cartao:
|
|
type: string
|
|
uf:
|
|
type: string
|
|
whatsapp:
|
|
type: string
|
|
type: object
|
|
profissionais.ImportStats:
|
|
properties:
|
|
created:
|
|
type: integer
|
|
errors:
|
|
type: integer
|
|
updated:
|
|
type: integer
|
|
type: object
|
|
profissionais.ProfissionalResponse:
|
|
properties:
|
|
agencia:
|
|
type: string
|
|
avatar_url:
|
|
type: string
|
|
bairro:
|
|
type: string
|
|
banco:
|
|
type: string
|
|
carro_disponivel:
|
|
type: boolean
|
|
cep:
|
|
type: string
|
|
cidade:
|
|
type: string
|
|
complemento:
|
|
type: string
|
|
conta:
|
|
type: string
|
|
conta_pix:
|
|
type: string
|
|
cpf_cnpj_titular:
|
|
type: string
|
|
desempenho_evento:
|
|
type: integer
|
|
disp_horario:
|
|
type: integer
|
|
educacao_simpatia:
|
|
type: integer
|
|
email:
|
|
type: string
|
|
endereco:
|
|
type: string
|
|
equipamentos:
|
|
type: string
|
|
extra_por_equipamento:
|
|
type: boolean
|
|
funcao_profissional:
|
|
description: Deprecated single name (optional)
|
|
type: string
|
|
funcao_profissional_id:
|
|
type: string
|
|
functions:
|
|
description: JSON array
|
|
items:
|
|
type: object
|
|
type: array
|
|
id:
|
|
type: string
|
|
media:
|
|
type: number
|
|
nome:
|
|
type: string
|
|
numero:
|
|
type: string
|
|
observacao:
|
|
type: string
|
|
qtd_estudio:
|
|
type: integer
|
|
qual_tec:
|
|
type: integer
|
|
tabela_free:
|
|
type: string
|
|
tem_estudio:
|
|
type: boolean
|
|
tipo_cartao:
|
|
type: string
|
|
uf:
|
|
type: string
|
|
usuario_id:
|
|
type: string
|
|
whatsapp:
|
|
type: string
|
|
type: object
|
|
profissionais.UpdateProfissionalInput:
|
|
properties:
|
|
agencia:
|
|
type: string
|
|
avatar_url:
|
|
type: string
|
|
bairro:
|
|
type: string
|
|
banco:
|
|
type: string
|
|
carro_disponivel:
|
|
type: boolean
|
|
cep:
|
|
type: string
|
|
cidade:
|
|
type: string
|
|
complemento:
|
|
type: string
|
|
conta:
|
|
type: string
|
|
conta_pix:
|
|
type: string
|
|
cpf_cnpj_titular:
|
|
type: string
|
|
desempenho_evento:
|
|
type: integer
|
|
disp_horario:
|
|
type: integer
|
|
educacao_simpatia:
|
|
type: integer
|
|
email:
|
|
type: string
|
|
endereco:
|
|
type: string
|
|
equipamentos:
|
|
type: string
|
|
extra_por_equipamento:
|
|
type: boolean
|
|
funcao_profissional_id:
|
|
type: string
|
|
funcoes_ids:
|
|
items:
|
|
type: string
|
|
type: array
|
|
media:
|
|
type: number
|
|
nome:
|
|
type: string
|
|
numero:
|
|
type: string
|
|
observacao:
|
|
type: string
|
|
qtd_estudio:
|
|
type: integer
|
|
qual_tec:
|
|
type: integer
|
|
senha:
|
|
description: New field for password update
|
|
type: string
|
|
tabela_free:
|
|
type: string
|
|
tem_estudio:
|
|
type: boolean
|
|
tipo_cartao:
|
|
type: string
|
|
uf:
|
|
type: string
|
|
whatsapp:
|
|
type: string
|
|
type: object
|
|
tipos_eventos.CreateEventoRequest:
|
|
properties:
|
|
nome:
|
|
type: string
|
|
required:
|
|
- nome
|
|
type: object
|
|
tipos_eventos.EventoResponse:
|
|
properties:
|
|
id:
|
|
type: string
|
|
nome:
|
|
type: string
|
|
precos:
|
|
items:
|
|
$ref: '#/definitions/tipos_eventos.PrecoResponse'
|
|
type: array
|
|
type: object
|
|
tipos_eventos.PrecoResponse:
|
|
properties:
|
|
funcao_nome:
|
|
type: string
|
|
funcao_profissional_id:
|
|
type: string
|
|
id:
|
|
type: string
|
|
tipo_evento_id:
|
|
type: string
|
|
valor:
|
|
type: number
|
|
type: object
|
|
tipos_eventos.PriceInput:
|
|
properties:
|
|
funcao_profissional_id:
|
|
type: string
|
|
tipo_evento_id:
|
|
type: string
|
|
valor:
|
|
type: number
|
|
type: object
|
|
tipos_servicos.CreateTipoServicoRequest:
|
|
properties:
|
|
nome:
|
|
type: string
|
|
required:
|
|
- nome
|
|
type: object
|
|
tipos_servicos.TipoServicoResponse:
|
|
properties:
|
|
id:
|
|
type: string
|
|
nome:
|
|
type: string
|
|
type: object
|
|
host: localhost:8080
|
|
info:
|
|
contact:
|
|
email: support@swagger.io
|
|
name: API Support
|
|
url: http://www.swagger.io/support
|
|
description: Backend authentication service for Photum.
|
|
license:
|
|
name: Apache 2.0
|
|
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
|
termsOfService: http://swagger.io/terms/
|
|
title: Photum Backend API
|
|
version: "1.0"
|
|
paths:
|
|
/api/admin/users:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: List all users (Admin only)
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
additionalProperties: true
|
|
type: object
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: List all users
|
|
tags:
|
|
- admin
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Create a new user with specific role (Admin only)
|
|
parameters:
|
|
- description: Create User Request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/auth.registerRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Create user (Admin)
|
|
tags:
|
|
- admin
|
|
/api/admin/users/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Delete user (Admin only)
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Delete user
|
|
tags:
|
|
- admin
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get user details by ID (Admin only)
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties: true
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Get user by ID
|
|
tags:
|
|
- admin
|
|
/api/admin/users/{id}/approve:
|
|
patch:
|
|
consumes:
|
|
- application/json
|
|
description: Set user ativo=true
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Approve user
|
|
tags:
|
|
- admin
|
|
/api/admin/users/{id}/role:
|
|
patch:
|
|
consumes:
|
|
- application/json
|
|
description: Update user role (Admin only)
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Update Role Request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/auth.updateRoleRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Update user role
|
|
tags:
|
|
- admin
|
|
/api/admin/users/pending:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: List users with ativo=false
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
additionalProperties: true
|
|
type: object
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: List pending users
|
|
tags:
|
|
- admin
|
|
/api/agenda:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: List all agenda events with details
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
additionalProperties: true
|
|
type: object
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: List all agenda events
|
|
tags:
|
|
- agenda
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Create a new agenda event
|
|
parameters:
|
|
- description: Create Agenda Request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/agenda.CreateAgendaRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
additionalProperties: true
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Create a new agenda event
|
|
tags:
|
|
- agenda
|
|
/api/agenda/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Delete agenda event by ID
|
|
parameters:
|
|
- description: Agenda ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Delete agenda event
|
|
tags:
|
|
- agenda
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get agenda event details by ID
|
|
parameters:
|
|
- description: Agenda ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties: true
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Get agenda event by ID
|
|
tags:
|
|
- agenda
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update agenda event by ID
|
|
parameters:
|
|
- description: Agenda ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Update Agenda Request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/agenda.CreateAgendaRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties: true
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Update agenda event
|
|
tags:
|
|
- agenda
|
|
/api/agenda/{id}/available:
|
|
get:
|
|
responses: {}
|
|
summary: List available professionals for agenda date
|
|
tags:
|
|
- agenda
|
|
/api/agenda/{id}/notify-logistics:
|
|
post:
|
|
responses: {}
|
|
summary: Send logistics notification to all professionals
|
|
tags:
|
|
- agenda
|
|
/api/agenda/{id}/professionals:
|
|
post:
|
|
responses: {}
|
|
summary: Assign professional to agenda
|
|
tags:
|
|
- agenda
|
|
/api/agenda/{id}/professionals/{profId}:
|
|
delete:
|
|
responses: {}
|
|
summary: Remove professional from agenda
|
|
tags:
|
|
- agenda
|
|
/api/agenda/{id}/professionals/{profId}/coordinator:
|
|
put:
|
|
responses: {}
|
|
summary: Set professional as coordinator
|
|
tags:
|
|
- agenda
|
|
/api/agenda/{id}/professionals/{profId}/position:
|
|
patch:
|
|
responses: {}
|
|
summary: Update professional position in agenda
|
|
tags:
|
|
- agenda
|
|
/api/agenda/{id}/professionals/{profId}/status:
|
|
patch:
|
|
responses: {}
|
|
summary: Update professional assignment status
|
|
tags:
|
|
- agenda
|
|
/api/agenda/{id}/status:
|
|
patch:
|
|
responses: {}
|
|
summary: Update agenda status
|
|
tags:
|
|
- agenda
|
|
/api/anos-formaturas:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/anos_formaturas.AnoFormaturaResponse'
|
|
type: array
|
|
security:
|
|
- BearerAuth: []
|
|
summary: List all graduation years
|
|
tags:
|
|
- anos_formaturas
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Ano Semestre
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/anos_formaturas.CreateAnoFormaturaRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/anos_formaturas.AnoFormaturaResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"409":
|
|
description: Conflict
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Create a new graduation year
|
|
tags:
|
|
- anos_formaturas
|
|
/api/anos-formaturas/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Delete a graduation year
|
|
tags:
|
|
- anos_formaturas
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Ano Semestre
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/anos_formaturas.CreateAnoFormaturaRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/anos_formaturas.AnoFormaturaResponse'
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Update a graduation year
|
|
tags:
|
|
- anos_formaturas
|
|
/api/cadastro-fot:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Filter by Company ID
|
|
in: query
|
|
name: empresa_id
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/cadastro_fot.CadastroFotResponse'
|
|
type: array
|
|
security:
|
|
- BearerAuth: []
|
|
summary: List all FOT records
|
|
tags:
|
|
- cadastro_fot
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: FOT Data
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/cadastro_fot.CreateInput'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/cadastro_fot.CadastroFotResponse'
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Create a new FOT record
|
|
tags:
|
|
- cadastro_fot
|
|
/api/cadastro-fot/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Delete FOT record
|
|
tags:
|
|
- cadastro_fot
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/cadastro_fot.CadastroFotResponse'
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Get FOT record by ID
|
|
tags:
|
|
- cadastro_fot
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Data
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/cadastro_fot.CreateInput'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/cadastro_fot.CadastroFotResponse'
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Update FOT record
|
|
tags:
|
|
- cadastro_fot
|
|
/api/cadastro-fot/{id}/finalize:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Status
|
|
in: body
|
|
name: status
|
|
required: true
|
|
schema:
|
|
properties:
|
|
finalizada:
|
|
type: boolean
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/cadastro_fot.CadastroFotResponse'
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Toggle FOT finalized status
|
|
tags:
|
|
- cadastro_fot
|
|
/api/codigos-acesso:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
additionalProperties: true
|
|
type: object
|
|
type: array
|
|
summary: List Access Codes
|
|
tags:
|
|
- codigos
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Req
|
|
in: body
|
|
name: req
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/codigos.CreateCodigoInput'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
additionalProperties: true
|
|
type: object
|
|
summary: Create Access Code
|
|
tags:
|
|
- codigos
|
|
/api/codigos-acesso/{id}:
|
|
delete:
|
|
parameters:
|
|
- description: ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Delete Access Code
|
|
tags:
|
|
- codigos
|
|
/api/cursos:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/cursos.CursoResponse'
|
|
type: array
|
|
security:
|
|
- BearerAuth: []
|
|
summary: List all courses
|
|
tags:
|
|
- cursos
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Curso Name
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/cursos.CreateCursoRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/cursos.CursoResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"409":
|
|
description: Conflict
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Create a new course
|
|
tags:
|
|
- cursos
|
|
/api/cursos/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Curso ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Delete a course
|
|
tags:
|
|
- cursos
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Curso ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Curso Name
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/cursos.CreateCursoRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/cursos.CursoResponse'
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Update a course
|
|
tags:
|
|
- cursos
|
|
/api/empresas:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/empresas.EmpresaResponse'
|
|
type: array
|
|
security:
|
|
- BearerAuth: []
|
|
summary: List all companies
|
|
tags:
|
|
- empresas
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Empresa Name
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/empresas.CreateEmpresaRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/empresas.EmpresaResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"409":
|
|
description: Conflict
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Create a new company
|
|
tags:
|
|
- empresas
|
|
/api/empresas/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Empresa ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Delete a company
|
|
tags:
|
|
- empresas
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Empresa ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Empresa Name
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/empresas.CreateEmpresaRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/empresas.EmpresaResponse'
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Update a company
|
|
tags:
|
|
- empresas
|
|
/api/escalas:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get all schedule entries for a specific agenda_id
|
|
parameters:
|
|
- description: Agenda ID
|
|
in: query
|
|
name: agenda_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
additionalProperties: true
|
|
type: object
|
|
type: array
|
|
summary: List schedules for an event
|
|
tags:
|
|
- escalas
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Assign a professional to a time block in an event
|
|
parameters:
|
|
- description: Create Escala
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/escalas.CreateEscalaInput'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Create a schedule entry
|
|
tags:
|
|
- escalas
|
|
/api/escalas/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Remove a professional from a time block
|
|
parameters:
|
|
- description: Escala ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Delete a schedule entry
|
|
tags:
|
|
- escalas
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update time or professional for a slot
|
|
parameters:
|
|
- description: Escala ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Update Escala
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/escalas.UpdateEscalaInput'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Update a schedule entry
|
|
tags:
|
|
- escalas
|
|
/api/funcoes:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: List all professional functions
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/funcoes.FuncaoResponse'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: List functions
|
|
tags:
|
|
- funcoes
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Create a new professional function
|
|
parameters:
|
|
- description: Create Function Request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/funcoes.CreateFuncaoRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/funcoes.FuncaoResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"409":
|
|
description: Conflict
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Create a new function
|
|
tags:
|
|
- funcoes
|
|
/api/funcoes/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Delete a professional function by ID
|
|
parameters:
|
|
- description: Function ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Delete function
|
|
tags:
|
|
- funcoes
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update a professional function by ID
|
|
parameters:
|
|
- description: Function ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Update Function Request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/funcoes.CreateFuncaoRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/funcoes.FuncaoResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"409":
|
|
description: Conflict
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Update function
|
|
tags:
|
|
- funcoes
|
|
/api/import/agenda:
|
|
post:
|
|
responses: {}
|
|
summary: Import agenda events from Excel/JSON
|
|
tags:
|
|
- agenda
|
|
/api/import/fot:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: List of FOTs
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/cadastro_fot.ImportInput'
|
|
type: array
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/cadastro_fot.ImportResult'
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Import FOT data
|
|
tags:
|
|
- cadastro_fot
|
|
/api/me:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get current authenticated user
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/auth.loginResponse'
|
|
summary: Get current user
|
|
tags:
|
|
- auth
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update profile information (Name, Phone, Address). Currently for
|
|
EVENT_OWNER.
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Update current user profile
|
|
tags:
|
|
- auth
|
|
/api/professionals/me/financial-statement:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get financial statement for the logged-in professional
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/agenda.FinancialStatementResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Get professional financial statement
|
|
tags:
|
|
- agenda
|
|
/api/profissionais:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: List all profissionais
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/profissionais.ProfissionalResponse'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: List profissionais
|
|
tags:
|
|
- profissionais
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Create a new profissional record
|
|
parameters:
|
|
- description: Create Profissional Request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/profissionais.CreateProfissionalInput'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/profissionais.ProfissionalResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Create a new profissional
|
|
tags:
|
|
- profissionais
|
|
/api/profissionais/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Delete a profissional by ID
|
|
parameters:
|
|
- description: Profissional ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Delete profissional
|
|
tags:
|
|
- profissionais
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get a profissional by ID
|
|
parameters:
|
|
- description: Profissional ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/profissionais.ProfissionalResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Get profissional by ID
|
|
tags:
|
|
- profissionais
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update a profissional by ID
|
|
parameters:
|
|
- description: Profissional ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Update Profissional Request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/profissionais.UpdateProfissionalInput'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/profissionais.ProfissionalResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Update profissional
|
|
tags:
|
|
- profissionais
|
|
/api/profissionais/import:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Import professionals (Upsert by CPF)
|
|
parameters:
|
|
- description: List of Professionals
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/profissionais.CreateProfissionalInput'
|
|
type: array
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/profissionais.ImportStats'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Import professionals from properties
|
|
tags:
|
|
- profissionais
|
|
/api/profissionais/me:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get the profissional profile associated with the current user
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/profissionais.ProfissionalResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Get current authenticated profissional
|
|
tags:
|
|
- profissionais
|
|
/api/public/codigos-acesso/verificar:
|
|
get:
|
|
parameters:
|
|
- description: Code
|
|
in: query
|
|
name: code
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties:
|
|
type: boolean
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Verify Access Code
|
|
tags:
|
|
- codigos
|
|
/api/public/profissionais/check:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Check existence and claim status
|
|
parameters:
|
|
- description: CPF/CNPJ
|
|
in: query
|
|
name: cpf
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties: true
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Check if professional exists by CPF
|
|
tags:
|
|
- profissionais
|
|
/api/tipos-eventos:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/tipos_eventos.EventoResponse'
|
|
type: array
|
|
security:
|
|
- BearerAuth: []
|
|
summary: List all event types
|
|
tags:
|
|
- tipos_eventos
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Nome
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/tipos_eventos.CreateEventoRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/tipos_eventos.EventoResponse'
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Create a new event type
|
|
tags:
|
|
- tipos_eventos
|
|
/api/tipos-eventos/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Event ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Delete an event type
|
|
tags:
|
|
- tipos_eventos
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Event ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Event Data
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/tipos_eventos.CreateEventoRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/tipos_eventos.EventoResponse'
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Update an event type
|
|
tags:
|
|
- tipos_eventos
|
|
/api/tipos-eventos/{id}/precos:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Event ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/tipos_eventos.PrecoResponse'
|
|
type: array
|
|
security:
|
|
- BearerAuth: []
|
|
summary: List prices for an event
|
|
tags:
|
|
- tipos_eventos
|
|
/api/tipos-eventos/precos:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Price Input
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/tipos_eventos.PriceInput'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Set price for an event function
|
|
tags:
|
|
- tipos_eventos
|
|
/api/tipos-servicos:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/tipos_servicos.TipoServicoResponse'
|
|
type: array
|
|
security:
|
|
- BearerAuth: []
|
|
summary: List all service types
|
|
tags:
|
|
- tipos_servicos
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Nome
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/tipos_servicos.CreateTipoServicoRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/tipos_servicos.TipoServicoResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"409":
|
|
description: Conflict
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Create a new service type
|
|
tags:
|
|
- tipos_servicos
|
|
/api/tipos-servicos/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Delete a service type
|
|
tags:
|
|
- tipos_servicos
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Nome
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/tipos_servicos.CreateTipoServicoRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/tipos_servicos.TipoServicoResponse'
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Update a service type
|
|
tags:
|
|
- tipos_servicos
|
|
/auth/login:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Login with email and password
|
|
parameters:
|
|
- description: Login Request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/auth.loginRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/auth.loginResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Login
|
|
tags:
|
|
- auth
|
|
/auth/logout:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Revoke refresh token and clear cookie
|
|
parameters:
|
|
- description: Refresh Token
|
|
in: body
|
|
name: refresh_token
|
|
schema:
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Logout user
|
|
tags:
|
|
- auth
|
|
/auth/refresh:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Get a new access token using a valid refresh token
|
|
parameters:
|
|
- description: Refresh Token
|
|
in: body
|
|
name: refresh_token
|
|
schema:
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties: true
|
|
type: object
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Refresh access token
|
|
tags:
|
|
- auth
|
|
/auth/register:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Register a new user with email, password, name, phone, role and
|
|
professional type
|
|
parameters:
|
|
- description: Register Request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/auth.registerRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Register a new user
|
|
tags:
|
|
- auth
|
|
/auth/upload-url:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Get a pre-signed URL to upload a file directly to S3/Civo
|
|
parameters:
|
|
- description: Upload URL Request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/auth.uploadURLRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Get S3 Presigned URL for upload
|
|
tags:
|
|
- auth
|
|
/availability:
|
|
get:
|
|
parameters:
|
|
- description: Start Date
|
|
in: query
|
|
name: start
|
|
required: true
|
|
type: string
|
|
- description: End Date
|
|
in: query
|
|
name: end
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
additionalProperties: true
|
|
type: object
|
|
type: array
|
|
summary: List my availability for a month with ?start=YYYY-MM-DD&end=YYYY-MM-DD
|
|
tags:
|
|
- availability
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Availability Input
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/availability.SetAvailabilityInput'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Set availability for a date
|
|
tags:
|
|
- availability
|
|
securityDefinitions:
|
|
BearerAuth:
|
|
in: header
|
|
name: Authorization
|
|
type: apiKey
|
|
swagger: "2.0"
|
|
tags:
|
|
- description: Authentication related operations
|
|
name: auth
|
|
- description: Administration operations
|
|
name: admin
|