Acceptance Criteria
- The domain objects for bank transfer payments are refactored according to the data model. You can leave other payment objects in a semi-broken state as long as all remaining tests still pass and the next steps are clear (i.e. putting TODOs/commented-out code in classes, skipping tests).
- The implementation of the PaymentRepository interface implements storing and retrieving payments with bank transfer. All other payment methods may throw "Not implemented" logic exceptions for now.
Implementation Details
Not much to do here, just some interface/inheritance/name adjusting of BankTransferPayment to conform with the data model.
Maybe add a non-empty check for the bank transfer code in the constructor to avoid domain-invalid payments (bank transfer payments must always have a transfer code).