Page MenuHomePhabricator

Refactor data model and create repositories
Closed, ResolvedPublic

Description

This is the parent task for refactoring the data model of the payment domain and adding a repository implementation that can read and write the data model to a database.

Acceptance Criteria

  • The domain objects are refactored according to the data model
  • There is a PaymentRepository interface with methods for getting a payment and storing a payment
  • There is an implementation of the interface that stores the data in normalized database tables

Implementation details
Start with the credit card data implementation to get a model of average complexity, then implement the other payments with external providers in the same fashion. Then do the non-internal payments.

We discussed how to model the data shared across payments: Via composition (a payment consists of an amount and a duration and has a payment data object that defines what can be done with the payment) or inheritance (there are different kinds of payments with different properties, but that expose the same interface? We decided to use inheritance because

Event Timeline

kai.nissen set the point value for this task to 13.Jan 31 2022, 11:10 AM

Ticket should be split by payment types and reestimated.

gabriel-wmde removed the point value 13 for this task.
gabriel-wmde claimed this task.