Acceptance Criteria
- There is a PaymentRepository interface that supports getting IDs.
- The PaymentRepository has an implementation that creates the IDs.
Implementation details
- Payment ID should be non-nullable. For new payments, we'll request a new payment id from the repository. We want to get away from Doctrine automagically creating IDs (see https://matthiasnoback.nl/2018/05/when-and-where-to-determine-the-id-of-an-entity/). Suggested implementation: add a getNextId() method to the PaymentRepository interface. See https://stackoverflow.com/questions/26578313/how-do-i-create-a-sequence-in-mysql on how to create sequences with MySQL.
- Tests should use MySQL (in a container) rather than SQLite.