219 lines
8.0 KiB
Markdown
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.
|
||
|
|
|