Documentação da API
Documentação de todos os endpoints que foram desenvolvidos ao longo do módulo.
Recursos Principais
1. Visitantes (/v1/visitante)
Gerenciamento de visitantes que participam dos tours.
Modelo de Dados
nome(string, opcional): Nome do visitantecpf(string, opcional): CPF do visitanteemail(string, opcional): Email de contatotelefone(string, opcional): Telefone de contatocidade(string, opcional): Cidade de origemestado(string, opcional): Estado de origemperfil(enum, obrigatório): Tipo de perfilstudent: Estudanteexecutive: Executivo
Endpoints
GET /v1/visitante - Retorna todos os visitantes cadastrados
POST /v1/visitante - Cria um novo visitante
GET /v1/visitante/{id} - Busca um visitante específico
PUT /v1/visitante/{id} - Atualiza dados de um visitante
DELETE /v1/visitante/{id} - Remove um visitante
2. Acompanhantes (/v1/acompanhante)
Gerenciamento de acompanhantes vinculados aos visitantes.
Modelo de Dados
nome(string, opcional): Nome do acompanhantecpf(string, opcional): CPF do acompanhantevisitante_id(integer, opcional): ID do visitante principal
Endpoints
GET /v1/acompanhante - Lista todos os acompanhantes
POST /v1/acompanhante - Cria novo acompanhante
GET /v1/acompanhante/{id} - Busca acompanhante específico
PUT /v1/acompanhante/{id} - Atualiza acompanhante
DELETE /v1/acompanhante/{id} - Remove acompanhante
3. Robôs (/v1/robo)
Gerenciamento dos robôs que conduzem os tours.
Modelo de Dados
nome(string, opcional): Nome do robômodelo(string, opcional): Modelo do robônumero_serie(string, opcional): Número de sérieativo(boolean, opcional): Status de ativação
Endpoints
GET /v1/robo - Lista todos os robôs
POST /v1/robo - Cadastra novo robô
GET /v1/robo/{id} - Busca robô específico
PUT /v1/robo/{id} - Atualiza dados do robô
DELETE /v1/robo/{id} - Remove robô
4. Tours (/v1/tour)
Gerenciamento dos tours agendados e em andamento.
Modelo de Dados
codigo(string, obrigatório): Código único do tourtitulo(string, opcional): Título do tourdata_local(date, obrigatório): Data do tourhora_inicio_prevista(string, opcional): Hora de início previstahora_fim_prevista(string, opcional): Hora de término previstainicio_real(datetime, opcional): Timestamp real de iníciofim_real(datetime, opcional): Timestamp real de términostatus(enum, obrigatório): Status atualscheduled: Agendadoin_progress: Em andamentocompleted: Concluídocancelled: Cancelado
robo_id(integer, obrigatório): ID do robô designadoresponsavel_id(integer, opcional): ID do responsável
Endpoints
GET /v1/tour - Lista todos os tours
POST /v1/tour - Cria novo tour
GET /v1/tour/{id} - Busca tour específico
PUT /v1/tour/{id} - Atualiza tour
DELETE /v1/tour/{id} - Remove tour
5. Tour-Visitante (/v1/tour-visitante)
Relacionamento many-to-many entre tours e visitantes.
Modelo de Dados
tour_id(integer, obrigatório): ID do tourvisitante_id(integer, obrigatório): ID do visitante
Endpoints
GET /v1/tour-visitante - Lista todas as associações
POST /v1/tour-visitante - Adiciona visitante ao tour
GET /v1/tour-visitante/{id} - Busca associação específica
GET /v1/tour-visitante/tour/{tour_id} - Lista visitantes de um tour
GET /v1/tour-visitante/visitante/{visitante_id} - Lista tours de um visitante
DELETE /v1/tour-visitante/{id} - Remove associação
6. Checkpoints (/v1/checkpoint)
Pontos de parada durante o tour.
Modelo de Dados
tour_id(integer, obrigatório): ID do tourtipo(enum, obrigatório): Tipo do checkpointrecepcao: Recepçãoauditorio: Auditórioatelie: Ateliêcasinhas: Casinhasdog_house: Dog House
ordem(integer, obrigatório): Ordem de visitastatus(enum, obrigatório): Status atualpending: Pendenterunning: Em andamentofinished: Finalizadoskipped: Pulado
inicio_previsto(datetime, opcional): Hora prevista de inícioinicio_real(datetime, opcional): Hora real de iníciofim_real(datetime, opcional): Hora real de término
Endpoints
GET /v1/checkpoint - Lista todos os checkpoints
POST /v1/checkpoint - Cria novo checkpoint
GET /v1/checkpoint/{id} - Busca checkpoint específico
GET /v1/checkpoint/tour/{tour_id} - Lista checkpoints de um tour
PUT /v1/checkpoint/{id} - Atualiza checkpoint
DELETE /v1/checkpoint/{id} - Remove checkpoint
7. Perguntas (/v1/perguntas)
Perguntas feitas durante os checkpoints.
Modelo de Dados
checkpoint_id(integer, obrigatório): ID do checkpointtour_id(integer, opcional): ID do tourtexto(string, obrigatório): Texto da perguntaquestion_topic(string, opcional): Tópico da perguntaestado(enum, obrigatório): Estado da perguntaqueued: Na filaanswerable: Pode ser respondidaanswered: Respondidadiscarded: Descartada
liberado_em(datetime, opcional): Quando foi liberadarespondido_em(datetime, opcional): Quando foi respondida
Endpoints
GET /v1/perguntas - Lista todas as perguntas
POST /v1/perguntas - Cria nova pergunta
GET /v1/perguntas/{id} - Busca pergunta específica
GET /v1/perguntas/tour/{tour_id} - Lista perguntas de um tour
PUT /v1/perguntas/{id} - Atualiza pergunta
DELETE /v1/perguntas/{id} - Remove pergunta
8. Respostas (/v1/respostas)
Respostas às perguntas feitas.
Modelo de Dados
pergunta_id(integer, obrigatório): ID da perguntatexto(string, obrigatório): Texto da respostarespondido_por_tipo(string, obrigatório): Tipo de respondenterespondido_por_usuario(integer, opcional): ID do usuário que respondeu
Endpoints
GET /v1/respostas - Lista todas as respostas
POST /v1/respostas - Cria nova resposta
GET /v1/respostas/{id} - Busca resposta específica
GET /v1/respostas/pergunta/{pergunta_id} - Lista respostas de uma pergunta
PUT /v1/respostas/{id} - Atualiza resposta
DELETE /v1/respostas/{id} - Remove resposta
9. Modelo de IA (/v1/modelo)
Processamento de perguntas via IA.
Endpoints
POST /v1/modelo
- Processa uma pergunta e gera resposta automática
- Body: objeto
Pergunta - Resposta 200:
SingleItemResponse_Resposta
10. Rastreio do Robô (/v1/rastreio-robo)
Rastreamento em tempo real da posição do robô.
Modelo de Dados
tour_id(integer, opcional): ID do tourcheckpoint_id(integer, opcional): Checkpoint atualwaypoint(string, opcional): Ponto de passagemprogresso_pct(double, opcional): Percentual de progresso
Endpoints
GET /v1/rastreio-robo - Lista todos os registros de rastreio
POST /v1/rastreio-robo - Cria novo registro de rastreio
GET /v1/rastreio-robo/{id} - Busca registro específico
PUT /v1/rastreio-robo/{id} - Atualiza rastreio
DELETE /v1/rastreio-robo/{id} - Remove registro
11. Alertas (/v1/alertas)
Sistema de alertas e notificações.
Modelo de Dados
tour_id(integer, opcional): Tour relacionadonivel(enum, obrigatório): Nível de severidadebaixo: Baixomedio: Médioalto: Alto
mensagem(string, opcional): Mensagem do alertaorigem(string, opcional): Origem do alertaresolvido_em(datetime, opcional): Quando foi resolvido
Endpoints
GET /v1/alertas - Lista todos os alertas
POST /v1/alertas - Cria novo alerta
GET /v1/alertas/{id} - Busca alerta específico
PUT /v1/alertas/{id} - Atualiza alerta
DELETE /v1/alertas/{id} - Remove alerta
12. Notificações (/v1/notificacoes)
Notificações para usuários do sistema.
Modelo de Dados
usuario_id(integer, opcional): ID do usuáriotitulo(string, opcional): Título da notificaçãocorpo(string, opcional): Corpo da mensagemlido(boolean, obrigatório): Status de leiturapayload_json(object, opcional): Dados adicionais em JSON
Endpoints
GET /v1/notificacoes - Lista todas as notificações
POST /v1/notificacoes - Cria nova notificação
GET /v1/notificacoes/{id} - Busca notificação específica
PUT /v1/notificacoes/{id} - Atualiza notificação (ex: marcar como lida)
DELETE /v1/notificacoes/{id} - Remove notificação
13. Log de Status do Tour (/v1/tour-status-log)
Histórico de mudanças de status dos tours.
Modelo de Dados
tour_id(integer, obrigatório): ID do tourstatus(string, obrigatório): Status registradoatualizado_em(datetime, opcional): Timestamp da mudançaobservacoes(string, opcional): Observações sobre a mudança
Endpoints
GET /v1/tour-status-log - Lista todos os logs
POST /v1/tour-status-log - Cria novo log de status
GET /v1/tour-status-log/{id} - Busca log específico
GET /v1/tour-status-log/tour/{tour_id} - Lista logs de um tour
PUT /v1/tour-status-log/{id} - Atualiza log
DELETE /v1/tour-status-log/{id} - Remove log
Respostas Padrão
Sucesso
{
"message": "Mensagem descritiva",
"data": {
/* objeto ou array de dados */
}
}Erro 404
{
"message": "Recurso não encontrado"
}Erro 500
{
"message": "Erro interno do servidor"
}Códigos de Status HTTP
- 200 OK: Operação bem-sucedida
- 201 Created: Recurso criado com sucesso
- 404 Not Found: Recurso não encontrado
- 500 Internal Server Error: Erro inesperado no servidor
Fluxo Típico de um Tour
- Criar Visitante →
POST /v1/visitante - Criar Tour →
POST /v1/tour - Associar Visitante ao Tour →
POST /v1/tour-visitante - Criar Checkpoints →
POST /v1/checkpoint - Iniciar Tour →
PUT /v1/tour/{id}(atualizar status) - Rastrear Robô →
POST /v1/rastreio-robo - Processar Perguntas →
POST /v1/perguntas→POST /v1/modelo - Finalizar Tour →
PUT /v1/tour/{id}(atualizar status)
Notas de Implementação
- Todos os IDs são integers de 32 bits
- Datas seguem formato ISO 8601
- Campos marcados como
nullsão opcionais - Enums devem usar exatamente os valores especificados
- A API usa JSON para request/response bodies
Atualizações no Banco – Gestão de Visitantes e Acompanhantes
Este documento descreve as mudanças realizadas no banco de dados (Supabase) e no back-end do projeto do cachorro-robô do Inteli, com foco na criação da entidade de acompanhantes e na expansão do cadastro de visitantes, viabilizando que o gestor do Inteli tenha acesso completo às informações de visitantes principais e seus acompanhantes para controle, segurança e gestão institucional.
Centralização das Rotas do Robô
Rotas HTTP centralizadas no backend para comunicação com o robô