Caramba, muitíssimo obrigada pelas dicas. Já dei uma olhada por cima no repositório e achei super interessante. Com certeza vou absorver o máximo que puder de lá.
Sobre usar double para dados financeiros, sei que essa é uma péssima prática e gera diversas inconsistências nos cálculos. Por isso a ideia de criar um módulo money. Nesse módulo, todas as operações serão feitas com inteiros (guardados na propriedade amount) e apenas na hora de salvar na carteira ou na transação será convertido para double na função toUnit()
.
Pelo que conheço de padrões em cálculos financeiros, essa é a melhor prática, não?