Documentation scope
This wiki focuses on these domains: Subscription, Booking, Finance, Payment, Master Data, Staff, Incident Management, Communication, Platform, Customer Portal, Dashboard, and Payroll, plus the shared foundation. This page makes the boundary explicit so readers do not mistake a missing detail for an unsupported area.
In scope
| Domain | Covered |
|---|---|
| Platform | EntityEvent flow, notification platform (event-driven and direct), entity history, run history, and observability. |
| Communication | Messaging pipeline, campaigns, UserMessage, OutgoingMessage, templates, automation/reminders, report subscriptions, and realtime Inbox (SSE + REST fallback). |
| Subscription | Subscriptions/enrollments, billing schedules, invoice schedule/approve/skip, add-ons, discounts, and subscription booking. |
| Booking | Normal booking (TermBookingOrder/TermBooking) lifecycle, discount rule, combine booking rule, double-booking guard, measurement, cancel, and attendance. |
| Finance | Billing, invoices, credit notes, finance transaction projections, invoice manager, preview billing diff, Xero/accounting sync, and subsidy overview. |
| Payment | Payment method settings, PayLater, PayNow/Windcave, Direct Debit/Kiwi, Deposit, and checkout success/result surfaces. |
| Master Data | Enterprise/BU/Org/Site, Account/Account Holder, Attendee, Program/Term/TPS/Product, and profile/system images. |
| Staff | Roster weekly planner, leave, timetable, availability, profile, staff home, staff medical customization, leave manager, and archive-login rule. |
| Incident Management | Incident/accident/illness lifecycle, affected attendees, generated PDFs, send-to-customer, acknowledgement/signature, and audit/history. |
| Customer Portal / My Home | Bootstrap by app mode, My Home (Calendar/Timetable/Profile), timezone by ServiceArea and user, My Subscriptions, share link, and site contact display. |
| Dashboard / Telemetry | BusinessUnit-scoped read-model statistics (attendance, booking, revenue), metric formulas, cache/TTL, and user telemetry. |
| Payroll / Timesheet | BU payroll settings (Rostered/Actual), shifts and timesheets, jsReport CSV export, and leave-only approval. |
| Shared foundation | Topi/Tuke/Tux, database and storage, domain model/aggregates, timezone, and conventions. |
Update baseline and rule
The wiki reflects the checked-out implementation of Topi, Tuke and Tux at review time. An OpenSpec proposal without running code is not treated as the current contract; it is listed separately in the update report.
When a new area becomes important, add it using the same domain pattern: Overview → Concepts → Architecture → Data links → Common cases.
Real-world example: Realtime Inbox now has an SSE transport and REST fallback in the current code. → The Wiki documents SSE correctly; it does not call SignalR the transport in use merely because the system has SignalR infrastructure for another flow.