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

ParamTipoDescricao
statusstringFiltrar por status (ATIVO, INATIVO, PENDENTE, SUSPENSO)
cargostringFiltrar por cargo (MEMBRO, LIDER_PROJETO, PORTA_VOZ, COORDENADOR, ADMINISTRADOR)
searchstringBusca por nome (ilike, case-insensitive). Ex: ?search=Bruno
pagenumberPagina (default: 1)
limitnumberItens 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, use POST /api/auth/approve e POST /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