Page MenuHomePhabricator

Create database migration for donations
Closed, ResolvedPublic3 Estimated Story Points

Description

  • Create a migration for the donation table:
      • Remove the payment property from donation domain and doctrine entity
      • Add paymentId property to donation domain and doctrine entity. We won't interact directly with payment entities from the donation bounded context, only through payment use cases
      • Create new payments from the contents of the data blob and the sofort payments
      • Delete the old donation_payment and donation_payment_sofort tables
      • Running the migration in production is not part of this ticket. But you should run it once with a current data dump to see how long it will take.
    • Set the correct next payment ID

Implementation notes:

At this point the payment information should be cleaned up or we have a clear plan for how to handle them (in a non-complictaed way that doesn't add points to this).

Use the legacy mappers from payment to convert legacy data back to the fields (invert mapping array).

You might reuse donation and membership ID as payment ID, the numbers don't overlap.

Event Timeline

gabriel-wmde set the point value for this task to 8.
kai.nissen changed the point value for this task from 8 to 3.May 30 2022, 10:05 AM

While working on this ticket, I encountered 25 PayPal payments from 2016 (10.11. to 04.12.) that were one-time payments but where a 2nd payment request created a follow-up (child) payment. The follow-up payments happened 1-2 minutes after the initial payment. I'm fairly sure this was an application error, where our application processed a "retry" IPN as a new one. If you don't have objections, @kai.nissen, I'll keep those as single payments and book the retries as single payments too.