1.7 KiB
1.7 KiB
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.amountwhere statuspaid). Requires anorders.amountcolumn (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.pausedflag (idempotent) + a toggle in UserResource; paused owners' tags record scans but send no alerts (GoshouldAlert+ contact path). - Public pages:
/about,/what-is-this,/contactstatic 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.