Funcionários
Homologação da rota /funcionarios, criação/edição via /parceiros/novo (com estado) e detalhe unificado em /parceiros/:id quando o registo é funcionário. Inclui cenários desejados mesmo que ainda não existam na UI — para guiar pendências.
Lista (/funcionarios)
- Cabeçalho — Título “Funcionários” e texto sobre credenciais de acesso.
- Permissão — Acesso com
AdminUsers(rota protegida); sem permissão, fluxo de negação adequado. - Novo Funcionário — Link para
/parceiros/novocomstate: { presetPartnerType: "funcionario" }; formulário abre com tipo funcionário e fluxo “Novo funcionário”. - Resumo (
EmployeeCardSummary) — Seis cartões: Total, Ativos, Inativos, Com login, Ativos (atual), Acesso ao sistema — dados de/api/employees/summary(ou endpoint equivalente); loading com skeletons; erro com “Não foi possível carregar o resumo.” - Filtros — Busca (reinicia página), status (todos/ativo/inativo), departamento (texto livre, filtro
department), login (todos/habilitado/desabilitado), Limpar Filtros. - API da lista —
GET /api/employeescom query descriptor; ordenação por nome ascendente. - Erro na lista — Mensagem genérica sobre permissões ou servidor.
- Tabela — Colunas: código, nome, documento, email, telefone (phone ou cell), cargo, departamento, status, login (Sim/Não), ações.
- Células vazias — “—” onde aplicável.
- Ver detalhe — Ícone olho →
/parceiros/{id}; detalhe reconhecekind === "employee"e mostra fluxo de funcionário. - Lista vazia — “Nenhum funcionário encontrado com os filtros aplicados.”
- Paginação —
PAGE_SIZE10, visível comtotal > 0.
Cadastro e edição de funcionário (/parceiros/novo)
- Modo novo — Abas: Dados básicos, Endereços, Documentos, Permissões (só para tipo funcionário).
- Modo editar — A partir do detalhe,
state: { mode: "edit", kind: "employee", employee }; título “Editar funcionário”;PUT /api/employees/{id}com campos mapeados; redirect para/parceiros/{id}ou/funcionarios. - Validação — Nome e tipo obrigatórios; se preencher credenciais parcialmente, exigir usuário + senha + email; mensagens toast.
- Criação com login —
POST /api/employeescomuserName,password,canLogin,initialAccess(rascunho de permissões quando aplicável). - Endereços e documentos no cadastro de funcionário — Persistidos na API (POST por item) tal como em parceiro comercial, ou ocultar abas até existir backend.
Hoje: o submit de funcionário usa apenas create/update employee; endereços/documentos do formulário podem não ser gravados para funcionário. (pendência de implementação — alinhar UI ao contrato da API) - Botão Voltar no cadastro — Comportamento esperado: voltar para
/funcionariosquando o fluxo foi iniciado a partir de funcionários.
Hoje: pode voltar sempre para/parceiros. (pendência / melhoria de UX)
Detalhe funcionário (/parceiros/:id)
- Loading / erro / não encontrado — Skeleton, mensagem e voltar para lista adequada.
- Voltar — Navega para
/funcionarios. - Cabeçalho — Nome, badge Funcionário, status, código.
- Editar — Abre
/parceiros/novocom estado de edição. - Abas — Dados gerais, Endereços (contagem), Documentos (contagem), Permissões (
PermissoesTabcomuserId). - Toggle / gestão de login — Ação explícita para habilitar/desabilitar login (
PATCH .../login) onde existir na UI.
HookuseToggleEmployeeLoginMutationexiste; confirmar se há botão no detalhe ou noutro ecrã. (homologar ou registar pendência)
Funcionalidades alargadas (backlog)
- Exclusão de funcionário — Ação com confirmação e
DELETE /api/employees/{id}; atualizar lista e resumo.
Mutação existe; pode faltar botão na lista/detalhe. (pendência de UI) - Exportar lista — CSV/Excel. (pendência opcional)
- Debounce na busca — Reduzir chamadas à API. (melhoria)
- Departamento como select — Lista fixa de departamentos da API. (melhoria)
Regressão
- Acentos e emails — Busca e exibição corretas.
- Deep link — Abrir
/parceiros/:idde funcionário diretamente (bookmark).
Registe na equipa quando endereços/documentos de funcionário no cadastro e o botão Voltar contextual estiverem alinhados com a API e a UX.