openspec: admin-insights-pages change
This commit is contained in:
30
openspec/changes/admin-insights-pages/proposal.md
Normal file
30
openspec/changes/admin-insights-pages/proposal.md
Normal file
@@ -0,0 +1,30 @@
|
||||
## Why
|
||||
|
||||
Four small, high-visibility gaps from the tuxedo board: the admin dashboard lacks customer/revenue numbers, the Users resource doesn't show a customer's tags, there's no way to pause an unpaid customer (alerts continue), and the public site has no About/Contact pages. All quick wins that make the product feel complete while testing.
|
||||
|
||||
## What Changes
|
||||
|
||||
- **Dashboard insights**: StatsOverview gains **Customers** (users) and **Revenue** (sum of `orders.amount` where status `paid`). Requires an `orders.amount` column (idempotent, default 0) + an amount field in the Order resource.
|
||||
- **Customers → Tags**: UserResource gains a **Tags relation manager** (lists the customer's tags with status).
|
||||
- **Pause customer**: `users.paused` flag (idempotent) + a toggle in UserResource; paused owners' tags record scans but send **no alerts** (Go `shouldAlert` + contact path).
|
||||
- **Public pages**: `/about`, `/what-is-this`, `/contact` static pages (Go templates, base layout). Contact is contact details + mailto for now.
|
||||
|
||||
## Capabilities
|
||||
|
||||
### New Capabilities
|
||||
|
||||
- `public-pages`: About / What-is-this / Contact pages.
|
||||
- `customer-pause`: admin pause flag gating owner alerts.
|
||||
|
||||
### Modified Capabilities
|
||||
|
||||
- `admin-dashboard`: ADDED — customers + revenue stats.
|
||||
- `admin-users`: ADDED — tags relation manager + pause toggle.
|
||||
- `database`: ADDED — `users.paused`, `orders.amount`.
|
||||
|
||||
## Impact
|
||||
|
||||
- **Schema**: two idempotent ALTERs; `make db-up`; sqlc regen.
|
||||
- **Go**: `shouldAlert` + contact notify check owner paused; 3 page handlers + templates + routes.
|
||||
- **Admin**: StatsOverview, OrderResource amount, UserResource paused + relation manager.
|
||||
- No changes to the alert pipeline beyond the pause gate.
|
||||
Reference in New Issue
Block a user