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
..
2021-05-24 19:08:56 -05:00
2021-09-12 11:55:38 -05:00
2021-09-23 12:42:00 -05:00
2021-09-23 12:42:00 -05:00
2021-11-04 19:07:41 -04:00
2021-12-09 14:41:09 -06:00
2022-01-05 14:37:34 -06:00
2022-01-14 17:43:12 -06:00
2022-02-24 13:05:57 -06:00
2022-03-17 15:13:19 -05:00
2022-04-18 15:19:07 -05:00
2022-07-05 14:51:13 -05:00
2022-07-30 08:51:04 -05:00
2022-07-30 08:51:04 -05:00
2022-07-30 08:51:04 -05:00
2022-08-11 15:38:10 -05:00
2022-08-11 15:38:10 -05:00
2022-09-21 14:57:36 -05:00
2022-09-27 16:19:15 -05:00
2022-09-27 16:19:15 -05:00
2022-11-16 10:57:03 -06:00
2022-11-16 10:57:03 -06:00
2022-11-16 10:57:03 -06:00
2022-12-19 16:27:52 -06:00
2022-12-19 16:27:52 -06:00
2022-12-19 16:27:52 -06:00
2023-01-13 11:52:18 -06:00
2023-01-18 12:49:20 -06:00
2023-01-22 14:17:50 -06:00
2023-02-01 17:40:49 -06:00
2023-02-01 17:40:49 -06:00
2023-02-15 11:20:43 -06:00
2023-05-01 15:58:30 -05:00
2023-05-01 15:58:30 -05:00
2023-05-01 15:58:30 -05:00
2023-05-23 09:21:04 -05:00
2023-06-12 12:41:22 -05:00
2023-06-20 09:57:06 -05:00
2023-06-20 11:27:41 -05:00
2023-10-19 18:45:07 -05:00
2023-09-28 15:02:25 -05:00
2023-09-28 15:02:25 -05:00
2023-10-19 18:45:07 -05:00
2023-10-19 18:45:07 -05:00
2023-12-04 21:34:06 -06:00
2023-12-14 11:30:51 -06:00
2023-12-30 17:16:09 -06:00
2021-03-25 14:29:24 -05:00