- [[ https://github.com/wikimedia/wikimedia-fundraising-SmashPig/blob/ba1f7ef6348e4637359521623ca2cf47a5896786/PaymentProviders/dlocal/PaymentStatusNormalizer.php#L9-L8 | PaymentStatusNormalizer.php ]]
- [[ https://github.com/wikimedia/wikimedia-fundraising-SmashPig/blob/2fcf9f298cb8b7c760c9babc5b61db0d7739912a/PaymentProviders/dlocal/ApprovePaymentStatusNormalizer.php#L9-L8 | ApprovePaymentStatusNormalizer.php ]]
- [[ https://github.com/wikimedia/wikimedia-fundraising-SmashPig/blob/f73d04b10cc1b8602ac670965972a86cb7746c96/PaymentProviders/dlocal/CreatePaymentStatusNormalizer.php#L9-L8 | CreatePaymentStatusNormalizer.php ]]
These all should share the same normalizeStatus implementation. Let's extract that out to a base class and make these three children of that class. The only difference is what constitutes success, and that can be declared on a per-child basis.