# Admin

Staff shell at `/admin`. Default home for `ADMIN` / `SUPER_ADMIN`. Sidebar gates use **permission strings** (not only roles).

## Operations

| Route | Purpose | Typical permission |
|-------|---------|-------------------|
| `/admin` | Stats / ops home | staff shell |
| `/admin/users` | User management | `users:read` |
| `/admin/roles` | Roles & permissions | `roles:read` (+ super-admin) |
| `/admin/teams` | Platform teams | `teams:read` |
| `/admin/courses` (+ categories / tags) | Catalog admin | (sidebar courses) |
| `/admin/career/tracks` | Tracks & skills | `career_tracks:manage` |
| `/admin/analytics` | Platform analytics | `analytics:read` |
| `/admin/reports` | Reports | |
| `/admin/activities` | Activity feed | |
| `/admin/settings` | Admin settings | |
| `/admin/inbox` | Messaging | |

## Content & growth

| Route | Purpose | Permission |
|-------|---------|------------|
| `/admin/content/blog` | Blog CMS | `content:read` |
| `/admin/content/pricing` | Pricing plans CMS | `content:read` |
| `/admin/content/site` | Site & social | `content:read` |
| `/admin/content/newsletter` | Subscribers | `content:read` |
| `/admin/promo-codes` | Promos | `promo_codes:manage` |
| `/admin/email` | Send tooling | `email:manage` |

## Requests & money

| Route | Purpose | Permission |
|-------|---------|------------|
| `/admin/requests/user` | User / instructor approval requests | `requests:manage` |
| `/admin/requests/contact` | Contact form inbox | `requests:manage` |
| `/admin/requests/quotes` | Enterprise plan quotes | `requests:manage` |
| `/admin/instructor-earnings` | Payout ops / mark paid | `instructor_earnings:manage` |

## CMH ops checklist (admin)

- Approve instructors  
- Manage tracks & skills at `/admin/career/tracks`  
- Match override via career admin API  
- Mark employer seat invoices paid  

## APIs

`/admin`, `/admin/rbac`, `/admin/teams`, `/admin/blog`, `/admin/pricing`, `/admin/site-settings`, `/admin/newsletter`, `/admin/plan-quotes`, plus career admin under `/career/admin/*`.
