photum/backend/docs/swagger.yaml

2340 lines
53 KiB
YAML

basePath: /
definitions:
agenda.CreateAgendaRequest:
properties:
cine_faltante:
type: integer
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
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:
email:
type: string
empresa_id:
type: string
nome:
type: string
role:
type: string
senha:
minLength: 6
type: string
telefone:
type: string
tipo_profissional:
description: New field
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:
ativo:
type: boolean
company_id:
type: string
company_name:
type: string
email:
type: string
id:
type: string
name:
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
fot:
type: integer
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: integer
gastos_captacao:
type: number
instituicao:
type: string
observacoes:
type: string
pre_venda:
type: boolean
type: object
codigos.CreateCodigoInput:
properties:
codigo:
type: string
descricao:
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
banco:
type: string
carro_disponivel:
type: boolean
cidade:
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
media:
type: number
nome:
type: string
observacao:
type: string
qtd_estudio:
type: integer
qual_tec:
type: integer
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.ProfissionalResponse:
properties:
agencia:
type: string
avatar_url:
type: string
banco:
type: string
carro_disponivel:
type: boolean
cidade:
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: Now returns name from join
type: string
funcao_profissional_id:
type: string
id:
type: string
media:
type: number
nome:
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
banco:
type: string
carro_disponivel:
type: boolean
cidade:
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
media:
type: number
nome:
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
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}/professionals:
get:
responses: {}
summary: Get professionals assigned to agenda
tags:
- agenda
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}/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/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/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
/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/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/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