# PNTP — Recursos humanos e diárias

> **Critérios:** 6.1–6.7, 7.1–7.2.
> **Fases:** [`P16`](../../implementation-phases/P16-pessoas-certames.md) e
> [`P17`](../../implementation-phases/P17-obras-integridade.md).
> **Estado atual:** P16 cobre 6.1/6.4–6.7, mas exclui remuneração; P17 tem diárias sem tabela de
> valores e sem todos os campos.

## 1. Recursos humanos (6)

### 6.1 Relação de servidores
- Campos: nome, cargo/função, lotação, admissão, exoneração/inativação, **carga horária**.
- P16 já tem a tabela; adicionar `carga_horaria` e `funcao`; página pública com filtros por
  nome/cargo/lotação; CSV; 3 anos.
- Sem CPF, matrícula, endereço, telefone/e-mail pessoal.

### 6.2 Remuneração nominal
- **Relação**, não consulta individual; sem login; nome, cargo e remuneração.
- Filtros por nome/mês/ano; CSV; 3 anos; atualização 30 dias.
- Base legal e decisão registrada; a remuneração é dado pessoal, mas pública por lei.
- Modelo: `servidor_remuneracoes` (`servidor_id`, `competencia` `YYYY-MM`, `bruto`, `descontos`,
  `liquido`, `cargo`, `lotacao`, `updated_at`); ou colunas na tabela de servidores se o grão for
  mensal (preferir tabela separada).
- Nenhum CPF/matrícula; não permitir consulta por nome como autenticação.

### 6.3 Tabela remuneratória
- Faixas por cargo/função; pode ser a tabela da lei (PDF pesquisável) **ou** HTML; 1 ano.
- `tabela_remuneratoria`: `id`, `cargo`, `nivel`, `faixa`, `valor`, `vigencia_inicio`,
  `vigencia_fim`, `media_id` null.
- Página `/transparencia/recursos-humanos/tabela-remuneratoria`; filtro por cargo; CSV quando
  estruturada.

### 6.4–6.7
- Já em P16; garantir CSV, 3 anos, `Atualizado em` e declaração quando não houver.

## 2. Diárias (7)

### 7.1 Beneficiários
- Campos: nome, cargo/função, **número de diárias**, valor total, período, motivo, destino.
- P17 já tem `diarias`; adicionar `numero_diarias`, `cargo`, `motivo`, `local_destino` e
  `valor_total` (ou calcular); filtros por nome/mês/ano; CSV; 3 anos.

### 7.2 Tabela de valores
- Valores dentro do Estado, fora do Estado e fora do país; se não houver internacional, declarar.
- `diarias_valores`: `id`, `categoria` (`dentro_estado|fora_estado|fora_pais`), `valor`,
  `vigencia_inicio`, `vigencia_fim`, `media_id` null.
- Página `/transparencia/diarias/tabela-valores`; 1 ano/3 anos; `Atualizado em`; não apenas na
  legislação.

## 3. Testes

- [ ] 6.1 carga horária e filtros; 6.2 relação nominal sem login; 6.3 faixas.
- [ ] 6.4/6.5 180 dias; 6.6/6.7 1 ano/30 dias.
- [ ] 7.1 todos os campos; 7.2 três categorias; 3 anos.
- [ ] Nenhum CPF/matrícula/endereço em página/API/log.
- [ ] CSV, `Atualizado em`, axe, 4 locales.
- [ ] `make check` 2× + `E2E=1`; cobertura.

## 4. Riscos

| Risco | Mitigação |
|---|---|
| Remuneração vazar PII | só nome/cargo/valor; sem CPF; DTO allowlist |
| Consulta individual | página é relação; sem busca autenticada |
| Diárias sem número/motivo | campos obrigatórios; validação |
| Tabela de valores desatualizada | vigência + alerta 1 ano |
