The second step of implementing ADR 0005
This is a collection of properties on the existing org model to pull in the data from the linked agreements.
is_active should return whether the org has (1) an agreement with "signed" status and (2) we are within the period of performance
agreement which just returns that active agreement or None
has_mou should return whether the active agreement is an MOU (which would limit the org's services to the free tier only)
remaining_budget calculates, well, the remaining budget based on sent messages and the cost of those messages. Note that there's trickiness here with the interaction with the free tier
remaining_messages converts the remaining budget to remaining message fragments, based on our message rate
It's possible that those last two will require a bunch more thinking. If so, let's ship the first 3 and move the others to a new issue.
To complete: