~singpolyma/sgx-jmp

Merge branch 'feature_flags'

* feature_flags:
  Put CDRs behind a feature flag
  Store feature flags on user for limiting commands, etc
  Added a New Command to Display CDRs to Customers
Put CDRs behind a feature flag
Store feature flags on user for limiting commands, etc
Added a New Command to Display CDRs to Customers

Created cdr_repo and now call it from a new command in the Bot, then filter the response through a form to display for the customer.
Refactored some aspects of lib/cdr.rb.
Only try to catch up possible renewals if expired less than 3 months
Changed 'Invite' to 'Referral' where it displays ot the end user.
Reserve TN with bandwith after selection and pass reservation id when ordering
Allow passing reservation id to tn order
Log number purchase error
error_list can be a list
Fix for ruby3
Changed 'Invite' to 'Referral' where it displays ot the end user.
Added 'C' to the regex on outgoing calls

This prepares the system for prepending customer IDs with 'c'.
Only return command list for bare domain
Revert "Allow local calling area when searching for a general area like a town or state"

LCA is only allowed on number prefix and rate centre search

This reverts commit 8433c3e2df6aa066cb5952325464e6b0a3257542.
Allow local calling area when searching for a general area like a town or state
Merge branch 'contact-support-directly'

* contact-support-directly:
  Switch from unbilled to direct targets
  Allow SGX with a node
Command to Manually Add Money to Account

An admin can now add a transaction to an account without having to log
into the DB.

A few notes:
- The transaction ID allows a "%" in it which gets substituted with a
  unique value. This is so if you've got a transaction value already,
  like an Interac Transfer or something, you can just put it here.
  But if I'm making something up like "cash" I don't have to mash the
  keyboard just to get a good ID. I can just use "cash_%" and be content
  that I'll get a good value
- The notes have a few prefilled values, which is just there for
  convenience and consistency.
  They're an open list, though, for manual things. Except on clients
  that don't support open lists...
- There's an option to notify the user. I haven't built that in this
  commit and will come later. This is so that under normal operation we
  don't have to message from support and tell them "hey, we've got your
  money", and even better we don't have to tell them "hey, we've got
  your money, you may want to go talk to the bot to activate".

  But if support is already talking to them, we can disable it and tell
  them things in a more organic way.

  Like I said, I haven't built that in this commit, though.

So, this is a start, at least.
Next