@hed-hog/finance 0.0.274 → 0.0.275

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +214 -126
  2. package/package.json +6 -6
package/README.md CHANGED
@@ -27,125 +27,123 @@ O módulo financeiro gerencia o ciclo completo da gestão financeira corporativa
27
27
 
28
28
  ### FinanceAuditLogsController
29
29
 
30
- | Método | Path | Auth | Descrição | Parâmetros/Query | Resposta | Erros Comuns |
31
- |--------|-----------------------|-------|----------------------------------|-------------------------------------------------------------------------------------------------|---------------------------------|-----------------------|
32
- | GET | /finance/audit-logs | Sim | Lista logs de auditoria financeira | Query: `search`, `action`, `entity_table`, `actor_user_id`, `from`, `to`, paginação | Lista paginada de logs | 401 Unauthorized |
30
+ | Método | Path | Auth | Descrição | Parâmetros/Query | Resposta | Erros Comuns |
31
+ |--------|---------------------|------|-------------------------------|-------------------------------------------------------------------------------------------------|---------------------------|-------------------|
32
+ | GET | /finance/audit-logs | Sim | Lista logs de auditoria financeira | Query: `search`, `action`, `entity_table`, `actor_user_id`, `from`, `to`, paginação | Lista paginada de logs | 401 Unauthorized |
33
33
 
34
34
  ---
35
35
 
36
36
  ### FinanceBankAccountsController
37
37
 
38
- | Método | Path | Auth | Descrição | Parâmetros/Body | Resposta | Erros Comuns |
39
- |--------|---------------------------|-------|----------------------------------|-------------------------------------------------------------------------------------------------|---------------------------------|-----------------------|
40
- | GET | /finance/bank-accounts | Sim | Lista contas bancárias | - | Lista de contas bancárias | 401 Unauthorized |
41
- | POST | /finance/bank-accounts | Sim | Cria nova conta bancária | Body: `{ bank: string, branch?: string, account?: string, type: string, description?: string, initial_balance?: number }` | Conta criada | 400 Validação |
42
- | PATCH | /finance/bank-accounts/:id | Sim | Atualiza conta bancária | Body: campos opcionais para atualização (bank, branch, account, type, description, status) | Conta atualizada | 400 Validação, 404 |
43
- | DELETE | /finance/bank-accounts/:id | Sim | Remove conta bancária | - | Confirmação de exclusão | 404 Not Found |
38
+ | Método | Path | Auth | Descrição | Parâmetros/Body | Resposta | Erros Comuns |
39
+ |--------|---------------------------|------|-------------------------|-------------------------------------------------------------------------------------------------|--------------------|----------------------|
40
+ | GET | /finance/bank-accounts | Sim | Lista contas bancárias | - | Lista de contas | 401 Unauthorized |
41
+ | POST | /finance/bank-accounts | Sim | Cria nova conta bancária| Body: `{ bank: string; branch?: string; account?: string; type: string; description?: string; initial_balance?: number }` | Conta criada | 400 Validação |
42
+ | PATCH | /finance/bank-accounts/:id | Sim | Atualiza conta bancária | Body: campos opcionais para atualização (bank, branch, account, type, description, status) | Conta atualizada | 400 Validação, 404 |
43
+ | DELETE | /finance/bank-accounts/:id | Sim | Remove conta bancária | - | Confirmação | 404 Not Found |
44
44
 
45
45
  ---
46
46
 
47
47
  ### FinanceCategoriesController
48
48
 
49
- | Método | Path | Auth | Descrição | Parâmetros/Body | Resposta | Erros Comuns |
50
- |--------|---------------------------|-------|----------------------------------|-------------------------------------------------------------------------------------------------|---------------------------------|-----------------------|
51
- | GET | /finance/categories | Sim | Lista categorias financeiras | - | Lista de categorias | 401 Unauthorized |
52
- | POST | /finance/categories | Sim | Cria categoria financeira | Body: `{ name: string, kind: string, parent_id?: number }` | Categoria criada | 400 Validação |
53
- | PATCH | /finance/categories/:id | Sim | Atualiza categoria financeira | Body: campos opcionais (name, kind, parent_id, status) | Categoria atualizada | 400 Validação, 404 |
54
- | PATCH | /finance/categories/:id/move | Sim | Move categoria na hierarquia | Body: `{ parent_id?: number, position?: number }` | Categoria movida | 400 Validação, 404 |
55
- | DELETE | /finance/categories/:id | Sim | Remove categoria financeira | - | Confirmação de exclusão | 404 Not Found |
49
+ | Método | Path | Auth | Descrição | Parâmetros/Body | Resposta | Erros Comuns |
50
+ |--------|---------------------------|------|---------------------------|-------------------------------------------------------------------------------------------------|--------------------|----------------------|
51
+ | GET | /finance/categories | Sim | Lista categorias financeiras | - | Lista de categorias | 401 Unauthorized |
52
+ | POST | /finance/categories | Sim | Cria categoria financeira | Body: `{ name: string; kind: string; parent_id?: number }` | Categoria criada | 400 Validação |
53
+ | PATCH | /finance/categories/:id | Sim | Atualiza categoria financeira | Body: campos opcionais (name, kind, parent_id, status) | Categoria atualizada | 400 Validação, 404 |
54
+ | PATCH | /finance/categories/:id/move | Sim | Move categoria na hierarquia | Body: `{ parent_id?: number; position?: number }` | Categoria movida | 400 Validação, 404 |
55
+ | DELETE | /finance/categories/:id | Sim | Remove categoria financeira | - | Confirmação | 404 Not Found |
56
56
 
57
57
  ---
58
58
 
59
59
  ### FinanceCollectionsController
60
60
 
61
- | Método | Path | Auth | Descrição | Parâmetros/Body | Resposta | Erros Comuns |
62
- |--------|----------------------------------------------------|-------|----------------------------------|-------------------------------------------------------------------------------------------------|---------------------------------|-----------------------|
63
- | GET | /finance/accounts-receivable/collections-default | Sim | Obtém configurações padrão de cobrança | - | Configurações padrão | 401 Unauthorized |
64
- | POST | /finance/accounts-receivable/collections-default/:personId/send | Sim | Envia mensagem de cobrança para pessoa | Body: `{ message: string, subject?: string }` | Confirmação de envio | 400 Validação, 404 |
65
- | POST | /finance/accounts-receivable/collections-default/:personId/agreements | Sim | Registra acordo de cobrança para pessoa | Body: `{ amount: number, installments: number, first_due_date: string, notes?: string }` | Acordo registrado | 400 Validação, 404 |
61
+ | Método | Path | Auth | Descrição | Parâmetros/Body | Resposta | Erros Comuns |
62
+ |--------|----------------------------------------------------|------|----------------------------------|-------------------------------------------------------------------------------------------------|------------------------|----------------------|
63
+ | GET | /finance/accounts-receivable/collections-default | Sim | Obtém configurações padrão de cobrança | - | Configurações padrão | 401 Unauthorized |
64
+ | POST | /finance/accounts-receivable/collections-default/:personId/send | Sim | Envia mensagem de cobrança para pessoa | Body: `{ message: string; subject?: string }` | Confirmação de envio | 400 Validação, 404 |
65
+ | POST | /finance/accounts-receivable/collections-default/:personId/agreements | Sim | Registra acordo de cobrança para pessoa | Body: `{ amount: number; installments: number; first_due_date: string; notes?: string }` | Acordo registrado | 400 Validação, 404 |
66
66
 
67
67
  ---
68
68
 
69
69
  ### FinanceCostCentersController
70
70
 
71
- | Método | Path | Auth | Descrição | Parâmetros/Body | Resposta | Erros Comuns |
72
- |--------|---------------------------|-------|----------------------------------|-------------------------------------------------------------------------------------------------|---------------------------------|-----------------------|
73
- | GET | /finance/cost-centers | Sim | Lista centros de custo | - | Lista de centros de custo | 401 Unauthorized |
74
- | POST | /finance/cost-centers | Sim | Cria centro de custo | Body: `{ name: string }` | Centro criado | 400 Validação |
75
- | PATCH | /finance/cost-centers/:id | Sim | Atualiza centro de custo | Body: `{ name?: string, status?: 'active' | 'inactive' }` | Centro atualizado | 400 Validação, 404 |
76
- | DELETE | /finance/cost-centers/:id | Sim | Remove centro de custo | - | Confirmação de exclusão | 404 Not Found |
71
+ | Método | Path | Auth | Descrição | Parâmetros/Body | Resposta | Erros Comuns |
72
+ |--------|---------------------------|------|------------------------|-------------------------------------------------------------------------------------------------|--------------------|----------------------|
73
+ | GET | /finance/cost-centers | Sim | Lista centros de custo | - | Lista de centros | 401 Unauthorized |
74
+ | POST | /finance/cost-centers | Sim | Cria centro de custo | Body: `{ name: string }` | Centro criado | 400 Validação |
75
+ | PATCH | /finance/cost-centers/:id | Sim | Atualiza centro de custo| Body: `{ name?: string; status?: 'active' | 'inactive' }` | Centro atualizado | 400 Validação, 404 |
76
+ | DELETE | /finance/cost-centers/:id | Sim | Remove centro de custo | - | Confirmação | 404 Not Found |
77
77
 
78
78
  ---
79
79
 
80
80
  ### FinanceDataController
81
81
 
82
- | Método | Path | Auth | Descrição | Parâmetros/Query | Resposta | Erros Comuns |
83
- |--------|-----------------------|-------|----------------------------------|-------------------------------------------------------------------------------------------------|---------------------------------|-----------------------|
84
- | GET | /finance/data | Sim | Obtém dados financeiros com filtros | Query: `horizonte` (dias), `cenario` (nome do cenário) | Dados financeiros filtrados | 401 Unauthorized |
85
- | PATCH | /finance/scenarios/:cenario | Sim | Atualiza configurações do cenário | Body: `{ atrasoMedio: number, taxaInadimplencia: number, crescimentoReceita: number, setAsDefault?: boolean }` | Cenário atualizado | 400 Validação, 404 |
82
+ | Método | Path | Auth | Descrição | Parâmetros/Query | Resposta | Erros Comuns |
83
+ |--------|-----------------------|------|-------------------------------|-------------------------------------------------------------------------------------------------|------------------------|----------------------|
84
+ | GET | /finance/data | Sim | Obtém dados financeiros com filtros | Query: `horizonte` (dias), `cenario` (nome do cenário) | Dados financeiros | 401 Unauthorized |
85
+ | PATCH | /finance/scenarios/:cenario | Sim | Atualiza configurações do cenário | Body: `{ atrasoMedio: number; taxaInadimplencia: number; crescimentoReceita: number; setAsDefault?: boolean }` | Cenário atualizado | 400 Validação, 404 |
86
86
 
87
87
  ---
88
88
 
89
89
  ### FinanceInstallmentsController
90
90
 
91
- Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, estornos, tags e extração de dados de arquivos.
92
-
93
- | Método | Path | Auth | Descrição | Parâmetros/Body/Query | Resposta | Erros Comuns |
94
- |--------|-------------------------------------------------------------|-------|----------------------------------|-------------------------------------------------------------------------------------------------------|---------------------------------|-----------------------|
95
- | GET | /finance/accounts-payable/installments | Sim | Lista parcelas contas a pagar | Query: `status`, paginação | Lista paginada | 401 Unauthorized |
96
- | GET | /finance/accounts-payable/installments/:id | Sim | Detalha parcela contas a pagar | Path param: `id` | Detalhes da parcela | 404 Not Found |
97
- | POST | /finance/accounts-payable/installments | Sim | Cria título contas a pagar | Body: `CreateFinancialTitleDto` | Título criado | 400 Validação |
98
- | PATCH | /finance/accounts-payable/installments/:id | Sim | Atualiza título contas a pagar | Body: `CreateFinancialTitleDto` | Título atualizado | 400 Validação, 404 |
99
- | PATCH | /finance/accounts-payable/installments/:id/approve | Sim | Aprova título contas a pagar | - | Título aprovado | 404 Not Found |
100
- | PATCH | /finance/accounts-payable/installments/:id/reject | Sim | Rejeita título contas a pagar | Body: `{ reason?: string }` | Título rejeitado | 400 Validação, 404 |
101
- | PATCH | /finance/accounts-payable/installments/:id/cancel | Sim | Cancela título contas a pagar | Body: `{ reason?: string }` | Título cancelado | 400 Validação, 404 |
102
- | POST | /finance/accounts-payable/installments/:id/settlements | Sim | Registra liquidação parcela | Body: dados de liquidação (ver DTO SettleInstallmentDto) | Liquidação registrada | 400 Validação, 404 |
103
- | PATCH | /finance/accounts-payable/installments/:id/settlements/:settlementId/reverse | Sim | Estorna liquidação parcela | Body: `{ reason?: string, memo?: string }` | Liquidação estornada | 400 Validação, 404 |
104
- | PATCH | /finance/settlements/:id/reverse | Sim | Estorna liquidação por id | Body: `{ reason?: string, memo?: string }` | Liquidação estornada | 400 Validação, 404 |
105
- | DELETE | /finance/bank-reconciliations/:id | Sim | Desfaz conciliação bancária | - | Conciliação desfeita | 404 Not Found |
106
- | PATCH | /finance/accounts-payable/installments/:id/tags | Sim | Atualiza tags da parcela | Body: `{ tag_ids?: number[] }` | Tags atualizadas | 400 Validação, 404 |
107
- | POST | /finance/accounts-payable/installments/extract-from-file | Sim | Extrai dados de título de arquivo | Multipart file + Body: `{ file_id?: number }` | Dados extraídos | 400 Validação |
108
- | GET | /finance/accounts-receivable/installments | Sim | Lista parcelas contas a receber | Query: `status`, paginação | Lista paginada | 401 Unauthorized |
109
- | GET | /finance/accounts-receivable/installments/:id | Sim | Detalha parcela contas a receber | Path param: `id` | Detalhes da parcela | 404 Not Found |
110
- | POST | /finance/accounts-receivable/installments | Sim | Cria título contas a receber | Body: `CreateFinancialTitleDto` | Título criado | 400 Validação |
111
- | PATCH | /finance/accounts-receivable/installments/:id | Sim | Atualiza título contas a receber | Body: `CreateFinancialTitleDto` | Título atualizado | 400 Validação, 404 |
112
- | PATCH | /finance/accounts-receivable/installments/:id/approve | Sim | Aprova título contas a receber | - | Título aprovado | 404 Not Found |
113
- | PATCH | /finance/accounts-receivable/installments/:id/cancel | Sim | Cancela título contas a receber | Body: `{ reason?: string }` | Título cancelado | 400 Validação, 404 |
114
- | POST | /finance/accounts-receivable/installments/:id/settlements | Sim | Registra liquidação parcela | Body: dados de liquidação (ver DTO SettleInstallmentDto) | Liquidação registrada | 400 Validação, 404 |
115
- | PATCH | /finance/accounts-receivable/installments/:id/settlements/:settlementId/reverse | Sim | Estorna liquidação parcela | Body: `{ reason?: string, memo?: string }` | Liquidação estornada | 400 Validação, 404 |
116
- | PATCH | /finance/accounts-receivable/installments/:id/tags | Sim | Atualiza tags da parcela | Body: `{ tag_ids?: number[] }` | Tags atualizadas | 400 Validação, 404 |
117
- | POST | /finance/tags | Sim | Cria tag financeira | Body: `{ name: string, color?: string }` | Tag criada | 400 Validação |
118
- | POST | /finance/accounts-receivable/installments/extract-from-file | Sim | Extrai dados de título de arquivo | Multipart file + Body: `{ file_id?: number }` | Dados extraídos | 400 Validação |
91
+ | Método | Path | Auth | Descrição | Parâmetros/Body/Query | Resposta | Erros Comuns |
92
+ |--------|-------------------------------------------------------------|------|----------------------------------|-------------------------------------------------------------------------------------------------------|---------------------------|----------------------|
93
+ | GET | /finance/accounts-payable/installments | Sim | Lista parcelas contas a pagar | Query: `status`, paginação | Lista paginada | 401 Unauthorized |
94
+ | GET | /finance/accounts-payable/installments/:id | Sim | Detalha parcela contas a pagar | Path param: `id` | Detalhes da parcela | 404 Not Found |
95
+ | POST | /finance/accounts-payable/installments | Sim | Cria título contas a pagar | Body: `CreateFinancialTitleDto` | Título criado | 400 Validação |
96
+ | PATCH | /finance/accounts-payable/installments/:id | Sim | Atualiza título contas a pagar | Body: `CreateFinancialTitleDto` | Título atualizado | 400 Validação, 404 |
97
+ | PATCH | /finance/accounts-payable/installments/:id/approve | Sim | Aprova título contas a pagar | - | Título aprovado | 404 Not Found |
98
+ | PATCH | /finance/accounts-payable/installments/:id/reject | Sim | Rejeita título contas a pagar | Body: `{ reason?: string }` | Título rejeitado | 400 Validação, 404 |
99
+ | PATCH | /finance/accounts-payable/installments/:id/cancel | Sim | Cancela título contas a pagar | Body: `{ reason?: string }` | Título cancelado | 400 Validação, 404 |
100
+ | POST | /finance/accounts-payable/installments/:id/settlements | Sim | Registra liquidação parcela | Body: `SettleInstallmentDto` | Liquidação registrada | 400 Validação, 404 |
101
+ | PATCH | /finance/accounts-payable/installments/:id/settlements/:settlementId/reverse | Sim | Estorna liquidação parcela | Body: `{ reason?: string; memo?: string }` | Liquidação estornada | 400 Validação, 404 |
102
+ | PATCH | /finance/settlements/:id/reverse | Sim | Estorna liquidação por id | Body: `{ reason?: string; memo?: string }` | Liquidação estornada | 400 Validação, 404 |
103
+ | DELETE | /finance/bank-reconciliations/:id | Sim | Desfaz conciliação bancária | - | Conciliação desfeita | 404 Not Found |
104
+ | PATCH | /finance/accounts-payable/installments/:id/tags | Sim | Atualiza tags da parcela | Body: `{ tag_ids?: number[] }` | Tags atualizadas | 400 Validação, 404 |
105
+ | POST | /finance/accounts-payable/installments/extract-from-file | Sim | Extrai dados de título de arquivo | Multipart file + Body: `{ file_id?: number }` | Dados extraídos | 400 Validação |
106
+ | GET | /finance/accounts-receivable/installments | Sim | Lista parcelas contas a receber | Query: `status`, paginação | Lista paginada | 401 Unauthorized |
107
+ | GET | /finance/accounts-receivable/installments/:id | Sim | Detalha parcela contas a receber | Path param: `id` | Detalhes da parcela | 404 Not Found |
108
+ | POST | /finance/accounts-receivable/installments | Sim | Cria título contas a receber | Body: `CreateFinancialTitleDto` | Título criado | 400 Validação |
109
+ | PATCH | /finance/accounts-receivable/installments/:id | Sim | Atualiza título contas a receber | Body: `CreateFinancialTitleDto` | Título atualizado | 400 Validação, 404 |
110
+ | PATCH | /finance/accounts-receivable/installments/:id/approve | Sim | Aprova título contas a receber | - | Título aprovado | 404 Not Found |
111
+ | PATCH | /finance/accounts-receivable/installments/:id/cancel | Sim | Cancela título contas a receber | Body: `{ reason?: string }` | Título cancelado | 400 Validação, 404 |
112
+ | POST | /finance/accounts-receivable/installments/:id/settlements | Sim | Registra liquidação parcela | Body: `SettleInstallmentDto` | Liquidação registrada | 400 Validação, 404 |
113
+ | PATCH | /finance/accounts-receivable/installments/:id/settlements/:settlementId/reverse | Sim | Estorna liquidação parcela | Body: `{ reason?: string; memo?: string }` | Liquidação estornada | 400 Validação, 404 |
114
+ | PATCH | /finance/accounts-receivable/installments/:id/tags | Sim | Atualiza tags da parcela | Body: `{ tag_ids?: number[] }` | Tags atualizadas | 400 Validação, 404 |
115
+ | POST | /finance/tags | Sim | Cria tag financeira | Body: `{ name: string; color?: string }` | Tag criada | 400 Validação |
116
+ | POST | /finance/accounts-receivable/installments/extract-from-file | Sim | Extrai dados de título de arquivo | Multipart file + Body: `{ file_id?: number }` | Dados extraídos | 400 Validação |
119
117
 
120
118
  ---
121
119
 
122
120
  ### FinancePeriodCloseController
123
121
 
124
- | Método | Path | Auth | Descrição | Parâmetros/Body | Resposta | Erros Comuns |
125
- |--------|-------------------|-------|----------------------------------|-------------------------------------------------------------------------------------------------|---------------------------------|-----------------------|
126
- | GET | /finance/period-close | Sim | Lista fechamentos de períodos | Query: `search`, `status`, `user`, `from`, `to`, paginação | Lista paginada | 401 Unauthorized |
127
- | POST | /finance/period-close | Sim | Cria fechamento de período | Body: `{ period_start: string, period_end: string, notes?: string, status?: 'open' | 'closed' }` | Fechamento criado | 400 Validação |
122
+ | Método | Path | Auth | Descrição | Parâmetros/Body | Resposta | Erros Comuns |
123
+ |--------|-------------------|------|---------------------------|-------------------------------------------------------------------------------------------------|--------------------|----------------------|
124
+ | GET | /finance/period-close | Sim | Lista fechamentos de períodos | Query: `search`, `status`, `user`, `from`, `to`, paginação | Lista paginada | 401 Unauthorized |
125
+ | POST | /finance/period-close | Sim | Cria fechamento de período | Body: `{ period_start: string; period_end: string; notes?: string; status?: 'open' | 'closed' }` | Fechamento criado | 400 Validação |
128
126
 
129
127
  ---
130
128
 
131
129
  ### FinanceStatementsController
132
130
 
133
- | Método | Path | Auth | Descrição | Parâmetros/Query/Body | Resposta | Erros Comuns |
134
- |--------|-------------------------------|-------|----------------------------------|-------------------------------------------------------------------------------------------------------|---------------------------------|-----------------------|
135
- | GET | /finance/statements | Sim | Lista extratos bancários | Query: `bank_account_id`, `search` | Lista de extratos | 400 BadRequest, 401 |
136
- | GET | /finance/bank-reconciliation/summary | Sim | Resumo da conciliação bancária | Query: `bank_account_id` (obrigatório) | Resumo da conciliação | 400 BadRequest, 401 |
137
- | GET | /finance/statements/export | Sim | Exporta extratos em CSV | Query: `bank_account_id` (obrigatório), `search` | CSV para download | 400 BadRequest, 401 |
138
- | POST | /finance/statements/import | Sim | Importa extrato bancário | Multipart file + Body: `bank_account_id` (obrigatório) | Importação realizada | 400 BadRequest, 401 |
139
- | POST | /finance/statements/adjustments | Sim | Cria ajuste em extrato bancário | Body: `{ bank_account_id: number, amount: number, date?: string, type: string, description?: string }` | Ajuste criado | 400 Validação, 401 |
131
+ | Método | Path | Auth | Descrição | Parâmetros/Query/Body | Resposta | Erros Comuns |
132
+ |--------|-------------------------------|------|-------------------------------|-------------------------------------------------------------------------------------------------------|------------------------|----------------------|
133
+ | GET | /finance/statements | Sim | Lista extratos bancários | Query: `bank_account_id`, `search` | Lista de extratos | 400 BadRequest, 401 |
134
+ | GET | /finance/bank-reconciliation/summary | Sim | Resumo da conciliação bancária | Query: `bank_account_id` (obrigatório) | Resumo da conciliação | 400 BadRequest, 401 |
135
+ | GET | /finance/statements/export | Sim | Exporta extratos em CSV | Query: `bank_account_id` (obrigatório), `search` | CSV para download | 400 BadRequest, 401 |
136
+ | POST | /finance/statements/import | Sim | Importa extrato bancário | Multipart file + Body: `bank_account_id` (obrigatório) | Importação realizada | 400 BadRequest, 401 |
137
+ | POST | /finance/statements/adjustments | Sim | Cria ajuste em extrato bancário | Body: `{ bank_account_id: number; amount: number; date?: string; type: string; description?: string }` | Ajuste criado | 400 Validação, 401 |
140
138
 
141
139
  ---
142
140
 
143
141
  ### FinanceTransfersController
144
142
 
145
- | Método | Path | Auth | Descrição | Parâmetros/Query/Body | Resposta | Erros Comuns |
146
- |--------|-------------------|-------|----------------------------------|-------------------------------------------------------------------------------------------------------|---------------------------------|-----------------------|
147
- | GET | /finance/transfers | Sim | Lista transferências | Query: `search`, `bank_account_id` | Lista de transferências | 401 Unauthorized |
148
- | POST | /finance/transfers | Sim | Cria transferência entre contas | Body: `{ source_account_id: number, destination_account_id: number, date: string, amount: number, description?: string }` | Transferência criada | 400 Validação |
143
+ | Método | Path | Auth | Descrição | Parâmetros/Query/Body | Resposta | Erros Comuns |
144
+ |--------|-------------------|------|----------------------------|-------------------------------------------------------------------------------------------------------|------------------------|----------------------|
145
+ | GET | /finance/transfers | Sim | Lista transferências | Query: `search`, `bank_account_id` | Lista de transferências | 401 Unauthorized |
146
+ | POST | /finance/transfers | Sim | Cria transferência entre contas | Body: `{ source_account_id: number; destination_account_id: number; date: string; amount: number; description?: string }` | Transferência criada | 400 Validação |
149
147
 
150
148
  ---
151
149
 
@@ -160,9 +158,7 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
160
158
 
161
159
  ## 5. Estruturas de request/response
162
160
 
163
- ### Exemplos de DTOs principais
164
-
165
- - **CreateBankAccountDto**
161
+ ### CreateBankAccountDto
166
162
 
167
163
  ```ts
168
164
  {
@@ -175,11 +171,11 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
175
171
  }
176
172
  ```
177
173
 
178
- - **CreateFinancialTitleDto**
174
+ ### CreateFinancialTitleDto
179
175
 
180
176
  ```ts
181
177
  {
182
- document_number: string; // obrigatório
178
+ document_number: string; // obrigatório, não vazio
183
179
  person_id: number; // obrigatório
184
180
  competence_date?: string (ISO date);
185
181
  issue_date?: string (ISO date);
@@ -200,7 +196,7 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
200
196
  }
201
197
  ```
202
198
 
203
- - **SettleInstallmentDto**
199
+ ### SettleInstallmentDto
204
200
 
205
201
  ```ts
206
202
  {
@@ -217,7 +213,7 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
217
213
  }
218
214
  ```
219
215
 
220
- - **CreateBankStatementAdjustmentDto**
216
+ ### CreateBankStatementAdjustmentDto
221
217
 
222
218
  ```ts
223
219
  {
@@ -229,7 +225,7 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
229
225
  }
230
226
  ```
231
227
 
232
- - **CreateTransferDto**
228
+ ### CreateTransferDto
233
229
 
234
230
  ```ts
235
231
  {
@@ -241,6 +237,126 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
241
237
  }
242
238
  ```
243
239
 
240
+ ### CreateFinanceTagDto
241
+
242
+ ```ts
243
+ {
244
+ name: string; // obrigatório, string não vazia
245
+ color?: string; // opcional, cor hexadecimal válida
246
+ }
247
+ ```
248
+
249
+ ### CreateFinanceCategoryDto
250
+
251
+ ```ts
252
+ {
253
+ name: string; // obrigatório
254
+ kind: string; // obrigatório
255
+ parent_id?: number; // opcional
256
+ }
257
+ ```
258
+
259
+ ### UpdateFinanceCategoryDto
260
+
261
+ ```ts
262
+ {
263
+ name?: string;
264
+ kind?: string;
265
+ parent_id?: number;
266
+ status?: 'active' | 'inactive';
267
+ }
268
+ ```
269
+
270
+ ### MoveFinanceCategoryDto
271
+
272
+ ```ts
273
+ {
274
+ parent_id?: number;
275
+ position?: number;
276
+ }
277
+ ```
278
+
279
+ ### CreateCostCenterDto
280
+
281
+ ```ts
282
+ {
283
+ name: string; // obrigatório
284
+ }
285
+ ```
286
+
287
+ ### UpdateCostCenterDto
288
+
289
+ ```ts
290
+ {
291
+ name?: string;
292
+ status?: 'active' | 'inactive';
293
+ }
294
+ ```
295
+
296
+ ### RejectTitleDto
297
+
298
+ ```ts
299
+ {
300
+ reason?: string;
301
+ }
302
+ ```
303
+
304
+ ### ReverseSettlementDto
305
+
306
+ ```ts
307
+ {
308
+ reason?: string;
309
+ memo?: string;
310
+ }
311
+ ```
312
+
313
+ ### SendCollectionDto
314
+
315
+ ```ts
316
+ {
317
+ message: string; // obrigatório, min 5 e max 2000 caracteres
318
+ subject?: string; // opcional, max 255 caracteres
319
+ }
320
+ ```
321
+
322
+ ### RegisterCollectionAgreementDto
323
+
324
+ ```ts
325
+ {
326
+ amount: number; // obrigatório, min 0.01
327
+ installments: number; // obrigatório, entre 1 e 120
328
+ first_due_date: string; // obrigatório, ISO date
329
+ notes?: string; // opcional
330
+ }
331
+ ```
332
+
333
+ ### UpdateInstallmentTagsDto
334
+
335
+ ```ts
336
+ {
337
+ tag_ids?: number[]; // opcional, array de números únicos e >= 1
338
+ }
339
+ ```
340
+
341
+ ### CreatePeriodCloseDto
342
+
343
+ ```ts
344
+ {
345
+ period_start: string; // obrigatório, ISO date
346
+ period_end: string; // obrigatório, ISO date
347
+ notes?: string; // opcional
348
+ status?: 'open' | 'closed'; // opcional
349
+ }
350
+ ```
351
+
352
+ ### ExtractFinancialTitleFromFileDto
353
+
354
+ ```ts
355
+ {
356
+ file_id?: number; // opcional
357
+ }
358
+ ```
359
+
244
360
  ---
245
361
 
246
362
  ## 6. Erros comuns
@@ -260,13 +376,11 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
260
376
  - **Finalidade:** Configurações globais financeiras (status, moeda, timezone).
261
377
  - **Colunas:**
262
378
  - `id` (PK)
263
- - `code` (string, único)
264
- - `status` (enum: `active`, `inactive`)
265
- - `default_currency` (string, ex: `BRL`)
266
- - `timezone` (string, ex: `America/Sao_Paulo`)
379
+ - `code` (string, único, não nulo)
380
+ - `status` (enum: `active`, `inactive`, default `active`)
381
+ - `default_currency` (string, não nulo, ex: `BRL`)
382
+ - `timezone` (string, não nulo, ex: `America/Sao_Paulo`)
267
383
  - `created_at`, `updated_at` (timestamps)
268
- - **Defaults:** `status = active`
269
- - **Nulabilidade:** `code`, `default_currency`, `timezone` não nulos
270
384
  - **Integridade:** PK em `id`
271
385
  - **Indices:** índice único em `code`
272
386
  - **Enums:** `status`
@@ -282,10 +396,8 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
282
396
  - `code` (string)
283
397
  - `name` (string)
284
398
  - `kind` (enum: `revenue`, `expense`, `transfer`, `adjustment`, `other`)
285
- - `status` (enum: `active`, `inactive`)
399
+ - `status` (enum: `active`, `inactive`, default `active`)
286
400
  - `created_at`, `updated_at`
287
- - **Defaults:** `status = active`
288
- - **Nulabilidade:** `parent_id` nullable
289
401
  - **Integridade:** FK para `parent_id`
290
402
  - **Indices:** índice em `code`
291
403
  - **Enums:** `kind`, `status`
@@ -299,10 +411,8 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
299
411
  - `id` (PK)
300
412
  - `code` (string)
301
413
  - `name` (string)
302
- - `status` (enum: `active`, `inactive`)
414
+ - `status` (enum: `active`, `inactive`, default `active`)
303
415
  - `created_at`, `updated_at`
304
- - **Defaults:** `status = active`
305
- - **Nulabilidade:** não nulo
306
416
  - **Integridade:** PK em `id`
307
417
  - **Indices:** índice em `code`
308
418
  - **Enums:** `status`
@@ -317,10 +427,8 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
317
427
  - `code` (string)
318
428
  - `name` (string)
319
429
  - `type` (enum: `pix`, `boleto`, `ted`, `doc`, `card`, `cash`, `other`)
320
- - `status` (enum: `active`, `inactive`)
430
+ - `status` (enum: `active`, `inactive`, default `active`)
321
431
  - `created_at`, `updated_at`
322
- - **Defaults:** `status = active`
323
- - **Nulabilidade:** não nulo
324
432
  - **Integridade:** PK em `id`
325
433
  - **Indices:** índice em `code`
326
434
  - **Enums:** `type`, `status`
@@ -339,10 +447,8 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
339
447
  - `agency` (string, nullable)
340
448
  - `account_number` (string, nullable)
341
449
  - `account_type` (enum: `checking`, `savings`, `investment`, `cash`, `other`)
342
- - `status` (enum: `active`, `inactive`)
450
+ - `status` (enum: `active`, `inactive`, default `active`)
343
451
  - `created_at`, `updated_at`
344
- - **Defaults:** `status = active`
345
- - **Nulabilidade:** campos bancários nullable
346
452
  - **Integridade:** PK em `id`
347
453
  - **Indices:** índice em `code`
348
454
  - **Enums:** `account_type`, `status`
@@ -356,7 +462,7 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
356
462
  - `id` (PK)
357
463
  - `person_id` (FK para `person.id`)
358
464
  - `title_type` (enum: `payable`, `receivable`)
359
- - `status` (enum: `draft`, `open`, `partial`, `settled`, `canceled`, `overdue`)
465
+ - `status` (enum: `draft`, `open`, `partial`, `settled`, `canceled`, `overdue`, default `draft`)
360
466
  - `document_number` (string, nullable)
361
467
  - `description` (string, nullable)
362
468
  - `competence_date` (date, nullable)
@@ -365,8 +471,6 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
365
471
  - `finance_category_id` (FK para `finance_category.id`, nullable)
366
472
  - `created_by_user_id` (FK para `user.id`, nullable)
367
473
  - `created_at`, `updated_at`
368
- - **Defaults:** `status = draft`
369
- - **Nulabilidade:** campos opcionais nullable
370
474
  - **Integridade:** FK para `person`, `finance_category`, `user`
371
475
  - **Indices:** índice em `document_number`
372
476
  - **Enums:** `title_type`, `status`
@@ -384,11 +488,9 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
384
488
  - `due_date` (date)
385
489
  - `amount_cents` (integer)
386
490
  - `open_amount_cents` (integer)
387
- - `status` (enum: `open`, `partial`, `settled`, `canceled`, `overdue`)
491
+ - `status` (enum: `open`, `partial`, `settled`, `canceled`, `overdue`, default `open`)
388
492
  - `notes` (string, nullable)
389
493
  - `created_at`, `updated_at`
390
- - **Defaults:** `status = open`
391
- - **Nulabilidade:** `notes` nullable
392
494
  - **Integridade:** FK para `financial_title`
393
495
  - **Indices:** índice composto em `title_id`, `installment_number`
394
496
  - **Enums:** `status`
@@ -404,15 +506,13 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
404
506
  - `bank_account_id` (FK para `bank_account.id`, nullable)
405
507
  - `payment_method_id` (FK para `payment_method.id`, nullable)
406
508
  - `settlement_type` (enum: `payable`, `receivable`, `transfer`, `adjustment`)
407
- - `status` (enum: `pending`, `confirmed`, `reversed`)
509
+ - `status` (enum: `pending`, `confirmed`, `reversed`, default `pending`)
408
510
  - `settled_at` (datetime)
409
511
  - `amount_cents` (integer)
410
512
  - `description` (string, nullable)
411
513
  - `external_reference` (string, nullable)
412
514
  - `created_by_user_id` (FK para `user.id`, nullable)
413
515
  - `created_at`, `updated_at`
414
- - **Defaults:** `status = pending`
415
- - **Nulabilidade:** campos opcionais nullable
416
516
  - **Integridade:** FK para `person`, `bank_account`, `payment_method`, `user`
417
517
  - **Indices:** índice em `settled_at`
418
518
  - **Enums:** `settlement_type`, `status`
@@ -432,8 +532,6 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
432
532
  - `imported_at` (datetime)
433
533
  - `imported_by_user_id` (FK para `user.id`, nullable)
434
534
  - `created_at`, `updated_at`
435
- - **Defaults:** -
436
- - **Nulabilidade:** campos opcionais nullable
437
535
  - **Integridade:** FK para `bank_account`, `user`
438
536
  - **Enums:** `source_type`
439
537
 
@@ -450,11 +548,9 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
450
548
  - `posted_date` (date)
451
549
  - `amount_cents` (integer)
452
550
  - `description` (string)
453
- - `status` (enum: `imported`, `pending`, `reconciled`, `reversed`, `adjusted`)
551
+ - `status` (enum: `imported`, `pending`, `reconciled`, `reversed`, `adjusted`, default `imported`)
454
552
  - `dedupe_key` (string, único)
455
553
  - `created_at`, `updated_at`
456
- - **Defaults:** `status = imported`
457
- - **Nulabilidade:** `external_id` nullable
458
554
  - **Integridade:** FK para `bank_statement`, `bank_account`
459
555
  - **Indices:** índice único em `dedupe_key`
460
556
  - **Enums:** `status`
@@ -468,12 +564,10 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
468
564
  - `id` (PK)
469
565
  - `bank_statement_line_id` (FK para `bank_statement_line.id`, único)
470
566
  - `settlement_id` (FK para `settlement.id`, único)
471
- - `status` (enum: `pending`, `reconciled`, `reversed`, `adjusted`)
567
+ - `status` (enum: `pending`, `reconciled`, `reversed`, `adjusted`, default `pending`)
472
568
  - `matched_at` (datetime, nullable)
473
569
  - `matched_by_user_id` (FK para `user.id`, nullable)
474
570
  - `created_at`, `updated_at`
475
- - **Defaults:** `status = pending`
476
- - **Nulabilidade:** `matched_at`, `matched_by_user_id` nullable
477
571
  - **Integridade:** FK para `bank_statement_line`, `settlement`, `user`
478
572
  - **Indices:** unicidade em `bank_statement_line_id` e `settlement_id`
479
573
  - **Enums:** `status`
@@ -494,8 +588,6 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
494
588
  - `after_data` (json, nullable)
495
589
  - `ip_address` (string, nullable)
496
590
  - `created_at`, `updated_at`
497
- - **Defaults:** -
498
- - **Nulabilidade:** campos opcionais nullable
499
591
  - **Integridade:** FK para `user`
500
592
 
501
593
  ---
@@ -507,13 +599,11 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
507
599
  - `id` (PK)
508
600
  - `period_start` (date)
509
601
  - `period_end` (date)
510
- - `status` (enum: `open`, `closed`)
602
+ - `status` (enum: `open`, `closed`, default `open`)
511
603
  - `closed_at` (datetime, nullable)
512
604
  - `closed_by_user_id` (FK para `user.id`, nullable)
513
605
  - `notes` (string, nullable)
514
606
  - `created_at`, `updated_at`
515
- - **Defaults:** `status = open`
516
- - **Nulabilidade:** campos opcionais nullable
517
607
  - **Integridade:** FK para `user`
518
608
  - **Enums:** `status`
519
609
 
@@ -525,11 +615,9 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
525
615
  - **Colunas:**
526
616
  - `id` (PK)
527
617
  - `name` (string)
528
- - `status` (enum: `active`, `inactive`)
529
- - `is_default` (boolean)
618
+ - `status` (enum: `active`, `inactive`, default `active`)
619
+ - `is_default` (boolean, default `false`)
530
620
  - `created_at`, `updated_at`
531
- - **Defaults:** `status = active`, `is_default = false`
532
- - **Nulabilidade:** não nulo
533
621
  - **Enums:** `status`
534
622
 
535
623
  ---
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hed-hog/finance",
3
- "version": "0.0.274",
3
+ "version": "0.0.275",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "dependencies": {
@@ -9,14 +9,14 @@
9
9
  "@nestjs/core": "^11",
10
10
  "@nestjs/jwt": "^11",
11
11
  "@nestjs/mapped-types": "*",
12
- "@hed-hog/contact": "0.0.274",
12
+ "@hed-hog/contact": "0.0.275",
13
13
  "@hed-hog/api-prisma": "0.0.5",
14
- "@hed-hog/api-pagination": "0.0.6",
15
14
  "@hed-hog/api": "0.0.4",
16
- "@hed-hog/api-types": "0.0.1",
17
- "@hed-hog/tag": "0.0.274",
15
+ "@hed-hog/tag": "0.0.275",
18
16
  "@hed-hog/api-locale": "0.0.13",
19
- "@hed-hog/core": "0.0.274"
17
+ "@hed-hog/core": "0.0.275",
18
+ "@hed-hog/api-types": "0.0.1",
19
+ "@hed-hog/api-pagination": "0.0.6"
20
20
  },
21
21
  "exports": {
22
22
  ".": {