Eliminate a registration race condition
Check whether we've actually deleted anything before proceeding with
registration; if we have not deleted anything, it means another customer
has registered that number before this one could.
Signed-off-by: Amolith <amolith@secluded.site>
Update schema for new local inventory feature
"Order" numbers from local inventory
- Add methods necessary for actually assigning numbers to customers and
deleting those numbers from the local database
- Add accompanying test
Signed-off-by: Amolith <amolith@secluded.site>
Only assign num from local inv if available
Add available_after constraint to all local inventory search queries and
update tests to match
Signed-off-by: Amolith <amolith@secluded.site>
Reserve number in appropriate backend
- At the start of registration, numbers are now reserved in
Bandwidth or "reserved" in the local inventory, whichever source the
number is from
- Tests mock successful reservation rather than half of a reservation
Signed-off-by: Amolith <amolith@secluded.site>
TelSelections returns object instead of string
Two new objects, TelSelection::ChooseTel::Tn::Bandwidth and
Tn::LocalInventory and TelSelections now returns and persists through
pending state the correct variant.
No new functionality at this time, but formatted_number is now used when
displaying the number to the user at registration.
Signed-off-by: Amolith <amolith@secluded.site>
Toll Free Leads to Infinity
If rate is zero, then minutes remaining becomes infinite.
That's hard to express in json...
So instead I just leave the limits out, which downstream can interpret
as "unlimited".
Log when we warn for annual fee
Warn a max of once per day
Remove duplicate hardcoded fees
Need access to braintree in sim job
Add $0 transaction when activating via Google Play
Also guard fetching the code itself
Limit creation of new subaccounts by trust level
When two plan logs overlap current window
Extend the later one