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