API Reference: Membros
Base URL: /api/membros. Todos os endpoints requerem autenticacao.
GET /api/membros/pendentes
Lista todos os cadastros pendentes de aprovacao do nucleo.
Permissao: COORDENADOR ou ADMINISTRADOR
Response 200
[
{
"id": "uuid",
"nome": "Maria Santos",
"email": "maria@email.com",
"cpf": "987.654.321-00",
"telefone": "(27) 98888-8888",
"criado_em": "2026-03-28T15:30:00Z"
}
]GET /api/membros
Lista membros do nucleo com paginacao e filtros.
Permissao: COORDENADOR ou ADMINISTRADOR
Query Params
| Param | Tipo | Descricao |
|---|---|---|
status | string | Filtrar por status (ATIVO, INATIVO, PENDENTE, SUSPENSO) |
cargo | string | Filtrar por cargo (MEMBRO, LIDER_PROJETO, PORTA_VOZ, COORDENADOR, ADMINISTRADOR) |
search | string | Busca por nome (ilike, case-insensitive). Ex: ?search=Bruno |
page | number | Pagina (default: 1) |
limit | number | Itens por pagina (default: 20) |
Response 200
{
"data": [
{
"id": "uuid",
"nome": "Joao da Silva",
"email": "joao@email.com",
"cargo": "MEMBRO",
"status": "ATIVO",
"saldo_capixacoins": 1500,
"foto_url": null,
"criado_em": "2026-03-01T10:00:00Z",
"planos": { "nome": "Apoiador" }
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 47,
"totalPages": 3
}
}GET /api/membros/:id
Retorna perfil completo de um membro, incluindo competencias.
Permissao: COORDENADOR ou ADMINISTRADOR
PATCH /api/membros/:id/cargo
Altera o cargo de um membro.
Permissao: ADMINISTRADOR (apenas)
Body
{ "cargo": "COORDENADOR" }Valores aceitos
MEMBRO, LIDER_PROJETO, PORTA_VOZ, COORDENADOR, ADMINISTRADOR
PATCH /api/membros/:id/status
Altera o status de um membro (suspender, reativar, etc.).
Permissao: COORDENADOR ou ADMINISTRADOR
Body
{ "status": "SUSPENSO" }Valores aceitos
ATIVO, INATIVO, SUSPENSO
Para aprovar/rejeitar cadastros pendentes, usePOST /api/auth/approveePOST /api/auth/reject.
Frontend: DataTable
A listagem de membros utiliza o componente DataTable reutilizavel:
- Desktop: Tabela com colunas sortaveis (nome, email, cargo, status, saldo CC, data de cadastro)
- Mobile: Cards empilhados com as informacoes principais do membro (nome, cargo, status, foto)
- Filtros de status e cargo no topo da tabela
- Campo de busca por nome (
?search=) com debounce - Paginacao integrada
Mobile: Acoes Admin Responsivas
No layout mobile, as acoes de administracao sao adaptadas para telas pequenas:
- Cards de membro exibem nome, foto, cargo e status em layout compacto
- Acoes de alteracao de cargo e status aparecem em uma linha separada abaixo do header do card
- Botoes de aprovar/rejeitar sao exibidos como icones com tooltips para economizar espaco
- Menu de acoes via dropdown em telas muito pequenas