API Reference: Perfil do Membro
Base URL: /api/perfil. Todos requerem autenticacao.
| Metodo | Endpoint | Descricao |
|---|---|---|
| GET | /api/perfil | Perfil completo (dados, competencias, conquistas, indicados, extrato, historico) |
| PATCH | /api/perfil/dados | Atualizar dados pessoais (nome, telefone, endereco, foto) |
| PATCH | /api/perfil/competencias | Atualizar competencias (substitui todas) |
| PATCH | /api/perfil/preferencias | Atualizar preferencias de notificacao |
| GET | /api/perfil/historico/eventos | Historico de eventos participados |
| GET | /api/perfil/historico/tarefas | Historico de tarefas concluidas |
GET /api/perfil — Response
Retorna o perfil completo do usuario logado incluindo:
- Dados pessoais (nome, email, CPF, telefone, endereco)
- Competencias com macro/micro/nivel
- Plano atual e data de validade
- Codigo referral + lista de indicados
- Conquistas desbloqueadas
- Totais: eventos participados, tarefas concluidas
- Extrato resumido (ultimas 10 transacoes)
- Preferencias de notificacao
PATCH /api/perfil/dados — Body
{
"nome": "Novo Nome",
"telefone": "(27) 99999-0000",
"fotoUrl": "https://supabase.co/.../avatar.jpg"
}PATCH /api/perfil/competencias — Body
{
"competencias": [
{ "microId": "uuid", "nivel": "AVANCADO" },
{ "microId": "uuid", "nivel": "BASICO" }
]
}Substitui todas as competencias do usuario. Para remover todas, envie array vazio.
PATCH /api/perfil/preferencias — Body
{
"preferencias": {
"push_tarefa": true,
"push_evento": true,
"push_comunicado": false,
"push_conquista": true,
"email_tarefa": true,
"email_evento": true,
"email_comunicado": true,
"email_conquista": false,
"whatsapp": false
}
}Tab Notificacoes no Perfil
A pagina de perfil inclui uma aba Notificacoes com toggles individuais para cada canal:
Push Notifications
push_tarefa— Notificar sobre novas tarefas e validacoespush_evento— Notificar sobre novos eventos e lembretespush_comunicado— Notificar sobre novos comunicadospush_conquista— Notificar sobre conquistas desbloqueadas
Email Notifications
email_tarefa— Receber email sobre tarefas atribuidas e aprovadas/rejeitadasemail_evento— Receber email sobre novos eventos e lembretesemail_comunicado— Receber email sobre novos comunicadosemail_conquista— Receber email sobre conquistas desbloqueadas
Os toggles sao salvos automaticamente ao clicar. Emails sao enviados via Resend.
Funcionalidades do Perfil
Modal de Competencias (Primeiro Login)
Quando o usuario faz login pela primeira vez (primeiro_login = true), um modal aparece pedindo para selecionar competencias. O usuario pode pular ou salvar. Ao fechar o modal, primeiro_login e marcado como false.
Upload de Foto
Fotos de perfil sao armazenadas no Supabase Storage bucket avatars. O componente FileUpload faz o upload e retorna a URL publica.
Indicacao (Referral)
Cada usuario tem um codigo unico (MBL-ES-XXXX) gerado automaticamente. O link de convite inclui o codigo como query param: ?ref=MBL-ES-XXXX. Ao aprovar o indicado, 100 CC sao creditadas ao indicador.