Patterns
Review seat billing
Understand the annual seat model without presenting a sample invoice as a real financial record.
On this page
User goal
Understand the annual seat model without presenting a sample invoice as a real financial record.
Workflow
| Step | Expected behavior |
|---|---|
| 1 | Open Billing settings and read the source plan model. |
| 2 | Review active/invited seat count and calculated annual total. |
| 3 | Inspect sample history and renewal context. |
| 4 | Follow Review team members to understand seats. |
| 5 | Manage billing remains a local placeholder until authenticated hosted billing is connected. |
Decision and composition rules
- Active and invited source members count as seats.
- Access scope changes do not change seat count.
- Owner-only server DTO and provider modules exist separately.
Edge cases and recovery
- The browser component has no live owner gate.
- Sample renewal/history is not account truth.
- Portal actions only display toasts.
- Real totals must use authoritative subscription price/currency and provider events.
Persistence boundary
The demonstrated frontend uses local React state or static fixtures. Read the readiness topic before connecting these actions to authenticated persistence. A visible toast, badge or timer is not a server acknowledgement.
Source references
| File | Responsibility |
|---|---|
| components/views/billing-settings.tsx | Demo model |
| lib/server/billing/summary.ts | Owner-only summary |
| helpdesk-notes/Billing Infrastructure.md | Hosted flow and status authority |
Examples from the app
Actual Sonarist components with fictional conversations, people, example.com addresses and simulated operational states. Captured at 2× resolution or higher. Select an image to inspect it full size.
Related topics
Source audit: 2026-10-08 · Revision 10f45d1377b5 · Documentation v1.0.0