richΛrd 3fea0a5201
refactor: do not keep track of membership registration order (#14)
* refactor: do not keep track of membership registration order
* unify terminology for mdetails
* more DRY in LinearPriceCalculator
* improve terminology consistency (#16)
* refactor, minor fixes
* do not reset ongoing grace period on extension (cf. spec change)
* minor renaming, comments
* refactor, group functions by funcitonality
* extract membership expiration calculation to internal function
* save active duration per membership (must carry over after extension)
* optional lazy erasure from membership set
* minor fixes in tests
* fix: off-by-one: end index can't be equal to next free index
* minor refactoring, comments
* define period boundaries: start inclusive, end exclusive
* separate eraseMembership functions to user-focused (lazy) and admin-focused (tree cleanup)
* minor fix to maintain line lengths
* unify membership-related events
* add test for  zero grace period
* fix typo in comment

Co-authored-by: richΛrd <info@richardramos.me>

---------

Co-authored-by: richΛrd <info@richardramos.me>

* code review

* refactor: unique register function

* fix: split errors of `_eraseMembershipLazily`

* chore: minor naming clarifications

---------

Co-authored-by: Sergei Tikhomirov <sergey.s.tikhomirov@gmail.com>
2024-10-08 08:58:43 -04:00
..
2024-05-21 00:46:20 +00:00