stacker.news/api/resolvers
ekzyis b379e7467f
Territory transfers (#878)
* Allow founders to transfer territories

* Log territory transfers in new AuditLog table

* Add territory transfer notifications

* Use polymorphic AuditEvent table

* Add setting for territory transfer notifications

* Add push notification

* Rename label from user to stacker

* More space between cancel and confirm button

* Remove AuditEvent table

The audit table is not necessary for territory transfers and only adds complexity and unrelated discussion to this PR.

Thinking about a future-proof schema for territory transfers and how/what to audit at the same time made my head spin.

Some thoughts I had:

1. Maybe using polymorphism for an audit log / audit events is not a good idea

Using polymorphism as is currently used in the code base (user wallets) means that every generic event must map to exactly one specialized event.

Is this a good requirement/assumption? It already didn't work well for naive auditing of territory transfers since we want events to be indexable by user (no array column) so every event needs to point to a single user but a territory transfer involves multiple users.

This made me wonder: Do we even need a table? Maybe the audit log for a user can be implemented using a view? This would also mean no data denormalization.

2. What to audit and how and why?

Most actions are already tracked in some way by necessity: zaps, items, mutes, payments, ...

In that case: what is the benefit of tracking these things individually in a separate table?

Denormalize simply for convenience or performance? Why no view (see previous point)? Use case needs to be more clearly defined before speccing out a schema.

* Fix territory transfer notification id conflict

* Use include instead of two separate queries

* Drop territory transfer setting

* Remove trigger usage

* Prevent transfers to yourself
2024-03-05 13:56:02 -06:00
..
admin.js snl live banner 2023-06-20 09:57:06 -05:00
blockHeight.js Add block height to price carousel (#484) 2023-09-12 10:56:02 -05:00
chainFee.js Add chain fees to price carousel (#658) 2023-12-20 16:06:22 -06:00
growth.js Monthly rewards (#890) 2024-03-01 10:28:55 -06:00
image.js Image uploads (#576) 2023-11-06 14:53:33 -06:00
index.js Add chain fees to price carousel (#658) 2023-12-20 16:06:22 -06:00
invite.js upgrade to prisma 4 2023-07-26 19:18:42 -05:00
item.js better link rel attr handling 2024-03-04 19:20:14 -06:00
lnurl.js gofac yourself 2023-12-14 11:30:51 -06:00
message.js Revert "Revert "shield your eyes; massive, squashed refactor; nextjs/react/react-dom/apollo upgrades"" 2023-07-23 10:08:43 -05:00
notifications.js Territory transfers (#878) 2024-03-05 13:56:02 -06:00
ofac.js mute territories 2023-12-30 17:16:09 -06:00
price.js require sub selection, allow editting 2023-05-10 19:30:51 -05:00
referrals.js fix custom dates to use ms since epoch 2023-11-14 10:23:44 -06:00
rewards.js Monthly rewards (#890) 2024-03-01 10:28:55 -06:00
search.js Improved ux for domain only searches (#782) 2024-02-07 18:45:11 -06:00
serial.js refine serialization retries 2024-01-28 13:26:32 -06:00
sub.js Territory transfers (#878) 2024-03-05 13:56:02 -06:00
upload.js Image uploads (#576) 2023-11-06 14:53:33 -06:00
user.js Monthly rewards (#890) 2024-03-01 10:28:55 -06:00
wallet.js handle other possible base64-like string encodings 2024-02-18 15:08:55 -06:00