Vamos criar nossa classe Account que irá representar nossa conta bancária
Depois vamos criar nosso contrato que irá representar as transações do nosso sistema
Uma vez criado, agora iremos definir nossas classes responsáveis por Crédito e Débito
Agora vamos voltar para nossa conta bancária e definir alguns comportamentos
Método Open é um factory method que irá representar a abertura de uma nova conta
Deposit será o nosso método que representará o comportamento de deposito
Credit será o nosso método que representará o comportamento de Crédito
Precisamos de um método para retornar o saldo atual da conta para fins de cálculo
Vamos definir nossos casos de uso agora com eles vamos descrever os comportamentos e regras da nossa aplicação
nest g service accounts/useCases/closeAccount
nest g service accounts/useCases/deposit
nest g service accounts/useCases/withdraw
nest g service accounts/useCases/getCurrentBalance