svthalia / concrexit

Thalia Website built on Django.
https://thalia.nu
Other
22 stars 12 forks source link

Overhaul transaction model #3457

Closed JobDoesburg closed 11 months ago

JobDoesburg commented 12 months ago

What?

The current payment transaction model, especially for Thalia Pay payments, works nice, but is difficult and not really elegant.

TOSTI has a much more elegant transaction model, that is plug and play, computationally more efficient and easier to maintain (especially since TOSTI is also using it, so if we were to move this to a separate repository, maintenance is a 2-vliegen-in-1-klap thing).

We should consider refactoring the payments model, especially getting rid of payment batches for Thalia pay.

Why?

Higher code quality (more elegant), easier data minimization, higher data integrity insurance, computational efficiency (requesting the current balance doesn't require a SUM), a data model that is more similar to actual bookkeeping in MoneyBird

How?

A very big refactor

DeD1rk commented 11 months ago

TOSTI's transactions aren't a drop-in replacement for our payements. Transactions (primarily tracking balance) are totally different for payments (primarily tracking whether something has been paid). So I don't think we gain enough (a nicer system for tracking TPay balance) for the very high complexity of refactoring it (and still maintaining most of the payments app, as transactions doesn't cover all of that functionality).

JobDoesburg commented 11 months ago

I agree it isn't a drop-in replacement, but I do think it could help us a lot