feat: add admin subscriptions dashboard and add form

- /admin/subscriptions: shows revenue stats, projected revenue (1mo/3mo/6mo/1yr),
  upcoming renewal events, and recent subscription history
- /admin/subscriptions/add: form to create subscriptions by user email/ID
  with product selection, frequency override, and initial state
- Fix bug in createSubscription() where $status was undefined parameter
- Add model methods: getRecent, getUpcoming, getTotalRevenue, getActiveCount,
  getProjectedRevenue, getSubscriptionProducts
- Add nav link on admin dashboard

Closes #17
This commit is contained in:
nix-dev 2026-03-12 00:35:21 -04:00
parent 4eb1d59230
commit be3eafcd9c
6 changed files with 495 additions and 1 deletions

View file

@ -124,6 +124,8 @@ if (preg_match('/^\/(address(?:\/edit|\/delete)?|transaction|user|order|quote|pr
'/admin/transactions/add' => $defaults['is_admin'] ? admin::transactions_add($defaults) : lost::index($defaults),
'/admin/transactions/reset' => $defaults['is_admin'] ? admin::transactions_reset($defaults) : lost::index($defaults),
'/admin/returns' => $defaults['is_admin'] ? admin::returns($defaults) : lost::index($defaults),
'/admin/subscriptions' => $defaults['is_admin'] ? admin::subscriptions($defaults) : lost::index($defaults),
'/admin/subscriptions/add' => $defaults['is_admin'] ? admin::subscriptions_add($defaults) : lost::index($defaults),
'/magic-link' => magic_link::index(),
'/checkout/confirmed' => checkout::confirmed($defaults),
'/checkout/review-pay' => checkout::review_pay($defaults),