# Pet Project - API de gerenciador financeiro
## Verificações de API
### POST, PUT, PATH, DELETE
- Erros de validação devem retornar status 422.
- Erros de validação devem retornar o seguinte body ``{"mensagem": "Dados inválidos.", "erros": [{campo: "", mensagem: ""}]}``
- Exceptions de negocio devem retornar status status 422.
- Quando a entidade principal não for encontrada deve retornar 404.
- o body do status 422 deve ser ```{"mensagem": "Mensagem de error"}```
-
### POST
- Deve retornar status 201
- Deve retornar o header location com /header/{id}
### PUT, DELETE
- Deve retornar status 204
## Cadastro de orçamento
### Incremento
Criação de uma API de post que possibilite o cadastro de orçamentos.
### Verificação
- O path de api deve ser ``/orcamentos``.
- O verbo http deve ser post.
- Não pode existir duas contas com a mesma descrição
- Uma conta a pagar deve contar os seguintes dados:
- Id.
- Deve ser gerado pelo sistema.
- Descrição.
- max: 50, obrigatório.
- Valor da conta em 4 casas decimais.
- valor > 0 e valor <= 100.000.000, obrigatório.
## Cadastrar pagamento junto do cadastro da conta a pagar
### Incremento
Alteração da API de cadastro de contas a pagar para possíbilitar o cadastramento do pagamento junto.
### Verificação
- Deve deve ser adicionado os seguintes dados
- Está paga? (obrigatório)
- Data de pagamento. (obrigatório se estiver paga)
- Valor pago.
- deve ser >= valor da conta, e <= 100.000.000
## Listagem de contas a pagar
### Incremento
Criação de uma API de get que possibilite a listagem de contas a pagar.
### Verificação
- Api deve trazer o seguintes campos:
- Id.
- Descrição.
- Valor da conta.
- Data de vencimento.
- Está paga?
- Data de pgamento.
- Se estiver paga ou null.
- Valor pago.
- Se estiver paga ou null.
- juros pagos.
- Se estive paga ou null.
- Juros é diferença entre o valor a pagar, e o valor pago.