Files
sigrhapf/Documents/sigfip/sigefp/ENDPOINTS_API.md
T
2026-05-19 11:45:46 +00:00

219 lines
8.0 KiB
Markdown

# 📡 Endpoints da API SIGEFP
## Base URL
```
http://localhost:8080
```
---
## 🔐 ADMIN - `/api/admin`
### Users
| Método | Endpoint | Descrição | Parâmetros |
|--------|----------|-----------|------------|
| `GET` | `/api/admin/users` | Listar utilizadores | `page`, `size`, `sortBy`, `sortDirection` |
| `GET` | `/api/admin/users/{id}` | Buscar utilizador | `id` (UUID) |
| `POST` | `/api/admin/users` | Criar utilizador | Body: `UserAccountDTO` |
| `PUT` | `/api/admin/users/{id}` | Atualizar utilizador | `id` (UUID), Body: `UserAccountDTO` |
| `POST` | `/api/admin/users/{id}/roles` | Atribuir perfis | `id` (UUID), Body: `AssignRolesDTO` |
### Roles
| Método | Endpoint | Descrição | Parâmetros |
|--------|----------|-----------|------------|
| `GET` | `/api/admin/roles` | Listar perfis | `page`, `size`, `sortBy`, `sortDirection` |
| `GET` | `/api/admin/roles/{id}` | Buscar perfil | `id` (UUID) |
| `POST` | `/api/admin/roles` | Criar perfil | Body: `RoleDTO` |
| `PUT` | `/api/admin/roles/{id}` | Atualizar perfil | `id` (UUID), Body: `RoleDTO` |
### Audit Logs
| Método | Endpoint | Descrição | Parâmetros |
|--------|----------|-----------|------------|
| `GET` | `/api/admin/audit-logs` | Consultar logs | `userId`, `module`, `startDate`, `endDate`, `page`, `size` |
---
## 🏛️ ORG - `/api/org`
### Ministries
| Método | Endpoint | Descrição | Parâmetros |
|--------|----------|-----------|------------|
| `GET` | `/api/org/ministries` | Listar ministérios | `page`, `size`, `sortBy`, `sortDirection` |
| `GET` | `/api/org/ministries/{id}` | Buscar ministério | `id` (UUID) |
| `POST` | `/api/org/ministries` | Criar ministério | Body: `MinistryDTO` |
| `PUT` | `/api/org/ministries/{id}` | Atualizar ministério | `id` (UUID), Body: `MinistryDTO` |
### Org Units
| Método | Endpoint | Descrição | Parâmetros |
|--------|----------|-----------|------------|
| `GET` | `/api/org/org-units` | Listar unidades | `ministryId`, `parentUnitId`, `page`, `size` |
| `GET` | `/api/org/org-units/tree/{ministryId}` | Árvore de unidades | `ministryId` (UUID) |
| `GET` | `/api/org/org-units/{id}` | Buscar unidade | `id` (UUID) |
| `POST` | `/api/org/org-units` | Criar unidade | Body: `OrgUnitDTO` |
| `PUT` | `/api/org/org-units/{id}` | Atualizar unidade | `id` (UUID), Body: `OrgUnitDTO` |
### Positions
| Método | Endpoint | Descrição | Parâmetros |
|--------|----------|-----------|------------|
| `GET` | `/api/org/positions` | Listar posições | `orgUnitId`, `page`, `size` |
| `GET` | `/api/org/positions/{id}` | Buscar posição | `id` (UUID) |
| `POST` | `/api/org/positions` | Criar posição | Body: `PositionDTO` |
| `PUT` | `/api/org/positions/{id}` | Atualizar posição | `id` (UUID), Body: `PositionDTO` |
---
## 👥 RH - `/api/rh`
### Agents
| Método | Endpoint | Descrição | Parâmetros |
|--------|----------|-----------|------------|
| `GET` | `/api/rh/agents` | Listar agentes | `page`, `size`, `sortBy`, `sortDirection` |
| `GET` | `/api/rh/agents/{id}` | Buscar agente | `id` (UUID) |
| `POST` | `/api/rh/agents` | Criar agente | Body: `AgentDTO` |
| `PUT` | `/api/rh/agents/{id}` | Atualizar agente | `id` (UUID), Body: `AgentDTO` |
### Payroll
| Método | Endpoint | Descrição | Parâmetros |
|--------|----------|-----------|------------|
| `GET` | `/api/rh/payroll-periods` | Listar períodos | - |
| `POST` | `/api/rh/payroll-periods` | Criar período | Body: `CreatePayrollPeriodDTO` |
| `POST` | `/api/rh/payroll-runs` | Criar execução de folha | Body: `CreatePayrollRunDTO` |
| `GET` | `/api/rh/payroll-runs/{id}` | Buscar execução com itens | `id` (UUID) |
---
## 💰 BUDGET - `/api/budget`
### Fiscal Years
| Método | Endpoint | Descrição | Parâmetros |
|--------|----------|-----------|------------|
| `GET` | `/api/budget/fiscal-years` | Listar anos fiscais | `page`, `size`, `sortBy`, `sortDirection` |
| `GET` | `/api/budget/fiscal-years/current` | Obter exercício corrente | - |
| `GET` | `/api/budget/fiscal-years/{id}` | Buscar ano fiscal | `id` (UUID) |
| `POST` | `/api/budget/fiscal-years` | Criar exercício fiscal | Body: `FiscalYearDTO` |
| `POST` | `/api/budget/fiscal-years/{id}/open` | Abrir exercício | `id` (UUID) |
| `POST` | `/api/budget/fiscal-years/{id}/close` | Fechar exercício | `id` (UUID) |
### Budget Lines
| Método | Endpoint | Descrição | Parâmetros |
|--------|----------|-----------|------------|
| `GET` | `/api/budget/lines` | Listar linhas | `fiscalYearId`, `ministryId`, `orgUnitId`, `page`, `size` |
| `GET` | `/api/budget/lines/{id}` | Buscar linha (com cálculos) | `id` (UUID) |
| `POST` | `/api/budget/lines` | Criar linha | Body: `BudgetLineDTO` |
| `PUT` | `/api/budget/lines/{id}` | Atualizar linha | `id` (UUID), Body: `BudgetLineDTO` |
### Budget Execution
| Método | Endpoint | Descrição | Parâmetros |
|--------|----------|-----------|------------|
| `GET` | `/api/budget/execution` | Listar execuções | `budgetLineId`, `periodId`, `movementType`, `page`, `size` |
| `POST` | `/api/budget/execution` | Registrar movimento | Body: `BudgetExecutionDTO` |
---
## 💳 TREASURY - `/api/treasury`
### Payment Batches
| Método | Endpoint | Descrição | Parâmetros |
|--------|----------|-----------|------------|
| `GET` | `/api/treasury/payment-batches` | Listar lotes | `periodId`, `ministryId`, `status`, `page`, `size` |
| `GET` | `/api/treasury/payment-batches/{id}` | Buscar lote | `id` (UUID) |
| `POST` | `/api/treasury/payment-batches` | Criar lote | Body: `CreatePaymentBatchDTO` |
| `POST` | `/api/treasury/payment-batches/{id}/status` | Alterar status | `id` (UUID), Body: `UpdateStatusDTO` |
### Payment Orders
| Método | Endpoint | Descrição | Parâmetros |
|--------|----------|-----------|------------|
| `GET` | `/api/treasury/payment-orders` | Listar ordens | `batchId`, `status`, `page`, `size` |
| `GET` | `/api/treasury/payment-orders/{id}` | Buscar ordem | `id` (UUID) |
| `POST` | `/api/treasury/payment-orders` | Criar ordem | Body: `CreatePaymentOrderDTO` |
| `POST` | `/api/treasury/payment-orders/{id}/status` | Atualizar status | `id` (UUID), Body: `UpdateStatusDTO` |
### Treasury Payments
| Método | Endpoint | Descrição | Parâmetros |
|--------|----------|-----------|------------|
| `GET` | `/api/treasury/payments` | Consultar pagamentos | `paymentOrderId`, `status`, `page`, `size` |
| `POST` | `/api/treasury/payments` | Registrar pagamento efetivo | Body: `CreateTreasuryPaymentDTO` |
---
## 🏦 COMMON - `/api/common`
### Banks
| Método | Endpoint | Descrição | Parâmetros |
|--------|----------|-----------|------------|
| `GET` | `/api/common/banks` | Listar bancos | `page`, `size`, `sortBy`, `sortDirection` |
| `GET` | `/api/common/banks/{id}` | Buscar banco | `id` (UUID) |
| `POST` | `/api/common/banks` | Criar banco | Body: `BankDTO` |
| `PUT` | `/api/common/banks/{id}` | Atualizar banco | `id` (UUID), Body: `BankDTO` |
---
## 📊 Estatísticas
- **Total de Endpoints:** 50+
- **Módulos:** 6
- **Controllers:** 16
- **Métodos HTTP:** GET, POST, PUT
---
## 🔍 Parâmetros Comuns
### Paginação
- `page` (int, default: 0) - Número da página
- `size` (int, default: 20) - Tamanho da página
- `sortBy` (String, optional) - Campo para ordenação
- `sortDirection` (String, default: ASC) - Direção (ASC/DESC)
### Filtros de Data
- `startDate` (Instant, ISO format) - Data inicial
- `endDate` (Instant, ISO format) - Data final
---
## 📝 Exemplos de Requisição
### Criar Banco
```bash
POST /api/common/banks
Content-Type: application/json
{
"code": "001",
"name": "Banco do Brasil",
"swiftCode": "BRASBRRJ"
}
```
### Criar Utilizador
```bash
POST /api/admin/users
Content-Type: application/json
{
"username": "joao.silva",
"fullName": "João Silva",
"email": "joao.silva@example.com",
"password": "senha123",
"isActive": true
}
```
### Criar Período de Folha
```bash
POST /api/rh/payroll-periods
Content-Type: application/json
{
"fiscalYear": 2024,
"month": 12,
"startDate": "2024-12-01",
"endDate": "2024-12-31"
}
```
---
**Nota:** Todos os endpoints retornam JSON e esperam `Content-Type: application/json` nas requisições POST/PUT.