@hed-hog/finance 0.0.274 → 0.0.276

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 (40) hide show
  1. package/README.md +228 -126
  2. package/dist/dto/create-bank-reconciliation.dto.d.ts +8 -0
  3. package/dist/dto/create-bank-reconciliation.dto.d.ts.map +1 -0
  4. package/dist/dto/create-bank-reconciliation.dto.js +43 -0
  5. package/dist/dto/create-bank-reconciliation.dto.js.map +1 -0
  6. package/dist/finance-data.controller.d.ts +2 -0
  7. package/dist/finance-data.controller.d.ts.map +1 -1
  8. package/dist/finance-statements.controller.d.ts +42 -0
  9. package/dist/finance-statements.controller.d.ts.map +1 -1
  10. package/dist/finance-statements.controller.js +13 -0
  11. package/dist/finance-statements.controller.js.map +1 -1
  12. package/dist/finance.service.d.ts +44 -0
  13. package/dist/finance.service.d.ts.map +1 -1
  14. package/dist/finance.service.js +98 -9
  15. package/dist/finance.service.js.map +1 -1
  16. package/hedhog/data/route.yaml +9 -0
  17. package/hedhog/frontend/app/_components/person-field-with-create.tsx.ejs +126 -126
  18. package/hedhog/frontend/app/accounts-payable/approvals/page.tsx.ejs +373 -373
  19. package/hedhog/frontend/app/accounts-payable/installments/[id]/page.tsx.ejs +1270 -1270
  20. package/hedhog/frontend/app/accounts-receivable/installments/[id]/page.tsx.ejs +982 -982
  21. package/hedhog/frontend/app/cash-and-banks/bank-accounts/page.tsx.ejs +686 -686
  22. package/hedhog/frontend/app/cash-and-banks/bank-reconciliation/page.tsx.ejs +152 -32
  23. package/hedhog/frontend/app/cash-and-banks/statements/page.tsx.ejs +986 -986
  24. package/hedhog/frontend/app/cash-and-banks/transfers/page.tsx.ejs +492 -492
  25. package/hedhog/frontend/app/page.tsx.ejs +372 -372
  26. package/hedhog/frontend/app/planning/cash-flow-forecast/page.tsx.ejs +329 -329
  27. package/hedhog/frontend/app/planning/receivables-calendar/page.tsx.ejs +227 -227
  28. package/hedhog/frontend/app/planning/scenarios/page.tsx.ejs +408 -408
  29. package/hedhog/frontend/messages/en.json +15 -5
  30. package/hedhog/frontend/messages/pt.json +15 -5
  31. package/package.json +7 -7
  32. package/src/dto/create-bank-reconciliation.dto.ts +24 -0
  33. package/src/finance-statements.controller.ts +14 -0
  34. package/src/finance.module.ts +43 -43
  35. package/src/finance.service.ts +118 -0
  36. package/src/index.ts +14 -14
  37. package/dist/finance.controller.d.ts +0 -276
  38. package/dist/finance.controller.d.ts.map +0 -1
  39. package/dist/finance.controller.js +0 -110
  40. package/dist/finance.controller.js.map +0 -1
package/README.md CHANGED
@@ -27,125 +27,124 @@ 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: `{ bank?: string; branch?: string; account?: string; type?: string; description?: string; status?: 'active' | 'inactive' }` | 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: `{ name?: string; kind?: string; parent_id?: number; status?: 'active' | 'inactive' }` | 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
+ | GET | /finance/titles/:id/settlements-history | Sim | Histórico de liquidações do título| Path param: `id` | Histórico de liquidações | 404 Not Found |
96
+ | POST | /finance/accounts-payable/installments | Sim | Cria título contas a pagar | Body: `CreateFinancialTitleDto` | Título criado | 400 Validação |
97
+ | PATCH | /finance/accounts-payable/installments/:id | Sim | Atualiza título contas a pagar | Body: `CreateFinancialTitleDto` | Título atualizado | 400 Validação, 404 |
98
+ | PATCH | /finance/accounts-payable/installments/:id/approve | Sim | Aprova título contas a pagar | - | Título aprovado | 404 Not Found |
99
+ | PATCH | /finance/accounts-payable/installments/:id/reject | Sim | Rejeita título contas a pagar | Body: `{ reason?: string }` | Título rejeitado | 400 Validação, 404 |
100
+ | PATCH | /finance/accounts-payable/installments/:id/cancel | Sim | Cancela título contas a pagar | Body: `{ reason?: string }` | Título cancelado | 400 Validação, 404 |
101
+ | POST | /finance/accounts-payable/installments/:id/settlements | Sim | Registra liquidação parcela | Body: `SettleInstallmentDto` | Liquidação registrada | 400 Validação, 404 |
102
+ | 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 |
103
+ | PATCH | /finance/settlements/:id/reverse | Sim | Estorna liquidação por id | Body: `{ reason?: string; memo?: string }` | Liquidação estornada | 400 Validação, 404 |
104
+ | DELETE | /finance/bank-reconciliations/:id | Sim | Desfaz conciliação bancária | - | Conciliação desfeita | 404 Not Found |
105
+ | PATCH | /finance/accounts-payable/installments/:id/tags | Sim | Atualiza tags da parcela | Body: `{ tag_ids?: number[] }` | Tags atualizadas | 400 Validação, 404 |
106
+ | 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 |
107
+ | GET | /finance/accounts-receivable/installments | Sim | Lista parcelas contas a receber | Query: `status`, paginação | Lista paginada | 401 Unauthorized |
108
+ | GET | /finance/accounts-receivable/installments/:id | Sim | Detalha parcela contas a receber | Path param: `id` | Detalhes da parcela | 404 Not Found |
109
+ | POST | /finance/accounts-receivable/installments | Sim | Cria título contas a receber | Body: `CreateFinancialTitleDto` | Título criado | 400 Validação |
110
+ | PATCH | /finance/accounts-receivable/installments/:id | Sim | Atualiza título contas a receber | Body: `CreateFinancialTitleDto` | Título atualizado | 400 Validação, 404 |
111
+ | PATCH | /finance/accounts-receivable/installments/:id/approve | Sim | Aprova título contas a receber | - | Título aprovado | 404 Not Found |
112
+ | PATCH | /finance/accounts-receivable/installments/:id/cancel | Sim | Cancela título contas a receber | Body: `{ reason?: string }` | Título cancelado | 400 Validação, 404 |
113
+ | POST | /finance/accounts-receivable/installments/:id/settlements | Sim | Registra liquidação parcela | Body: `SettleInstallmentDto` | Liquidação registrada | 400 Validação, 404 |
114
+ | 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 |
115
+ | PATCH | /finance/accounts-receivable/installments/:id/tags | Sim | Atualiza tags da parcela | Body: `{ tag_ids?: number[] }` | Tags atualizadas | 400 Validação, 404 |
116
+ | POST | /finance/tags | Sim | Cria tag financeira | Body: `{ name: string; color?: string }` | Tag criada | 400 Validação |
117
+ | 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
118
 
120
119
  ---
121
120
 
122
121
  ### FinancePeriodCloseController
123
122
 
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 |
123
+ | Método | Path | Auth | Descrição | Parâmetros/Body | Resposta | Erros Comuns |
124
+ |--------|-------------------|------|---------------------------|-------------------------------------------------------------------------------------------------|--------------------|----------------------|
125
+ | GET | /finance/period-close | Sim | Lista fechamentos de períodos | Query: `search`, `status`, `user`, `from`, `to`, paginação | Lista paginada | 401 Unauthorized |
126
+ | 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
127
 
129
128
  ---
130
129
 
131
130
  ### FinanceStatementsController
132
131
 
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 |
132
+ | Método | Path | Auth | Descrição | Parâmetros/Query/Body | Resposta | Erros Comuns |
133
+ |--------|-------------------------------|------|-------------------------------|-------------------------------------------------------------------------------------------------------|------------------------|----------------------|
134
+ | GET | /finance/statements | Sim | Lista extratos bancários | Query: `bank_account_id`, `search` | Lista de extratos | 400 BadRequest, 401 |
135
+ | 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 |
136
+ | GET | /finance/statements/export | Sim | Exporta extratos em CSV | Query: `bank_account_id` (obrigatório), `search` | CSV para download | 400 BadRequest, 401 |
137
+ | POST | /finance/statements/import | Sim | Importa extrato bancário | Multipart file + Body: `bank_account_id` (obrigatório) | Importação realizada | 400 BadRequest, 401 |
138
+ | 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
139
 
141
140
  ---
142
141
 
143
142
  ### FinanceTransfersController
144
143
 
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 |
144
+ | Método | Path | Auth | Descrição | Parâmetros/Query/Body | Resposta | Erros Comuns |
145
+ |--------|-------------------|------|----------------------------|-------------------------------------------------------------------------------------------------------|------------------------|----------------------|
146
+ | GET | /finance/transfers | Sim | Lista transferências | Query: `search`, `bank_account_id` | Lista de transferências | 401 Unauthorized |
147
+ | 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
148
 
150
149
  ---
151
150
 
@@ -160,9 +159,7 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
160
159
 
161
160
  ## 5. Estruturas de request/response
162
161
 
163
- ### Exemplos de DTOs principais
164
-
165
- - **CreateBankAccountDto**
162
+ ### CreateBankAccountDto
166
163
 
167
164
  ```ts
168
165
  {
@@ -175,11 +172,24 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
175
172
  }
176
173
  ```
177
174
 
178
- - **CreateFinancialTitleDto**
175
+ ### UpdateBankAccountDto
179
176
 
180
177
  ```ts
181
178
  {
182
- document_number: string; // obrigatório
179
+ bank?: string;
180
+ branch?: string;
181
+ account?: string;
182
+ type?: string;
183
+ description?: string;
184
+ status?: 'active' | 'inactive';
185
+ }
186
+ ```
187
+
188
+ ### CreateFinancialTitleDto
189
+
190
+ ```ts
191
+ {
192
+ document_number: string; // obrigatório, não vazio
183
193
  person_id: number; // obrigatório
184
194
  competence_date?: string (ISO date);
185
195
  issue_date?: string (ISO date);
@@ -200,7 +210,7 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
200
210
  }
201
211
  ```
202
212
 
203
- - **SettleInstallmentDto**
213
+ ### SettleInstallmentDto
204
214
 
205
215
  ```ts
206
216
  {
@@ -217,7 +227,24 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
217
227
  }
218
228
  ```
219
229
 
220
- - **CreateBankStatementAdjustmentDto**
230
+ ### RejectTitleDto
231
+
232
+ ```ts
233
+ {
234
+ reason?: string;
235
+ }
236
+ ```
237
+
238
+ ### ReverseSettlementDto
239
+
240
+ ```ts
241
+ {
242
+ reason?: string;
243
+ memo?: string;
244
+ }
245
+ ```
246
+
247
+ ### CreateBankStatementAdjustmentDto
221
248
 
222
249
  ```ts
223
250
  {
@@ -229,7 +256,7 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
229
256
  }
230
257
  ```
231
258
 
232
- - **CreateTransferDto**
259
+ ### CreateTransferDto
233
260
 
234
261
  ```ts
235
262
  {
@@ -241,6 +268,109 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
241
268
  }
242
269
  ```
243
270
 
271
+ ### CreateFinanceTagDto
272
+
273
+ ```ts
274
+ {
275
+ name: string; // obrigatório, string não vazia
276
+ color?: string; // opcional, cor hexadecimal válida
277
+ }
278
+ ```
279
+
280
+ ### CreateFinanceCategoryDto
281
+
282
+ ```ts
283
+ {
284
+ name: string; // obrigatório
285
+ kind: string; // obrigatório
286
+ parent_id?: number; // opcional
287
+ }
288
+ ```
289
+
290
+ ### UpdateFinanceCategoryDto
291
+
292
+ ```ts
293
+ {
294
+ name?: string;
295
+ kind?: string;
296
+ parent_id?: number;
297
+ status?: 'active' | 'inactive';
298
+ }
299
+ ```
300
+
301
+ ### MoveFinanceCategoryDto
302
+
303
+ ```ts
304
+ {
305
+ parent_id?: number;
306
+ position?: number;
307
+ }
308
+ ```
309
+
310
+ ### CreateCostCenterDto
311
+
312
+ ```ts
313
+ {
314
+ name: string; // obrigatório
315
+ }
316
+ ```
317
+
318
+ ### UpdateCostCenterDto
319
+
320
+ ```ts
321
+ {
322
+ name?: string;
323
+ status?: 'active' | 'inactive';
324
+ }
325
+ ```
326
+
327
+ ### SendCollectionDto
328
+
329
+ ```ts
330
+ {
331
+ message: string; // obrigatório, min 5 e max 2000 caracteres
332
+ subject?: string; // opcional, max 255 caracteres
333
+ }
334
+ ```
335
+
336
+ ### RegisterCollectionAgreementDto
337
+
338
+ ```ts
339
+ {
340
+ amount: number; // obrigatório, min 0.01
341
+ installments: number; // obrigatório, entre 1 e 120
342
+ first_due_date: string; // obrigatório, ISO date
343
+ notes?: string; // opcional
344
+ }
345
+ ```
346
+
347
+ ### UpdateInstallmentTagsDto
348
+
349
+ ```ts
350
+ {
351
+ tag_ids?: number[]; // opcional, array de números únicos e >= 1
352
+ }
353
+ ```
354
+
355
+ ### CreatePeriodCloseDto
356
+
357
+ ```ts
358
+ {
359
+ period_start: string; // obrigatório, ISO date
360
+ period_end: string; // obrigatório, ISO date
361
+ notes?: string; // opcional
362
+ status?: 'open' | 'closed'; // opcional
363
+ }
364
+ ```
365
+
366
+ ### ExtractFinancialTitleFromFileDto
367
+
368
+ ```ts
369
+ {
370
+ file_id?: number; // opcional
371
+ }
372
+ ```
373
+
244
374
  ---
245
375
 
246
376
  ## 6. Erros comuns
@@ -260,13 +390,11 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
260
390
  - **Finalidade:** Configurações globais financeiras (status, moeda, timezone).
261
391
  - **Colunas:**
262
392
  - `id` (PK)
263
- - `code` (string, único)
264
- - `status` (enum: `active`, `inactive`)
265
- - `default_currency` (string, ex: `BRL`)
266
- - `timezone` (string, ex: `America/Sao_Paulo`)
393
+ - `code` (string, único, não nulo)
394
+ - `status` (enum: `active`, `inactive`, default `active`)
395
+ - `default_currency` (string, não nulo, ex: `BRL`)
396
+ - `timezone` (string, não nulo, ex: `America/Sao_Paulo`)
267
397
  - `created_at`, `updated_at` (timestamps)
268
- - **Defaults:** `status = active`
269
- - **Nulabilidade:** `code`, `default_currency`, `timezone` não nulos
270
398
  - **Integridade:** PK em `id`
271
399
  - **Indices:** índice único em `code`
272
400
  - **Enums:** `status`
@@ -282,10 +410,8 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
282
410
  - `code` (string)
283
411
  - `name` (string)
284
412
  - `kind` (enum: `revenue`, `expense`, `transfer`, `adjustment`, `other`)
285
- - `status` (enum: `active`, `inactive`)
413
+ - `status` (enum: `active`, `inactive`, default `active`)
286
414
  - `created_at`, `updated_at`
287
- - **Defaults:** `status = active`
288
- - **Nulabilidade:** `parent_id` nullable
289
415
  - **Integridade:** FK para `parent_id`
290
416
  - **Indices:** índice em `code`
291
417
  - **Enums:** `kind`, `status`
@@ -299,10 +425,8 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
299
425
  - `id` (PK)
300
426
  - `code` (string)
301
427
  - `name` (string)
302
- - `status` (enum: `active`, `inactive`)
428
+ - `status` (enum: `active`, `inactive`, default `active`)
303
429
  - `created_at`, `updated_at`
304
- - **Defaults:** `status = active`
305
- - **Nulabilidade:** não nulo
306
430
  - **Integridade:** PK em `id`
307
431
  - **Indices:** índice em `code`
308
432
  - **Enums:** `status`
@@ -317,10 +441,8 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
317
441
  - `code` (string)
318
442
  - `name` (string)
319
443
  - `type` (enum: `pix`, `boleto`, `ted`, `doc`, `card`, `cash`, `other`)
320
- - `status` (enum: `active`, `inactive`)
444
+ - `status` (enum: `active`, `inactive`, default `active`)
321
445
  - `created_at`, `updated_at`
322
- - **Defaults:** `status = active`
323
- - **Nulabilidade:** não nulo
324
446
  - **Integridade:** PK em `id`
325
447
  - **Indices:** índice em `code`
326
448
  - **Enums:** `type`, `status`
@@ -339,10 +461,8 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
339
461
  - `agency` (string, nullable)
340
462
  - `account_number` (string, nullable)
341
463
  - `account_type` (enum: `checking`, `savings`, `investment`, `cash`, `other`)
342
- - `status` (enum: `active`, `inactive`)
464
+ - `status` (enum: `active`, `inactive`, default `active`)
343
465
  - `created_at`, `updated_at`
344
- - **Defaults:** `status = active`
345
- - **Nulabilidade:** campos bancários nullable
346
466
  - **Integridade:** PK em `id`
347
467
  - **Indices:** índice em `code`
348
468
  - **Enums:** `account_type`, `status`
@@ -356,7 +476,7 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
356
476
  - `id` (PK)
357
477
  - `person_id` (FK para `person.id`)
358
478
  - `title_type` (enum: `payable`, `receivable`)
359
- - `status` (enum: `draft`, `open`, `partial`, `settled`, `canceled`, `overdue`)
479
+ - `status` (enum: `draft`, `open`, `partial`, `settled`, `canceled`, `overdue`, default `draft`)
360
480
  - `document_number` (string, nullable)
361
481
  - `description` (string, nullable)
362
482
  - `competence_date` (date, nullable)
@@ -365,8 +485,6 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
365
485
  - `finance_category_id` (FK para `finance_category.id`, nullable)
366
486
  - `created_by_user_id` (FK para `user.id`, nullable)
367
487
  - `created_at`, `updated_at`
368
- - **Defaults:** `status = draft`
369
- - **Nulabilidade:** campos opcionais nullable
370
488
  - **Integridade:** FK para `person`, `finance_category`, `user`
371
489
  - **Indices:** índice em `document_number`
372
490
  - **Enums:** `title_type`, `status`
@@ -384,11 +502,9 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
384
502
  - `due_date` (date)
385
503
  - `amount_cents` (integer)
386
504
  - `open_amount_cents` (integer)
387
- - `status` (enum: `open`, `partial`, `settled`, `canceled`, `overdue`)
505
+ - `status` (enum: `open`, `partial`, `settled`, `canceled`, `overdue`, default `open`)
388
506
  - `notes` (string, nullable)
389
507
  - `created_at`, `updated_at`
390
- - **Defaults:** `status = open`
391
- - **Nulabilidade:** `notes` nullable
392
508
  - **Integridade:** FK para `financial_title`
393
509
  - **Indices:** índice composto em `title_id`, `installment_number`
394
510
  - **Enums:** `status`
@@ -404,15 +520,13 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
404
520
  - `bank_account_id` (FK para `bank_account.id`, nullable)
405
521
  - `payment_method_id` (FK para `payment_method.id`, nullable)
406
522
  - `settlement_type` (enum: `payable`, `receivable`, `transfer`, `adjustment`)
407
- - `status` (enum: `pending`, `confirmed`, `reversed`)
523
+ - `status` (enum: `pending`, `confirmed`, `reversed`, default `pending`)
408
524
  - `settled_at` (datetime)
409
525
  - `amount_cents` (integer)
410
526
  - `description` (string, nullable)
411
527
  - `external_reference` (string, nullable)
412
528
  - `created_by_user_id` (FK para `user.id`, nullable)
413
529
  - `created_at`, `updated_at`
414
- - **Defaults:** `status = pending`
415
- - **Nulabilidade:** campos opcionais nullable
416
530
  - **Integridade:** FK para `person`, `bank_account`, `payment_method`, `user`
417
531
  - **Indices:** índice em `settled_at`
418
532
  - **Enums:** `settlement_type`, `status`
@@ -432,8 +546,6 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
432
546
  - `imported_at` (datetime)
433
547
  - `imported_by_user_id` (FK para `user.id`, nullable)
434
548
  - `created_at`, `updated_at`
435
- - **Defaults:** -
436
- - **Nulabilidade:** campos opcionais nullable
437
549
  - **Integridade:** FK para `bank_account`, `user`
438
550
  - **Enums:** `source_type`
439
551
 
@@ -450,11 +562,9 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
450
562
  - `posted_date` (date)
451
563
  - `amount_cents` (integer)
452
564
  - `description` (string)
453
- - `status` (enum: `imported`, `pending`, `reconciled`, `reversed`, `adjusted`)
565
+ - `status` (enum: `imported`, `pending`, `reconciled`, `reversed`, `adjusted`, default `imported`)
454
566
  - `dedupe_key` (string, único)
455
567
  - `created_at`, `updated_at`
456
- - **Defaults:** `status = imported`
457
- - **Nulabilidade:** `external_id` nullable
458
568
  - **Integridade:** FK para `bank_statement`, `bank_account`
459
569
  - **Indices:** índice único em `dedupe_key`
460
570
  - **Enums:** `status`
@@ -468,12 +578,10 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
468
578
  - `id` (PK)
469
579
  - `bank_statement_line_id` (FK para `bank_statement_line.id`, único)
470
580
  - `settlement_id` (FK para `settlement.id`, único)
471
- - `status` (enum: `pending`, `reconciled`, `reversed`, `adjusted`)
581
+ - `status` (enum: `pending`, `reconciled`, `reversed`, `adjusted`, default `pending`)
472
582
  - `matched_at` (datetime, nullable)
473
583
  - `matched_by_user_id` (FK para `user.id`, nullable)
474
584
  - `created_at`, `updated_at`
475
- - **Defaults:** `status = pending`
476
- - **Nulabilidade:** `matched_at`, `matched_by_user_id` nullable
477
585
  - **Integridade:** FK para `bank_statement_line`, `settlement`, `user`
478
586
  - **Indices:** unicidade em `bank_statement_line_id` e `settlement_id`
479
587
  - **Enums:** `status`
@@ -494,8 +602,6 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
494
602
  - `after_data` (json, nullable)
495
603
  - `ip_address` (string, nullable)
496
604
  - `created_at`, `updated_at`
497
- - **Defaults:** -
498
- - **Nulabilidade:** campos opcionais nullable
499
605
  - **Integridade:** FK para `user`
500
606
 
501
607
  ---
@@ -507,13 +613,11 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
507
613
  - `id` (PK)
508
614
  - `period_start` (date)
509
615
  - `period_end` (date)
510
- - `status` (enum: `open`, `closed`)
616
+ - `status` (enum: `open`, `closed`, default `open`)
511
617
  - `closed_at` (datetime, nullable)
512
618
  - `closed_by_user_id` (FK para `user.id`, nullable)
513
619
  - `notes` (string, nullable)
514
620
  - `created_at`, `updated_at`
515
- - **Defaults:** `status = open`
516
- - **Nulabilidade:** campos opcionais nullable
517
621
  - **Integridade:** FK para `user`
518
622
  - **Enums:** `status`
519
623
 
@@ -525,11 +629,9 @@ Endpoints para contas a pagar e receber, títulos, parcelas, liquidações, esto
525
629
  - **Colunas:**
526
630
  - `id` (PK)
527
631
  - `name` (string)
528
- - `status` (enum: `active`, `inactive`)
529
- - `is_default` (boolean)
632
+ - `status` (enum: `active`, `inactive`, default `active`)
633
+ - `is_default` (boolean, default `false`)
530
634
  - `created_at`, `updated_at`
531
- - **Defaults:** `status = active`, `is_default = false`
532
- - **Nulabilidade:** não nulo
533
635
  - **Enums:** `status`
534
636
 
535
637
  ---
@@ -0,0 +1,8 @@
1
+ export declare class CreateBankReconciliationDto {
2
+ title_id: number;
3
+ installment_id: number;
4
+ bank_statement_line_id: number;
5
+ payment_channel?: string;
6
+ description?: string;
7
+ }
8
+ //# sourceMappingURL=create-bank-reconciliation.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-bank-reconciliation.dto.d.ts","sourceRoot":"","sources":["../../src/dto/create-bank-reconciliation.dto.ts"],"names":[],"mappings":"AAGA,qBAAa,2BAA2B;IAGtC,QAAQ,EAAE,MAAM,CAAC;IAIjB,cAAc,EAAE,MAAM,CAAC;IAIvB,sBAAsB,EAAE,MAAM,CAAC;IAI/B,eAAe,CAAC,EAAE,MAAM,CAAC;IAIzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}