Skip to main content

API de Relacionamento Personal-Aluno

A API de Relacionamento Personal-Aluno do FitLocus fornece endpoints para gerenciamento das conexões entre personal trainers e seus alunos na plataforma.

Visão Geral

A API de Relacionamento Personal-Aluno permite:

  • Envio e gerenciamento de convites de personal trainers para alunos
  • Aceitação ou recusa de convites por parte dos alunos
  • Listagem de alunos vinculados a um personal trainer
  • Listagem de personal trainers vinculados a um aluno
  • Remoção de vínculos entre personal trainers e alunos

Modelo de Dados

PersonalStudentDTO

O objeto PersonalStudentDTO é utilizado para transferência de dados de relacionamentos entre personal trainers e alunos:

InviteDTO

Objeto utilizado para envio de convites:

Endpoints Principais

Detalhes de Implementação

Autenticação

Todos os endpoints requerem autenticação via token JWT no cabeçalho Authorization:
Para mais detalhes sobre autenticação, consulte a documentação de autenticação.

Controle de Acesso

O acesso aos endpoints é controlado com base no tipo de usuário:
  • Endpoints com prefixo /personal/ só podem ser acessados por usuários do tipo PERSONAL
  • Endpoints com prefixo /students/ só podem ser acessados por usuários do tipo ALUNO
  • Verificações adicionais garantem que um usuário só possa acessar dados relacionados a si mesmo

Enviar Convite para Aluno

Endpoint

Este endpoint permite que um personal trainer envie um convite para um aluno.

Cabeçalhos da Requisição

Parâmetros da Requisição

O corpo da requisição deve conter um objeto JSON com os seguintes campos:

Exemplo de Requisição

Resposta de Sucesso

Código: 201 Created

Respostas de Erro

Código: 400 Bad Request
Código: 401 Unauthorized
Código: 403 Forbidden
Código: 404 Not Found
Código: 409 Conflict
Código: 422 Unprocessable Entity

Listar Convites Enviados

Endpoint

Este endpoint retorna uma lista paginada de convites enviados pelo personal trainer.

Parâmetros de Consulta

Cabeçalhos da Requisição

Exemplo de Requisição

Resposta de Sucesso

Código: 200 OK

Respostas de Erro

Código: 401 Unauthorized
Código: 403 Forbidden

Listar Convites Recebidos

Endpoint

Este endpoint retorna uma lista paginada de convites recebidos pelo aluno.

Parâmetros de Consulta

Cabeçalhos da Requisição

Exemplo de Requisição

Resposta de Sucesso

Código: 200 OK

Respostas de Erro

Código: 401 Unauthorized
Código: 403 Forbidden

Aceitar Convite

Endpoint

Este endpoint permite que um aluno aceite um convite de personal trainer.

Parâmetros de URL

Cabeçalhos da Requisição

Exemplo de Requisição

Resposta de Sucesso

Código: 200 OK

Respostas de Erro

Código: 401 Unauthorized
Código: 403 Forbidden
Código: 403 Forbidden
Código: 404 Not Found
Código: 409 Conflict

Recusar Convite

Endpoint

Este endpoint permite que um aluno recuse um convite de personal trainer.

Parâmetros de URL

Cabeçalhos da Requisição

Exemplo de Requisição

Resposta de Sucesso

Código: 200 OK

Respostas de Erro

Código: 401 Unauthorized
Código: 403 Forbidden
Código: 403 Forbidden
Código: 404 Not Found
Código: 409 Conflict

Listar Alunos do Personal Trainer

Endpoint

Este endpoint retorna uma lista paginada de alunos vinculados ao personal trainer.

Parâmetros de Consulta

Cabeçalhos da Requisição

Exemplo de Requisição

Resposta de Sucesso

Código: 200 OK

Respostas de Erro

Código: 401 Unauthorized
Código: 403 Forbidden

Listar Personal Trainers do Aluno

Endpoint

Este endpoint retorna uma lista paginada de personal trainers vinculados ao aluno.

Parâmetros de Consulta

Cabeçalhos da Requisição

Exemplo de Requisição

Resposta de Sucesso

Código: 200 OK

Respostas de Erro

Código: 401 Unauthorized
Código: 403 Forbidden

Remover Vínculo com Aluno

Endpoint

Este endpoint permite que um personal trainer remova o vínculo com um aluno.

Parâmetros de URL

Cabeçalhos da Requisição

Exemplo de Requisição

Resposta de Sucesso

Código: 204 No Content

Respostas de Erro

Código: 401 Unauthorized
Código: 403 Forbidden
Código: 403 Forbidden
Código: 404 Not Found

Remover Vínculo com Personal Trainer

Endpoint

Este endpoint permite que um aluno remova o vínculo com um personal trainer.

Parâmetros de URL

Cabeçalhos da Requisição

Exemplo de Requisição

Resposta de Sucesso

Código: 204 No Content

Respostas de Erro

Código: 401 Unauthorized
Código: 403 Forbidden
Código: 403 Forbidden
Código: 404 Not Found

Implementação no Frontend

Componente de Envio de Convite

Componente de Listagem de Alunos

Considerações de Design

A interface de gerenciamento de relacionamentos personal-aluno do FitLocus segue as diretrizes de design da plataforma:
  • Cores: Fundo escuro (#202020), elementos de destaque em verde (#B4ED00), texto em branco (#F9F9F9)
  • Tipografia: Hanken Grotesk para texto e SUPERINE para títulos
  • Layout: Design minimalista com espaçamento generoso e hierarquia clara
  • Componentes: Campos de formulário com bordas arredondadas, botões com feedback visual ao interagir
Para mais detalhes sobre o design, consulte as diretrizes de marca.

Considerações de Segurança

  1. Validação de Dados: Todos os dados de entrada são validados tanto no frontend quanto no backend para prevenir injeção de dados maliciosos.
  2. Controle de Acesso: Verificações rigorosas garantem que um usuário só possa acessar e modificar seus próprios relacionamentos.
  3. Sanitização de Dados: Todos os dados de entrada são sanitizados antes de serem armazenados ou exibidos.
  4. HTTPS: Todas as comunicações com a API devem ser realizadas através de HTTPS para proteger dados sensíveis durante a transmissão.
  5. Limites de Plano: O sistema verifica se o personal trainer atingiu o limite de alunos do seu plano atual antes de permitir novos convites.

Regras de Negócio

  1. Limites de Alunos por Plano:
    • Plano Básico: até 5 alunos
    • Plano Intermediário: até 15 alunos
    • Plano Avançado: até 30 alunos
    • Plano Premium: ilimitado
  2. Expiração de Convites: Convites não aceitos expiram automaticamente após 7 dias.
  3. Restrições de Vínculo: Um aluno pode ter múltiplos personal trainers, mas cada relacionamento é gerenciado independentemente.
  4. Notificações: O sistema envia notificações por email quando:
    • Um convite é enviado
    • Um convite é aceito ou recusado
    • Um vínculo é removido